import { Flex, Input, Text } from "@chakra-ui/react"; import { FormEventHandler, FunctionComponent, SyntheticEvent, useEffect, useState, } from "react"; import { useUpdateSearchParam } from "./useUpdateSearchParam"; import { clickEvent, useAnalytics } from "../../contexts/Analytics"; export interface GoToPageProps { "data-event"?: string; "data-testid"?: string; pageLimit: number; offset: number; } export const GoToPage: FunctionComponent = ({ "data-event": dataEvent, "data-testid": dataTestid, pageLimit, offset, }) => { const updateSearch = useUpdateSearchParam(); const { trackCustomEvent } = useAnalytics(); const [inputValue, setInputValue] = useState((offset + 1).toString()); useEffect(() => { setInputValue((offset + 1).toString()); }, [offset]); const onInputChange = (e: SyntheticEvent) => { e.preventDefault(); setInputValue((e.target as HTMLInputElement).value); }; const onSubmit: FormEventHandler = (e) => { e.preventDefault(); updateSearch({ offset: parseInt(inputValue) - 1 }); }; return ( { if (dataEvent) { trackCustomEvent(clickEvent({ name: dataEvent })); } }} p={0} textAlign="center" type="number" value={inputValue} w={10} /> of {pageLimit + 1} ); };