import React, { useRef, useEffect } from 'react'; import { useMutation, useQueryClient } from '@tanstack/react-query'; import { useNavigate } from 'react-router-dom'; import { api } from '@/lib/api'; import { __ } from '@/lib/i18n'; import { toast } from 'sonner'; import { useFABConfig } from '@/hooks/useFABConfig'; import { usePageHeader } from '@/contexts/PageHeaderContext'; import { ProductFormTabbed as ProductForm, ProductFormData } from './partials/ProductFormTabbed'; import { Button } from '@/components/ui/button'; export default function ProductNew() { const navigate = useNavigate(); const queryClient = useQueryClient(); const formRef = useRef(null); const { setPageHeader, clearPageHeader } = usePageHeader(); // Hide FAB on new product page useFABConfig('none'); // Create mutation const createMutation = useMutation({ mutationFn: async (data: ProductFormData) => { return api.post('/products', data); }, onSuccess: (response: any) => { toast.success(__('Product created successfully')); queryClient.invalidateQueries({ queryKey: ['products'] }); // Navigate back to products index navigate('/products'); }, onError: (error: any) => { toast.error(error.message || __('Failed to create product')); }, }); const handleSubmit = async (data: ProductFormData) => { await createMutation.mutateAsync(data); }; // Set page header with back button and create button useEffect(() => { const actions = (
); setPageHeader(__('New Product'), actions); return () => clearPageHeader(); }, [createMutation.isPending, setPageHeader, clearPageHeader, navigate]); return (
); }