- added settings page - can post and get data from endpoint
- moved toaster to main page - updated config for CORS
This commit is contained in:
54
src/features/settings/hooks/useSystemSettings.ts
Normal file
54
src/features/settings/hooks/useSystemSettings.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
import { useQuery, useMutation } from "@tanstack/react-query";
|
||||
import { CAMBASE } from "../../../utils/config";
|
||||
import type { SystemSettings } from "../../../types/types";
|
||||
const camBase = import.meta.env.MODE !== "development" ? CAMBASE : "";
|
||||
|
||||
const fetchSystemSettings = async () => {
|
||||
const response = await fetch(`${camBase}/api/fetch-config?id=GLOBAL--Device`);
|
||||
if (!response.ok) {
|
||||
throw new Error("Failed to fetch system settings");
|
||||
}
|
||||
return response.json();
|
||||
};
|
||||
|
||||
const postSystemSettings = async (settings: SystemSettings) => {
|
||||
const systemSettingConfig = {
|
||||
id: "GLOBAL--Device",
|
||||
fields: [
|
||||
{ property: "propDeviceName", value: settings.deviceName },
|
||||
{ property: "propSNTPServer", value: settings.SNTPServer },
|
||||
{
|
||||
property: "propSNTPIntervalMinutes",
|
||||
value: Number(settings.SNTPIntervalMinutes),
|
||||
},
|
||||
{ property: "propLocalTimeZone", value: settings.localTimeZone },
|
||||
{ property: "propTimeSource", value: settings.timeSource },
|
||||
],
|
||||
};
|
||||
|
||||
const response = await fetch(`${camBase}/api/update-config`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify(systemSettingConfig),
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
if (!response.ok) {
|
||||
throw new Error("Failed to update system settings");
|
||||
}
|
||||
return response.json();
|
||||
};
|
||||
|
||||
export const useSystemSettings = () => {
|
||||
const systemSettingsQuery = useQuery({
|
||||
queryKey: ["systemSettings"],
|
||||
queryFn: fetchSystemSettings,
|
||||
});
|
||||
|
||||
const systemSettingsMutation = useMutation({
|
||||
mutationKey: ["updateSystemSettings"],
|
||||
mutationFn: postSystemSettings,
|
||||
});
|
||||
|
||||
return { systemSettingsQuery, systemSettingsMutation };
|
||||
};
|
||||
Reference in New Issue
Block a user