@@ -10,6 +10,8 @@ import { Button } from "@/components/ui/button";
1010import { Card } from "@/components/ui/card" ;
1111import { Table , TableBody } from "@/components/ui/table" ;
1212import { fetcher } from "@/helpers/swr" ;
13+ import { REFRESH_INTERVAL_ONE_MINUTE } from "@/helpers/time-constants" ;
14+ import { useModal } from "@/hooks/useModal" ;
1315import { getProjects , deleteProject } from "@/server-functions/projects" ;
1416import { Project } from "@/types/project" ;
1517import { use , useEffect , useState } from "react" ;
@@ -22,15 +24,15 @@ export default function ProjectsPage({
2224 params : Promise < { organizationId : string } > ;
2325} ) {
2426 const { organizationId } = use ( params ) ;
25- const [ isModalOpen , setIsModalOpen ] = useState ( false ) ;
27+ const createModal = useModal ( ) ;
28+ const deleteModal = useModal ( ) ;
2629 const [ projectList , setProjectList ] = useState < Project [ ] > ( [ ] ) ;
27- const [ deleteModalOpen , setDeleteModalOpen ] = useState ( false ) ;
2830 const [ projectToDelete , setProjectToDelete ] = useState < Project | null > (
2931 null ,
3032 ) ;
3133
3234 const handleClick = async ( ) => {
33- setIsModalOpen ( true ) ;
35+ createModal . open ( ) ;
3436 } ;
3537
3638 const refreshProjectList = async ( ) => {
@@ -41,7 +43,7 @@ export default function ProjectsPage({
4143
4244 const handleDeleteClick = ( project : Project ) => {
4345 setProjectToDelete ( project ) ;
44- setDeleteModalOpen ( true ) ;
46+ deleteModal . open ( ) ;
4547 } ;
4648
4749 const handleDeleteConfirm = async ( projectId : string ) => {
@@ -61,7 +63,7 @@ export default function ProjectsPage({
6163 error,
6264 isLoading,
6365 } = useSWR < Project [ ] > ( `/projects?organization=${ organizationId } ` , fetcher , {
64- refreshInterval : 1000 * 60 , // Refresh every minute
66+ refreshInterval : REFRESH_INTERVAL_ONE_MINUTE ,
6567 } ) ;
6668
6769 useEffect ( ( ) => {
@@ -104,8 +106,8 @@ export default function ProjectsPage({
104106 </ Button >
105107 < CreateProjectModal
106108 organizationId = { organizationId }
107- isOpen = { isModalOpen }
108- onClose = { ( ) => setIsModalOpen ( false ) }
109+ isOpen = { createModal . isOpen }
110+ onClose = { createModal . close }
109111 onProjectCreated = { refreshProjectList }
110112 />
111113 </ div >
@@ -141,8 +143,8 @@ export default function ProjectsPage({
141143 </ Card >
142144 { projectToDelete && (
143145 < DeleteProjectModal
144- open = { deleteModalOpen }
145- onOpenChange = { setDeleteModalOpen }
146+ open = { deleteModal . isOpen }
147+ onOpenChange = { deleteModal . setIsOpen }
146148 projectName = { projectToDelete . name }
147149 projectId = { projectToDelete . id }
148150 onDelete = { handleDeleteConfirm }
0 commit comments