"use client"; import React, { use, useEffect, useState } from 'react' import { Field, Form, Formik } from 'formik'; import { updateOrganization, uploadOrganizationLogo } from '@services/settings/org'; import { UploadCloud } from 'lucide-react'; import { revalidateTags } from '@services/utils/ts/requests'; import { useRouter } from 'next/navigation'; import { useOrg } from '@components/Contexts/OrgContext'; interface OrganizationValues { name: string; description: string; slug: string; logo: string; email: string; } function OrgEditGeneral(props: any) { const [selectedFile, setSelectedFile] = useState(null); const router = useRouter(); const org = useOrg() as any; // ... const handleFileChange = (event: React.ChangeEvent) => { if (event.target.files && event.target.files.length > 0) { const file = event.target.files[0]; setSelectedFile(file); } }; const uploadLogo = async () => { if (selectedFile) { let org_id = org.id; await uploadOrganizationLogo(org_id, selectedFile); setSelectedFile(null); // Reset the selected file await revalidateTags(['organizations'], org.slug); router.refresh(); } }; let orgValues: OrganizationValues = { name: org?.name, description: org?.description, slug: org?.slug, logo: org?.logo, email: org?.email } const updateOrg = async (values: OrganizationValues) => { let org_id = org.id; await updateOrganization(org_id, values); // Mutate the org await revalidateTags(['organizations'], org.slug); router.refresh(); } useEffect(() => { } , [org]) return (
{ setTimeout(() => { setSubmitting(false); updateOrg(values) }, 400); }} > {({ isSubmitting }) => (
)}
) } export default OrgEditGeneral