mirror of
https://github.com/linsa-io/linsa.git
synced 2026-01-12 12:20:23 +01:00
wip (#135)
This commit is contained in:
@@ -8,6 +8,7 @@ import { ClerkProviderClient } from "@/components/custom/clerk/clerk-provider-cl
|
||||
import { JotaiProvider } from "@/lib/providers/jotai-provider"
|
||||
import { Toaster } from "@/components/ui/sonner"
|
||||
import { ConfirmProvider } from "@/lib/providers/confirm-provider"
|
||||
import { DeepLinkProvider } from "@/lib/providers/deep-link-provider"
|
||||
|
||||
const fontSans = FontSans({
|
||||
subsets: ["latin"],
|
||||
@@ -27,16 +28,18 @@ export default function RootLayout({
|
||||
return (
|
||||
<html lang="en" className="h-full w-full" suppressHydrationWarning>
|
||||
<ClerkProviderClient>
|
||||
<body className={cn("h-full w-full font-sans antialiased", fontSans.variable)}>
|
||||
<ThemeProvider attribute="class" defaultTheme="system" enableSystem>
|
||||
<JotaiProvider>
|
||||
<ConfirmProvider>
|
||||
{children}
|
||||
<Toaster expand={false} />
|
||||
</ConfirmProvider>
|
||||
</JotaiProvider>
|
||||
</ThemeProvider>
|
||||
</body>
|
||||
<DeepLinkProvider>
|
||||
<body className={cn("h-full w-full font-sans antialiased", fontSans.variable)}>
|
||||
<ThemeProvider attribute="class" defaultTheme="system" enableSystem>
|
||||
<JotaiProvider>
|
||||
<ConfirmProvider>
|
||||
{children}
|
||||
<Toaster expand={false} />
|
||||
</ConfirmProvider>
|
||||
</JotaiProvider>
|
||||
</ThemeProvider>
|
||||
</body>
|
||||
</DeepLinkProvider>
|
||||
</ClerkProviderClient>
|
||||
</html>
|
||||
)
|
||||
|
||||
35
web/lib/providers/deep-link-provider.tsx
Normal file
35
web/lib/providers/deep-link-provider.tsx
Normal file
@@ -0,0 +1,35 @@
|
||||
"use client"
|
||||
|
||||
import React, { useEffect, ReactNode } from "react"
|
||||
|
||||
interface DeepLinkProviderProps {
|
||||
children: ReactNode
|
||||
}
|
||||
|
||||
export function DeepLinkProvider({ children }: DeepLinkProviderProps) {
|
||||
useEffect(() => {
|
||||
const eventHandlers: { [key: string]: (event: Event) => void } = {
|
||||
click: (event: Event) => {
|
||||
const e = event as MouseEvent
|
||||
console.log("Click event:", { x: e.clientX, y: e.clientY })
|
||||
},
|
||||
keydown: (event: Event) => {
|
||||
const e = event as KeyboardEvent
|
||||
console.log("Keydown event:", { key: e.key, code: e.code })
|
||||
}
|
||||
}
|
||||
|
||||
// just a react thing
|
||||
Object.entries(eventHandlers).forEach(([eventType, handler]) => {
|
||||
window.addEventListener(eventType, handler)
|
||||
})
|
||||
|
||||
return () => {
|
||||
Object.entries(eventHandlers).forEach(([eventType, handler]) => {
|
||||
window.removeEventListener(eventType, handler)
|
||||
})
|
||||
}
|
||||
}, [])
|
||||
|
||||
return <>{children}</>
|
||||
}
|
||||
Reference in New Issue
Block a user