'use client'; import { useState } from 'react'; import { useQuery } from '@tanstack/react-query'; import { FileText, Plus, RefreshCw } from 'lucide-react'; import { useTranslations } from 'next-intl'; import { EmptyStateWithBorder } from '@/components/layout/empty'; import { ErrorInline } from '@/components/layout/error'; import { LoadingStateWithBorder } from '@/components/layout/loading'; import { Button } from '@/components/ui/button'; import { PagesService } from '@/lib/services/openflare'; import { ProjectEditorDialog } from './components/project-editor-dialog'; import { ProjectListItem } from './components/project-list-item'; import { projectsQueryKey } from './components/pages-utils'; export default function PagesPage() { const t = useTranslations('pages'); const tCommon = useTranslations('common'); const [editorOpen, setEditorOpen] = useState(false); const projectsQuery = useQuery({ queryKey: projectsQueryKey, queryFn: () => PagesService.listProjects(), }); return (

{t('title')}

{t('subtitle')}

{projectsQuery.isError ? ( void projectsQuery.refetch()} /> ) : null}
{projectsQuery.isLoading ? ( ) : (projectsQuery.data ?? []).length === 0 ? ( ) : ( (projectsQuery.data ?? []).map((project) => ( )) )}
); }