From 9953aae4a4d54f74e6ef79f6718a28a3a87fc1c9 Mon Sep 17 00:00:00 2001 From: THIS ONE IS A LITTLE BIT TRICKY KRUB Date: Wed, 6 Nov 2024 16:36:01 +0700 Subject: [PATCH] fix: correct image loading issue in ImageModal and optimize performance --- src/components/ProjectForm.tsx | 200 ++++++++++----------------------- 1 file changed, 57 insertions(+), 143 deletions(-) diff --git a/src/components/ProjectForm.tsx b/src/components/ProjectForm.tsx index 9a0a81b..427aa40 100644 --- a/src/components/ProjectForm.tsx +++ b/src/components/ProjectForm.tsx @@ -2,14 +2,7 @@ import { useEffect, useState } from "react"; import { SubmitHandler, useForm, ControllerRenderProps } from "react-hook-form"; import { Button } from "@/components/ui/button"; import { MultipleOptionSelector } from "@/components/multipleSelector"; -import { - Form, - FormControl, - FormField, - FormItem, - FormLabel, - FormMessage, -} from "@/components/ui/form"; +import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { projectFormSchema } from "@/types/schemas/application.schema"; import { z } from "zod"; @@ -17,19 +10,8 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { Label } from "@/components/ui/label"; import { createSupabaseClient } from "@/lib/supabase/clientComponentClient"; import { Textarea } from "./ui/textarea"; -import { - Command, - CommandEmpty, - CommandGroup, - CommandInput, - CommandItem, - CommandList, -} from "@/components/ui/command"; -import { - Popover, - PopoverContent, - PopoverTrigger, -} from "@/components/ui/popover"; +import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from "@/components/ui/command"; +import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover"; import { cn } from "@/lib/utils"; import { ChevronsUpDown, Check, X } from "lucide-react"; @@ -39,30 +21,21 @@ type FieldType = ControllerRenderProps; interface ProjectFormProps { onSubmit: SubmitHandler; } -const ProjectForm = ({ - onSubmit, -}: ProjectFormProps & { onSubmit: SubmitHandler }) => { +const ProjectForm = ({ onSubmit }: ProjectFormProps & { onSubmit: SubmitHandler }) => { const form = useForm({ resolver: zodResolver(projectFormSchema), defaultValues: {}, }); let supabase = createSupabaseClient(); - const [projectType, setProjectType] = useState< - { id: number; name: string }[] - >([]); + const [projectType, setProjectType] = useState<{ id: number; name: string }[]>([]); const [projectPitch, setProjectPitch] = useState("text"); const [selectedImages, setSelectedImages] = useState([]); const [projectPitchFile, setProjectPitchFile] = useState(""); const [tag, setTag] = useState<{ id: number; value: string }[]>([]); const [open, setOpen] = useState(false); - const [selectedTag, setSelectedTag] = useState< - { id: number; value: string }[] - >([]); + const [selectedTag, setSelectedTag] = useState<{ id: number; value: string }[]>([]); - const handleFileChange = ( - event: React.ChangeEvent, - field: FieldType - ) => { + const handleFileChange = (event: React.ChangeEvent, field: FieldType) => { if (event.target.files) { const filesArray = Array.from(event.target.files); console.log("first file", filesArray); @@ -86,9 +59,7 @@ const ProjectForm = ({ }; const fetchProjectType = async () => { - let { data: ProjectType, error } = await supabase - .from("project_type") - .select("id, value"); + let { data: ProjectType, error } = await supabase.from("project_type").select("id, value"); if (error) { console.error(error); @@ -125,10 +96,7 @@ const ProjectForm = ({ }, []); return (
- )} - className="space-y-8" - > + )} className="space-y-8">
{/* project name */} (
- - Project name - + Project name
- +
@@ -169,9 +130,7 @@ const ProjectForm = ({ handleFunction={(selectedValues: any) => { field.onChange(selectedValues.id); }} - description={ - <>Please specify the primary purpose of the funds - } + description={<>Please specify the primary purpose of the funds} placeholder="Select a Project type" selectLabel="Project type" /> @@ -189,18 +148,11 @@ const ProjectForm = ({
- - Short description - + Short description
-