answer/ui/src/services/admin/settings.ts

73 lines
1.7 KiB
TypeScript

import useSWR from 'swr';
import request from '@answer/utils/request';
import type * as Type from '@answer/common/interface';
export const useGeneralSetting = () => {
const apiUrl = `/answer/admin/api/siteinfo/general`;
const { data, error } = useSWR<Type.AdminSettingsGeneral, Error>(
[apiUrl],
request.instance.get,
);
return {
data,
isLoading: !data && !error,
error,
};
};
export const updateGeneralSetting = (params: Type.AdminSettingsGeneral) => {
const apiUrl = `/answer/admin/api/siteinfo/general`;
return request.put(apiUrl, params);
};
export const useThemeOptions = () => {
const apiUrl = `/answer/admin/api/theme/options`;
const { data, error } = useSWR<{ label: string; value: string }[]>(
[apiUrl],
request.instance.get,
);
return {
data,
isLoading: !data && !error,
error,
};
};
export const useInterfaceSetting = () => {
const apiUrl = `/answer/admin/api/siteinfo/interface`;
const { data, error } = useSWR<Type.AdminSettingsInterface, Error>(
[apiUrl],
request.instance.get,
);
return {
data,
isLoading: !data && !error,
error,
};
};
export const updateInterfaceSetting = (params: Type.AdminSettingsInterface) => {
const apiUrl = `/answer/admin/api/siteinfo/interface`;
return request.put(apiUrl, params);
};
export const useSmtpSetting = () => {
const apiUrl = `/answer/admin/api/setting/smtp`;
const { data, error } = useSWR<Type.AdminSettingsSmtp, Error>(
[apiUrl],
request.instance.get,
);
return {
data,
isLoading: !data && !error,
error,
};
};
export const updateSmtpSetting = (params: Type.AdminSettingsSmtp) => {
const apiUrl = `/answer/admin/api/setting/smtp`;
return request.put(apiUrl, params);
};