|
@@ -2,26 +2,29 @@ import { useCallback } from 'react';
|
|
|
|
|
|
|
|
import useSWR, { SWRResponse } from 'swr';
|
|
import useSWR, { SWRResponse } from 'swr';
|
|
|
|
|
|
|
|
-import { apiv3Get } from '~/client/util/apiv3-client';
|
|
|
|
|
|
|
+import { apiv3Get, apiv3Put } from '~/client/util/apiv3-client';
|
|
|
import { IResLayoutSetting } from '~/interfaces/customize';
|
|
import { IResLayoutSetting } from '~/interfaces/customize';
|
|
|
|
|
|
|
|
-import { useLayoutSetting } from '../context';
|
|
|
|
|
|
|
+interface updateConfigMethodForAdmin<T> {
|
|
|
|
|
+ update: (arg: T) => void
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
|
|
|
-export const useSWRxLayoutSetting = (fallbackData?: IResLayoutSetting): SWRResponse<IResLayoutSetting, Error> => {
|
|
|
|
|
- const { mutate: mutateStatic } = useLayoutSetting();
|
|
|
|
|
|
|
+export const useSWRxLayoutSetting = (): SWRResponse<IResLayoutSetting, Error> & updateConfigMethodForAdmin<IResLayoutSetting> => {
|
|
|
|
|
|
|
|
const fetcher = useCallback(async() => {
|
|
const fetcher = useCallback(async() => {
|
|
|
const res = await apiv3Get('/customize-setting/layout');
|
|
const res = await apiv3Get('/customize-setting/layout');
|
|
|
|
|
+ return res.data;
|
|
|
|
|
+ }, []);
|
|
|
|
|
|
|
|
- mutateStatic(res.data);
|
|
|
|
|
|
|
+ const update = useCallback(async(layoutSetting: IResLayoutSetting) => {
|
|
|
|
|
+ await apiv3Put('/customize-setting/layout', layoutSetting);
|
|
|
|
|
+ }, []);
|
|
|
|
|
|
|
|
- return res.data;
|
|
|
|
|
- }, [mutateStatic]);
|
|
|
|
|
|
|
+ const swrResponse = useSWR('/customize-setting/layout', fetcher);
|
|
|
|
|
|
|
|
- return useSWR(
|
|
|
|
|
- '/customize-setting/layout',
|
|
|
|
|
- fetcher,
|
|
|
|
|
- { fallbackData },
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ return {
|
|
|
|
|
+ ...swrResponse,
|
|
|
|
|
+ update,
|
|
|
|
|
+ };
|
|
|
};
|
|
};
|