import classNames from "classnames"; import { useMemo, useRef, useState } from "react"; import { useClickAway, useUpdateEffect } from "react-use"; import { FiChevronDown } from "react-icons/fi"; import { LENGTHS } from "@/utils"; export const Length = ({ value, onChange, }: { value: number; onChange: (value: number) => void; }) => { const [open, setOpen] = useState(false); const ref = useRef(null); useClickAway(ref, () => { setOpen(false); }); const label = useMemo(() => { return LENGTHS.find((length) => length.value === value)?.label; }, [value]); useUpdateEffect(() => { setOpen(false); }, [value]); return (

Duration

setOpen(!open)} > {label}s

    {LENGTHS.map((length) => (
  • onChange(length.value)} > {length.label} seconds
  • ))}
); };