diff --git a/frontend/src/hooks/api/actions/useImpactMetricsSettingsApi/useImpactMetricsApi.ts b/frontend/src/hooks/api/actions/useImpactMetricsSettingsApi/useImpactMetricsApi.ts new file mode 100644 index 0000000000..7aff629656 --- /dev/null +++ b/frontend/src/hooks/api/actions/useImpactMetricsSettingsApi/useImpactMetricsApi.ts @@ -0,0 +1,32 @@ +import { useCallback } from 'react'; +import useAPI from '../useApi/useApi.js'; +import type { ImpactMetricsConfigSchema } from '../../../../openapi.js'; + +export const useImpactMetricsApi = () => { + const { makeRequest, createRequest, errors, loading } = useAPI({ + propagateErrors: true, + }); + + const updateImpactMetric = useCallback( + async (config: ImpactMetricsConfigSchema) => { + const path = `api/admin/impact-metrics/config`; + const req = createRequest( + path, + { + method: 'POST', + body: JSON.stringify(config), + }, + 'updateImpactMetric', + ); + + return makeRequest(req.caller, req.id); + }, + [makeRequest, createRequest], + ); + + return { + updateImpactMetric, + errors, + loading, + }; +};