/** * Organization Settings Page * * Manage organization details */ 'use client'; import { useState } from 'react'; import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { organizationsApi } from '@/lib/api'; export default function OrganizationSettingsPage() { const queryClient = useQueryClient(); const [isEditing, setIsEditing] = useState(false); const [error, setError] = useState(''); const [success, setSuccess] = useState(''); const { data: organization, isLoading } = useQuery({ queryKey: ['organization', 'current'], queryFn: () => organizationsApi.getCurrent(), }); const [formData, setFormData] = useState({ name: '', contactEmail: '', contactPhone: '', address: { street: '', city: '', postalCode: '', country: '', }, }); const updateMutation = useMutation({ mutationFn: (data: typeof formData) => organizationsApi.update(organization?.id || '', data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['organization'] }); setSuccess('Organization updated successfully'); setIsEditing(false); setTimeout(() => setSuccess(''), 3000); }, onError: (err: any) => { setError(err.response?.data?.message || 'Failed to update organization'); }, }); const handleEdit = () => { if (organization) { setFormData({ name: organization.name, contactEmail: organization.contactEmail, contactPhone: organization.contactPhone, address: organization.address, }); setIsEditing(true); setError(''); setSuccess(''); } }; const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); updateMutation.mutate(formData); }; const handleCancel = () => { setIsEditing(false); setError(''); }; if (isLoading) { return (
Manage your organization information