import React from "react";
import { useRecoilState, useRecoilValue } from "recoil";
import { hourSelector, minuteState } from "./atoms";
const Time = () => {
const [minutes, setMinutes] = useRecoilState(minuteState);
const [hours, setHours] = useRecoilState(hourSelector);
const onChange = (event: React.FormEvent<HTMLInputElement>) => {
setMinutes(+event.currentTarget.value);
};
const onHoursChange = (event: React.FormEvent<HTMLInputElement>) => {
setHours(+event.currentTarget.value);
};
return (
<div>
<input
value={minutes}
onChange={onChange}
type="number"
placeholder="Minutes"
/>
<input
onChange={onHoursChange}
value={hours}
type="number"
placeholder="Hours"
/>
</div>
);
};
export default Time;
export const minuteState = atom({
key: "minutes",
default: 0,
});
export const hourSelector = selector<number>({
key: "hours",
get: ({ get }) => {
const minutes = get(minuteState);
return minutes / 60;
},
set: ({ set }, newValue) => {
const minutes = Number(newValue) * 60;
set(minuteState, minutes);
},
});