Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | 27x | import { useMutation, useQuery, useQueryClient } from 'react-query';
import { useOkapiKy } from '@folio/stripes/core';
import { generateKiwtQueryParams } from '../../../utils';
import { GET_SETTING_SECTION_MUTATE_KEY, GET_SETTING_SECTION_QUERY_KEY } from '../../constants';
const useSettingSection = ({
sectionName,
settingEndpoint,
getQueryNamespaceGenerator = ({ queryParams }) => GET_SETTING_SECTION_QUERY_KEY(queryParams, sectionName),
getMutateNamespaceGenerator = () => GET_SETTING_SECTION_MUTATE_KEY(sectionName)
}) => {
const ky = useOkapiKy();
const queryClient = useQueryClient();
const queryParams = generateKiwtQueryParams({
filters: [
{
path: 'section',
value: sectionName
}
],
sort: [
{
path: 'key'
}
],
perPage: 100,
stats: false
}, {});
const { data: settings = [], ...settingsQuery } = useQuery(
getQueryNamespaceGenerator({ queryParams }),
() => ky(`${settingEndpoint}?${queryParams?.join('&')}`).json()
);
const { mutateAsync: putSetting, ...settingsMutate } = useMutation(
getMutateNamespaceGenerator(),
(data) => ky.put(`${settingEndpoint}${data.id ? '/' + data.id : ''}`, { json: data }).then(async res => {
await queryClient.invalidateQueries(getQueryNamespaceGenerator({ queryParams }));
return res;
})
);
return ({
handleSubmit: putSetting,
settings,
settingsQuery,
settingsMutate
});
};
export default useSettingSection;
|