'use client'; import { useState } from 'react'; import { Card, CardContent } from '@/figma-make/components/base/card'; import { toast } from 'sonner'; import useSWR from 'swr'; import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; import { SystemSettingsApi } from '@/services/api/system-settings'; import { SystemSetting } from '@/types/api/system-settings/system-setting'; const ALLOW_NEGATIVE_PAKAN_OVK_KEY = 'allow_negative_pakan_ovk'; function SettingToggle({ setting, onToggle, loading, }: { setting: SystemSetting; onToggle: (key: string, currentValue: boolean) => void; loading: boolean; }) { const isEnabled = setting.value === 'true'; return (

{setting.key === ALLOW_NEGATIVE_PAKAN_OVK_KEY ? 'Mode Migrasi PAKAN & OVK' : setting.key}

{setting.description && (

{setting.description}

)} {isEnabled ? 'Aktif' : 'Nonaktif'}
); } export function SystemConfigContent() { const [toggling, setToggling] = useState(null); const { data: settingsResponse, isLoading, mutate: refreshSettings, } = useSWR(SystemSettingsApi.basePath, SystemSettingsApi.getAllFetcher, { keepPreviousData: true, }); const handleToggle = async (key: string, currentValue: boolean) => { if (key !== ALLOW_NEGATIVE_PAKAN_OVK_KEY) return; setToggling(key); try { const res = await SystemSettingsApi.setAllowNegativePakanOvk({ value: !currentValue, }); if (isResponseError(res)) { toast.error(res.message || 'Gagal mengubah pengaturan'); return; } await refreshSettings(); toast.success( !currentValue ? 'Mode migrasi PAKAN & OVK diaktifkan' : 'Mode migrasi PAKAN & OVK dinonaktifkan' ); } catch { toast.error('Terjadi kesalahan saat mengubah pengaturan'); } finally { setToggling(null); } }; const settings = isResponseSuccess(settingsResponse) ? settingsResponse.data : []; if (isLoading && !settingsResponse) { return (

Konfigurasi Sistem

Master Data •{' '} Konfigurasi Sistem

Memuat data...
); } return (

Konfigurasi Sistem

Master Data •{' '} Konfigurasi Sistem

Pengaturan Global

Pengaturan ini berlaku untuk seluruh sistem.

{settings.length === 0 ? (

Tidak ada pengaturan tersedia.

) : ( settings.map((setting) => ( )) )}
); }