refactor(web): rewrite mutation with PATCH /v1/admin/apps/:appKey/config
This commit is contained in:
@@ -13,6 +13,7 @@ import Form from 'components/Form';
|
||||
import { Switch } from './style';
|
||||
import useEnqueueSnackbar from 'hooks/useEnqueueSnackbar';
|
||||
import useAdminCreateAppConfig from 'hooks/useAdminCreateAppConfig';
|
||||
import useAdminUpdateAppConfig from 'hooks/useAdminUpdateAppConfig';
|
||||
|
||||
function AdminApplicationSettings(props) {
|
||||
const formatMessage = useFormatMessage();
|
||||
@@ -20,28 +21,18 @@ function AdminApplicationSettings(props) {
|
||||
|
||||
const { data: appConfig, isLoading: loading } = useAppConfig(props.appKey);
|
||||
|
||||
const {
|
||||
mutateAsync: createAppConfig,
|
||||
isPending: isCreateAppConfigPending,
|
||||
} = useAdminCreateAppConfig(props.appKey);
|
||||
const { mutateAsync: createAppConfig, isPending: isCreateAppConfigPending } =
|
||||
useAdminCreateAppConfig(props.appKey);
|
||||
|
||||
const [updateAppConfig, { loading: loadingUpdateAppConfig }] = useMutation(
|
||||
UPDATE_APP_CONFIG,
|
||||
{
|
||||
refetchQueries: ['GetAppConfig'],
|
||||
},
|
||||
);
|
||||
const { mutateAsync: updateAppConfig, isPending: isUpdateAppConfigPending } =
|
||||
useAdminUpdateAppConfig(props.appKey);
|
||||
|
||||
const handleSubmit = async (values) => {
|
||||
try {
|
||||
if (!appConfig?.data) {
|
||||
await createAppConfig(values);
|
||||
} else {
|
||||
await updateAppConfig({
|
||||
variables: {
|
||||
input: { id: appConfig.data.id, ...values },
|
||||
},
|
||||
});
|
||||
await updateAppConfig(values);
|
||||
}
|
||||
|
||||
enqueueSnackbar(formatMessage('adminAppsSettings.successfullySaved'), {
|
||||
@@ -102,7 +93,7 @@ function AdminApplicationSettings(props) {
|
||||
variant="contained"
|
||||
color="primary"
|
||||
sx={{ boxShadow: 2, mt: 5 }}
|
||||
loading={isCreateAppConfigPending || loadingUpdateAppConfig}
|
||||
loading={isCreateAppConfigPending || isUpdateAppConfigPending}
|
||||
disabled={!isDirty || loading}
|
||||
>
|
||||
{formatMessage('adminAppsSettings.save')}
|
||||
|
24
packages/web/src/hooks/useAdminUpdateAppConfig.js
Normal file
24
packages/web/src/hooks/useAdminUpdateAppConfig.js
Normal file
@@ -0,0 +1,24 @@
|
||||
import { useMutation, useQueryClient } from '@tanstack/react-query';
|
||||
import api from 'helpers/api';
|
||||
|
||||
export default function useAdminUpdateAppConfig(appKey) {
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
const query = useMutation({
|
||||
mutationFn: async (payload) => {
|
||||
const { data } = await api.patch(
|
||||
`/v1/admin/apps/${appKey}/config`,
|
||||
payload,
|
||||
);
|
||||
|
||||
return data;
|
||||
},
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ['apps', appKey, 'config'],
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
return query;
|
||||
}
|
Reference in New Issue
Block a user