// src/components/AppGuard.tsx import React, { useCallback } from 'react'; import { Toaster } from 'react-hot-toast'; import { useAppInitialization } from '../hooks/useAppInitialization'; import { useModal } from '../hooks/useModal'; import { WhatsNewModal } from './WhatsNewModal'; import config from '../config'; interface AppGuardProps { children: React.ReactNode; } export const AppGuard: React.FC = ({ children }) => { // This hook handles OAuth tokens, version checks, and returns theme state. const { isDarkMode } = useAppInitialization(); const { isModalOpen, closeModal } = useModal(); const handleCloseWhatsNew = useCallback(() => closeModal('whatsNew'), [closeModal]); const appVersion = config.app.version; const commitMessage = config.app.commitMessage; return (
{/* Toaster component for displaying notifications. It's placed at the top level. */} {/* Add CSS variables for toast theming based on dark mode */} {appVersion && commitMessage && ( )} {children}
); };