Guest User

Untitled

a guest
Feb 8th, 2024
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. "use client"
  2. import Conditional from "@/components/Conditional"
  3. import { useSupabase } from "@/components/SupabaseProvider"
  4. import { ServerProvider } from "@/context/ServerContext"
  5. import { Button, Link } from "@nextui-org/react"
  6. import { useEffect, useState } from "react"
  7. import ControlPanel from "./components/ControlPanel"
  8. import SideBar from "./components/SideBar"
  9. import Loading from "./loading"
  10.  
  11. export default function ServerLayout({ children, params }) {
  12.     const [initialized, setInitialized] = useState(false)
  13.     const [initialServer, setInitialServer] = useState(null)
  14.     // const [currentPage, setCurrentPage] = useState(usePathname())
  15.  
  16.     const { supabase, session } = useSupabase()
  17.  
  18.     if (!session) {
  19.         redirect("/login")
  20.     }
  21.  
  22.     useEffect(() => {
  23.         const fetchInitialServer = async () => {
  24.             try {
  25.                 console.log(initialized)
  26.                 const { data, error } = await supabase.from("servers").select().eq("id", params.id)
  27.                
  28.                 if (error) {
  29.                     throw new Error(error.message)
  30.                 }
  31.  
  32.                 const server = data ? data[0] : null
  33.  
  34.                 if (!server) {
  35.                     throw new ResourceNotFoundError()
  36.                 }
  37.  
  38.                 setInitialServer(server)
  39.                 setInitialized(true)
  40.             } catch (error) {
  41.                 console.error("Error fetching initial server data:", error)
  42.             }
  43.         }
  44.  
  45.         if (!initialized) {
  46.             fetchInitialServer()
  47.         }
  48.     }, [params.id, supabase, initialized])
  49.         ...
Advertisement
Add Comment
Please, Sign In to add comment