import { SubscriptionExpired } from "@/components/auth/subscription-expired" import ScreenDropArea from "@/components/files/screen-drop-area" import MobileMenu from "@/components/sidebar/mobile-menu" import { AppSidebar } from "@/components/sidebar/sidebar" import { SidebarInset, SidebarProvider } from "@/components/ui/sidebar" import { Toaster } from "@/components/ui/sonner" import { getCurrentUser, isSubscriptionExpired } from "@/lib/auth" import config from "@/lib/config" import { getUnsortedFilesCount } from "@/models/files" import type { Metadata, Viewport } from "next" import "../globals.css" import { NotificationProvider } from "./context" export const metadata: Metadata = { title: { template: "%s | TaxHacker", default: config.app.title, }, description: config.app.description, icons: { icon: "/favicon.ico", shortcut: "/favicon.ico", apple: "/apple-touch-icon.png", }, manifest: "/site.webmanifest", } export const viewport: Viewport = { themeColor: "#ffffff", } export default async function RootLayout({ children }: { children: React.ReactNode }) { const user = await getCurrentUser() const unsortedFilesCount = await getUnsortedFilesCount(user.id) const userProfile = { id: user.id, name: user.name || "", email: user.email, avatar: user.avatar || undefined, membershipPlan: user.membershipPlan || "unlimited", storageUsed: user.storageUsed || 0, storageLimit: user.storageLimit || -1, aiBalance: user.aiBalance || 0, } return ( {isSubscriptionExpired(user) && } {children} ) } export const dynamic = "force-dynamic"