diff --git a/apps/web/package.json b/apps/web/package.json index a96c1eb6..5a4b4ce7 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -19,6 +19,7 @@ "@anthropic-ai/sdk": "^0.128.0", "@profullstack/autoblog": "github:profullstack/autoblog#75e54af", "@profullstack/emailer": "^1.0.3", + "@profullstack/footer": "latest", "@profullstack/notifications": "0.1.0", "@profullstack/stack": "^0.1.3", "@profullstack/x402-gateway": "^0.7.0", diff --git a/apps/web/src/app/settings/page.test.tsx b/apps/web/src/app/settings/page.test.tsx index 14337403..4aee1538 100644 --- a/apps/web/src/app/settings/page.test.tsx +++ b/apps/web/src/app/settings/page.test.tsx @@ -14,11 +14,6 @@ vi.mock('@/components/header-client', () => ({ HeaderClient: () =>
Header
, })); -// Mock Footer -vi.mock('@/components/footer', () => ({ - Footer: () => , -})); - // Mock NotificationPreferences (uses fetch and service worker APIs) vi.mock('@/components/notifications/NotificationPreferences', () => ({ NotificationPreferences: () => ( @@ -52,7 +47,7 @@ describe('SettingsPage', () => { }); it('should render header and footer', () => { - render(); + render(Footer} />); expect(screen.getByTestId('header')).toBeInTheDocument(); expect(screen.getByTestId('footer')).toBeInTheDocument(); diff --git a/apps/web/src/app/settings/page.tsx b/apps/web/src/app/settings/page.tsx index 350f8c20..e060d736 100644 --- a/apps/web/src/app/settings/page.tsx +++ b/apps/web/src/app/settings/page.tsx @@ -1,6 +1,7 @@ import type { Metadata } from 'next'; import { createClient } from '@/lib/supabase/server'; import type { UserData } from '@/components/header'; +import { Footer } from '@/components/footer'; import { SettingsContent } from './settings-content'; export const metadata: Metadata = { @@ -33,5 +34,5 @@ export default async function SettingsPage() { // Supabase not configured — user stays null } - return ; + return } />; } diff --git a/apps/web/src/app/settings/settings-content.tsx b/apps/web/src/app/settings/settings-content.tsx index 8276a364..701cfd5e 100644 --- a/apps/web/src/app/settings/settings-content.tsx +++ b/apps/web/src/app/settings/settings-content.tsx @@ -4,7 +4,6 @@ import { useState, useEffect } from 'react'; import Link from 'next/link'; import { User, Video, Users, Palette, Info, ArrowLeft, Check, Bell } from 'lucide-react'; import { HeaderClient } from '@/components/header-client'; -import { Footer } from '@/components/footer'; import { NotificationPreferences } from '@/components/notifications/NotificationPreferences'; import { YouTubeConnect } from './youtube-connect'; import type { UserData } from '@/components/header'; @@ -49,7 +48,13 @@ const DEFAULT_SETTINGS: AppSettings = { // Local storage key for settings const SETTINGS_KEY = 'pairux-web-settings'; -export function SettingsContent({ user }: { user: UserData | null }) { +export function SettingsContent({ + user, + footer, +}: { + user: UserData | null; + footer?: React.ReactNode; +}) { const [settings, setSettings] = useState(DEFAULT_SETTINGS); const [saved, setSaved] = useState(false); @@ -457,7 +462,7 @@ export function SettingsContent({ user }: { user: UserData | null }) { - diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index df9fefee..e29a9665 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -362,6 +362,9 @@ importers: '@profullstack/emailer': specifier: ^1.0.3 version: 1.0.3 + '@profullstack/footer': + specifier: latest + version: 0.2.0(react@19.2.3) '@profullstack/notifications': specifier: 0.1.0 version: 0.1.0 @@ -2806,6 +2809,16 @@ packages: '@profullstack/emailer@1.0.3': resolution: {integrity: sha512-VyAtCcfnSI6LOwJvWogCr3ZNmEsaZw+iuWrqnosLsdcKsbRyCrCmXigMNZJZEjlgYlR+lK//PwNPG+xtCFvWAw==} + '@profullstack/footer@0.2.0': + resolution: {integrity: sha512-0bpxw5OEsvIdiU8tV5R3zmeAZ8X1rjnZj0vl/mrto+oxN8D6tLjImr5/Ki1ynAUXVRqpz+ejbVlXhORzzLBDkQ==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + react: '>=18' + peerDependenciesMeta: + react: + optional: true + '@profullstack/keys@0.1.0': resolution: {integrity: sha512-Vys47LvS5ivhdZu4SYOxh9Le3DEmWhjP0+CtrU45RhXAbY0ZFG/2Dk9V1bIIUGDp8UWMJqctvUD21JrNjfh04w==} engines: {node: '>=20.11'} @@ -11751,6 +11764,10 @@ snapshots: '@profullstack/emailer@1.0.3': {} + '@profullstack/footer@0.2.0(react@19.2.3)': + optionalDependencies: + react: 19.2.3 + '@profullstack/keys@0.1.0': {} '@profullstack/notifications@0.1.0': {}