Add useFrameViewport hook; apply desktop mode to DirectorsForecast

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
jtricerolph 2026-07-21 09:00:35 +00:00
parent e02e558e81
commit 3a8661127a
2 changed files with 24 additions and 0 deletions

View file

@ -0,0 +1,22 @@
import { useEffect } from 'react'
type ViewportMode = 'desktop' | 'responsive'
const DESKTOP = 'width=1280'
const RESPONSIVE = 'width=device-width, initial-scale=1.0'
function setMetaViewport(content: string) {
const meta = document.querySelector<HTMLMetaElement>('meta[name="viewport"]')
if (meta) meta.content = content
}
export function useFrameViewport(mode: ViewportMode) {
useEffect(() => {
setMetaViewport(mode === 'desktop' ? DESKTOP : RESPONSIVE)
window.parent.postMessage({ type: 'hnf:viewport', mode }, '*')
return () => {
setMetaViewport(RESPONSIVE)
window.parent.postMessage({ type: 'hnf:viewport', mode: 'responsive' }, '*')
}
}, [mode])
}

View file

@ -1,4 +1,5 @@
import { useCallback, useEffect, useState } from 'react' import { useCallback, useEffect, useState } from 'react'
import { useFrameViewport } from '../hooks/useFrameViewport'
import { Save, RefreshCw, Camera, Trash2, Printer, Repeat2 } from 'lucide-react' import { Save, RefreshCw, Camera, Trash2, Printer, Repeat2 } from 'lucide-react'
import { useAuth } from '../components/AuthGate' import { useAuth } from '../components/AuthGate'
import { dfGetWorksheet, dfSaveWorksheet, dfGetReport, dfSaveSnapshot, dfDeleteSnapshot } from '../api' import { dfGetWorksheet, dfSaveWorksheet, dfGetReport, dfSaveSnapshot, dfDeleteSnapshot } from '../api'
@ -486,6 +487,7 @@ function ReportTab({ year, month }: { year: number; month: number }) {
type Tab = 'worksheet' | 'report' type Tab = 'worksheet' | 'report'
export default function DirectorsForecast() { export default function DirectorsForecast() {
useFrameViewport('desktop')
const now = new Date() const now = new Date()
const [year, setYear] = useState(now.getFullYear()) const [year, setYear] = useState(now.getFullYear())
const [month, setMonth] = useState(now.getMonth() + 1) const [month, setMonth] = useState(now.getMonth() + 1)