From 5c78c5cbe2ea17630dc6b35b4e87279663d8d96d Mon Sep 17 00:00:00 2001 From: kwasniew Date: Fri, 29 Aug 2025 11:04:14 +0200 Subject: [PATCH] feat: make impact metrics config save call --- .../useImpactMetricsApi.ts | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 frontend/src/hooks/api/actions/useImpactMetricsSettingsApi/useImpactMetricsApi.ts 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, + }; +};