- Updated theme resolution logic to utilize a shared inline script for consistent theme application across routes. - Introduced `AppShell` and `ReadyGate` components to manage app readiness and theme synchronization, improving user experience. - Enhanced `GlobalError` and `NotFound` pages with a unified full-screen layout for better accessibility and visual consistency. - Refactored CSS to implement safe area insets for sticky headers and content safety, ensuring proper layout on various devices. - Added unit tests for new functionality and improved existing tests for better coverage and reliability.
18 lines
372 B
TypeScript
18 lines
372 B
TypeScript
/**
|
|
* App shell: wraps children with ReadyGate so any route can trigger miniAppReady().
|
|
* Rendered inside TelegramProvider so theme and SDK are available.
|
|
*/
|
|
|
|
"use client";
|
|
|
|
import { ReadyGate } from "@/components/ReadyGate";
|
|
|
|
export function AppShell({ children }: { children: React.ReactNode }) {
|
|
return (
|
|
<>
|
|
<ReadyGate />
|
|
{children}
|
|
</>
|
|
);
|
|
}
|