CONVERSOR DE HANDICAP

import React, { useState } from ‘react’;

export default function HandicapConverter() {
const [golfHandicap, setGolfHandicap] = useState(»);
const [result, setResult] = useState(null);

// Tabla oficial de conversión Golf → Pitch & Putt
const conversionTable = {
‘-4’: -5, ‘-3’: -5, ‘-2’: -4, ‘-1’: -4,
‘0’: -3, ‘1’: -3, ‘2’: -2, ‘3’: -2,
‘4’: -1, ‘5’: -1, ‘6’: 0, ‘7’: 0,
‘8’: 1, ‘9’: 1, ’10’: 2, ’11’: 2,
’12’: 3, ’13’: 3, ’14’: 4, ’15’: 4,
’16’: 5, ’17’: 5, ’18’: 6, ’19’: 6,
’20’: 7, ’21’: 7, ’22’: 8, ’23’: 8,
’24’: 9, ’25’: 9, ’26’: 10, ’27’: 10,
’28’: 11, ’29’: 11, ’30’: 12, ’31’: 13,
’32’: 14, ’33’: 15, ’34’: 16, ’35’: 17,
’36’: 18
};

const convertHandicap = (handicap) => {
const h = parseFloat(handicap);
if (isNaN(h)) return null;

// Redondear al entero más cercano para buscar en la tabla
const roundedHandicap = Math.round(h);

// Verificar si está en el rango de la tabla
if (roundedHandicap < -4 || roundedHandicap > 36) {
return ‘fuera_rango’;
}

return conversionTable[roundedHandicap.toString()];
};

const handleConvert = () => {
const converted = convertHandicap(golfHandicap);
setResult(converted);
};

const handleKeyPress = (e) => {
if (e.key === ‘Enter’) {
handleConvert();
}
};

return (

⛳ Conversor de Hándicap

Golf → Pitch & Putt

{/* Calculadora */}


setGolfHandicap(e.target.value)}
onKeyPress={handleKeyPress}
placeholder=»Ej: 18″
className=»w-full px-4 py-3 border-2 border-green-300 rounded-lg focus:outline-none focus:border-green-500 text-lg»
/>

Rango: -4 a 36

{result !== null && (

{result === ‘fuera_rango’ ? (

⚠️ Hándicap fuera de rango

Debe estar entre -4 y 36

) : (

Hándicap Pitch & Putt

{result >= 0 ? result : result}

)}

)}

{/* Tabla de conversión */}

📊 Tabla Oficial de Conversión

Golf
Pitch & Putt

{Object.entries(conversionTable).map(([golf, pp]) => (

{golf}
{pp}


))}

);
}

Tema creado por Anders Norén