javascript – Asignar valor a un estado dependiendo de opciones en select (React JS)

estoy haciendo un formulario para seleccionar un servicio, cada uno tiene su propio valor (amount), necesito guardar eso en un estado, lo que tengo es lo siguiente:

    const rates = ( 10, 20, 30)
...
    const (buy, setBuy) = useState({
        service: 'a',
        amount: '10',       
      })
... 
              <input
                type="number"
                className="form-control"
                name="amount"
                onChange={onOptionChange}
                value={
                  service === 'a' ? `${rates(0)}` :
                  service === 'b' ? `${rates(1)}` :
                  service === 'c' ? `${rates(2)}` : `${amount}`
                }
              </input>

Logro hacer que aparezca en el valor del input, sin embargo al guardar, me muestra es lo que hay en la última opción (amount) que funciona controlado por el evento onOptionChange.
El estado seactualiza correctamente con service: ‘a’, ‘b’, ‘c’o ‘d’ pero el amount siempre queda en el valor inicial, o en el que se ingresa desde el input, si selecciono un servicio ‘d’, es allí cuando puedo editar ese valor (amount).

Agradezco su colaboración.