import { Formik, Form, Field, FieldArray } from "formik"; import { useSystemSettings } from "../hooks/useSystemSettings"; import type { SystemSettings } from "../../../types/types"; import { toast } from "sonner"; const SystemConfig = () => { const { systemSettingsQuery, systemSettingsMutation } = useSystemSettings(); const timeZoneOptions = systemSettingsQuery?.data?.propLocalTimeZone?.accepted; const timeZoneOpts = timeZoneOptions?.split(",").map((option: string) => option.trim().replace(/\[|\]/g, "")); const timeSourceOptions = systemSettingsQuery?.data?.propTimeSource?.accepted; const timeSourceOpts = timeSourceOptions?.split(",").map((option: string) => option.trim().replace(/\[|\]/g, "")); const deviceName = systemSettingsQuery?.data?.propDeviceName?.value; const timeZone = systemSettingsQuery?.data?.propLocalTimeZone?.value; const SNTPServer = systemSettingsQuery?.data?.propSNTPServer?.value; const SNTPInterval = systemSettingsQuery?.data?.propSNTPIntervalMinutes?.value; const timeSource = systemSettingsQuery?.data?.propTimeSource?.value; // const primaryServer = systemSettingsQuery?.data?.propPrimaryDNSServer?.value; // const secondaryServer = systemSettingsQuery?.data?.propSecondaryDNSServer?.value; const initialValues = { deviceName: deviceName ?? "", timeZone: timeZone ?? "", localTimeZone: timeZone ?? "", SNTPServer: SNTPServer ?? "", SNTPInterval: SNTPInterval ?? 60, SNTPIntervalMinutes: SNTPInterval ?? 60, primaryServer: "", secondaryServer: "", timeSource: timeSource ?? "", customFields: [], }; const handleSubmit = async (values: SystemSettings) => { const result = await systemSettingsMutation.mutateAsync(values); if (result.id) { toast.success("System settings updated successfully"); } else { toast.error("Failed to update system settings"); } }; return ( {({ values }) => (
{timeZoneOpts?.map((option: string) => ( ))}
{timeSourceOpts?.map((option: string) => ( ))}

Custom Fields

{(arrayHelpers) => ( <> {values.customFields.map((field, index) => (
))} {values.customFields.length > 0 && ( )} )}
)}
); }; export default SystemConfig;