'use client'; import { getNodeMultiplier, setNodeMultiplier } from '@/services/admin/system'; import { useQuery } from '@tanstack/react-query'; import { Button } from '@workspace/ui/components/button'; import { Card, CardContent } from '@workspace/ui/components/card'; import { ScrollArea } from '@workspace/ui/components/scroll-area'; import { Sheet, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, } from '@workspace/ui/components/sheet'; import { ArrayInput } from '@workspace/ui/custom-components/dynamic-Inputs'; import { Icon } from '@workspace/ui/custom-components/icon'; import { useTranslations } from 'next-intl'; import { useEffect, useState } from 'react'; import { toast } from 'sonner'; export default function DynamicMultiplier() { const t = useTranslations('servers'); const [open, setOpen] = useState(false); const [timeSlots, setTimeSlots] = useState([]); const { data: periodsResp, refetch: refetchPeriods } = useQuery({ queryKey: ['getNodeMultiplier'], queryFn: async () => { const { data } = await getNodeMultiplier(); return (data.data?.periods || []) as API.TimePeriod[]; }, enabled: open, }); useEffect(() => { if (periodsResp) { setTimeSlots(periodsResp); } }, [periodsResp]); async function savePeriods() { await setNodeMultiplier({ periods: timeSlots }); await refetchPeriods(); toast.success(t('server_config.saveSuccess')); setOpen(false); } return (

{t('server_config.dynamic_multiplier')}

{t('server_config.dynamic_multiplier_desc')}

{t('server_config.dynamic_multiplier')} {t('server_config.dynamic_multiplier_desc')}
fields={[ { name: 'start_time', prefix: t('server_config.fields.start_time'), type: 'time' }, { name: 'end_time', prefix: t('server_config.fields.end_time'), type: 'time' }, { name: 'multiplier', prefix: t('server_config.fields.multiplier'), type: 'number', placeholder: '0', }, ]} value={timeSlots} onChange={setTimeSlots} />
); }