diff --git a/apps/frontend/src/app/app/templates/[id]/page.tsx b/apps/frontend/src/app/app/templates/[id]/page.tsx new file mode 100644 index 0000000..ee484ad --- /dev/null +++ b/apps/frontend/src/app/app/templates/[id]/page.tsx @@ -0,0 +1,160 @@ +'use client'; + +import { useCallback, useEffect, useState } from 'react'; +import { useRouter } from 'next/navigation'; +import { AppShell } from '@/components/app'; +import { TemplateDetailView } from '@/components/app/templates'; +import { LoadingSkeleton } from '@/components/app/LoadingSkeleton'; +import { ErrorState } from '@/components/app/ErrorState'; +import type { Template, TemplateMetadata } from '@craft/types'; +import type { User, NavItem } from '@/types/navigation'; + +const mockUser: User = { + id: '1', + name: 'John Doe', + email: 'john@example.com', + role: 'user', +}; + +const navItems: NavItem[] = [ + { + id: 'home', + label: 'Home', + icon: ( + + + + ), + path: '/app', + }, + { + id: 'templates', + label: 'Templates', + icon: ( + + + + ), + path: '/app/templates', + badge: 3, + }, + { + id: 'deployments', + label: 'Deployments', + icon: ( + + + + ), + path: '/app/deployments', + }, +]; + +interface TemplateDetailPageProps { + params: { id: string }; +} + +export default function TemplateDetailPage({ params }: TemplateDetailPageProps) { + const router = useRouter(); + const { id } = params; + + const [template, setTemplate] = useState