'use client' import React, { 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' import { useLHSession } from '@components/Contexts/LHSessionContext' 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 session = useLHSession() as any; const access_token = session?.data?.tokens?.access_token; 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, access_token) 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, access_token) // Mutate the org await revalidateTags(['organizations'], org.slug) router.refresh() } useEffect(() => { }, [org]) return (
{ setTimeout(() => { setSubmitting(false) updateOrg(values) }, 400) }} > {({ isSubmitting }) => (
)}
) } export default OrgEditGeneral