import { FormikForm } from "@shared/nej-react-utils/Form/FormikForm"; import { NejAccountingApiClient, CompanyResponse, CancelablePromise } from "@services/accounting-api"; import { useApiClient, useCompany } from "@utils/NejManager/NejProvider"; import useMethod from "../../../utils/useMethod.macro"; import useQuery from "../../../utils/useQuery.macro"; type FormProps = { refresh: () => void; initialData?: T; }; export type WithFormProps = P & FormProps; export function withForm>(WrappedForm: React.ComponentType, method: (client: NejAccountingApiClient, company: CompanyResponse, props: P) => (body: T) => CancelablePromise, submitText: string) { return function GameFormWrapper({ refresh, initialData, ...props }: P) { const client = useApiClient(); const company = useCompany(); const fnc = method(client, company, { ...props, initialData } as P); console.log(fnc); const [submit, { }] = useMethod( fnc, () => refresh() ); return ( submit(values)} submitText={submitText} > ); }; }