diff --git a/packages/frontend/public/favicon.ico b/packages/frontend/public/favicon.ico new file mode 100644 index 00000000..84af72ac Binary files /dev/null and b/packages/frontend/public/favicon.ico differ diff --git a/packages/frontend/public/favicon.png b/packages/frontend/public/favicon.png new file mode 100644 index 00000000..4a6cf738 Binary files /dev/null and b/packages/frontend/public/favicon.png differ diff --git a/packages/frontend/src/app/layout.tsx b/packages/frontend/src/app/layout.tsx index 6c95813b..d81dfa78 100644 --- a/packages/frontend/src/app/layout.tsx +++ b/packages/frontend/src/app/layout.tsx @@ -51,7 +51,14 @@ export const metadata: Metadata = { 'survey tracking', ], authors: [{ name: `${BRAND.name} Team` }], - icons: { icon: '/icon.svg' }, + icons: { + icon: [ + { url: '/favicon.ico', sizes: 'any' }, + { url: '/favicon.png', type: 'image/png' }, + { url: '/icon.svg', type: 'image/svg+xml' }, + ], + shortcut: '/favicon.ico', + }, openGraph: { title: getBrandText().pageTitles.admin, description: diff --git a/packages/frontend/src/app/tasks/layout.tsx b/packages/frontend/src/app/tasks/layout.tsx index 45d1a761..53867b0d 100644 --- a/packages/frontend/src/app/tasks/layout.tsx +++ b/packages/frontend/src/app/tasks/layout.tsx @@ -1,7 +1,9 @@ 'use client'; import { useEffect, useState } from 'react'; -import { useRouter } from 'next/navigation'; +import Link from 'next/link'; +import { usePathname, useRouter } from 'next/navigation'; +import { ClipboardList } from 'lucide-react'; import { useAuthStore } from '@/stores/auth-store'; import { Navbar } from '@/components/navigation/navbar'; @@ -11,8 +13,12 @@ export default function TasksLayout({ children: React.ReactNode; }) { const router = useRouter(); + const pathname = usePathname(); const { isAuthenticated, isLoading, fetchUser } = useAuthStore(); const [isValidating, setIsValidating] = useState(true); + // The dashboard index gets the sidebar app shell (mirroring the writer + // portal); detail/form pages keep the centered container. + const isDashboardRoute = pathname === '/tasks'; useEffect(() => { // Always validate session on mount @@ -55,9 +61,26 @@ export default function TasksLayout({ return (