import { useEffect, useState } from 'react'; import { useMutation } from '@tanstack/react-query'; import { updateTariffs } from '@/app/actions/tariffActions'; import { toast } from 'sonner'; import DropDownList from '@/app/components/dropDownList'; import { convertBytes } from '@/app/lib/convertBytes'; export interface EditingTariff { id: number; name: string; type: string; price: number; tokens: number; maxFilesCount: number; diskSize: number; maxUsers: number; description: string; tariffTerm: string; } export function TariffEditModal({ tariff, onClose, onSuccess }: { tariff: EditingTariff; onClose: () => void; onSuccess: () => void; }) { const [formData, setFormData] = useState({ price: tariff.price, name: tariff.name, tokens: tariff.tokens, maxFilesCount: tariff.maxFilesCount, diskSize: tariff.diskSize, maxUsers: tariff.maxUsers, description: tariff.description, tariffTerm: tariff.tariffTerm === 'YEAR' ? 'YEAR' : 'MONTHLY' as 'MONTHLY' | 'YEAR', accountType: tariff.type.includes('TOKEN') ? 'token' : tariff.type.includes('STUDIO') ? 'b2b' : 'b2c' as 'b2c' | 'b2b' | 'token' }); const updateTariffMutation = useMutation({ mutationFn: async () => { return await updateTariffs( tariff.id, formData.price, formData.name, tariff.type, formData.tokens, formData.maxFilesCount, formData.diskSize, formData.maxUsers, formData.description, formData.tariffTerm, formData.accountType ); }, onSuccess: (data) => { if (data !== null && data !== undefined) { toast.success('Тариф успешно обновлен'); onSuccess(); } else { toast.error('Не удалось обновить тариф'); } }, onError: () => { toast.error('Произошла ошибка при обновлении тарифа'); }, }); const handleSubmit = () => { updateTariffMutation.mutate(); }; const handleChange = (field: string, value: any) => { setFormData(prev => ({ ...prev, [field]: value })); }; return (
{tariff.id}
{tariff.type}