"use client"; import React, { Suspense, useEffect, useState } from "react"; import { useSearchParams } from "next/navigation"; import { jwtDecode } from "jwt-decode"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { defaultOrg } from "@/components/common_components/default_org"; import { KeyResponse, Team } from "@/components/key_team_helpers/key_list"; import Navbar from "@/components/navbar"; import UserDashboard from "@/components/user_dashboard"; import ModelDashboard from "@/components/model_dashboard"; import ViewUserDashboard from "@/components/view_users"; import Teams from "@/components/teams"; import Organizations from "@/components/organizations"; import { fetchOrganizations } from "@/components/organizations"; import AdminPanel from "@/components/admins"; import Settings from "@/components/settings"; import GeneralSettings from "@/components/general_settings"; import PassThroughSettings from "@/components/pass_through_settings"; import BudgetPanel from "@/components/budgets/budget_panel"; import SpendLogsTable from "@/components/view_logs"; import ModelHub from "@/components/model_hub"; import NewUsagePage from "@/components/new_usage"; import APIRef from "@/components/api_ref"; import ChatUI from "@/components/chat_ui"; import Sidebar from "@/components/leftnav"; import Usage from "@/components/usage"; import CacheDashboard from "@/components/cache_dashboard"; import { proxyBaseUrl, setGlobalLitellmHeaderName } from "@/components/networking"; import { Organization } from "@/components/networking"; import GuardrailsPanel from "@/components/guardrails"; import TransformRequestPanel from "@/components/transform_request"; import { fetchUserModels } from "@/components/create_key_button"; import { fetchTeams } from "@/components/common_components/fetch_teams"; import MCPToolsViewer from "@/components/mcp_tools"; import TagManagement from "@/components/tag_management"; import VectorStoreManagement from "@/components/vector_store_management"; import { UiLoadingSpinner } from "@/components/ui/ui-loading-spinner"; import { cx } from '@/lib/cva.config'; function getCookie(name: string) { const cookieValue = document.cookie .split("; ") .find((row) => row.startsWith(name + "=")); return cookieValue ? cookieValue.split("=")[1] : null; } function formatUserRole(userRole: string) { if (!userRole) { return "Undefined Role"; } console.log(`Received user role: ${userRole.toLowerCase()}`); console.log(`Received user role length: ${userRole.toLowerCase().length}`); switch (userRole.toLowerCase()) { case "app_owner": return "App Owner"; case "demo_app_owner": return "App Owner"; case "app_admin": return "Admin"; case "proxy_admin": return "Admin"; case "proxy_admin_viewer": return "Admin Viewer"; case "org_admin": return "Org Admin"; case "internal_user": return "Internal User"; case "internal_viewer": return "Internal Viewer"; case "app_user": return "App User"; default: return "Unknown Role"; } } interface ProxySettings { PROXY_BASE_URL: string; PROXY_LOGOUT_URL: string; } const queryClient = new QueryClient(); function LoadingScreen() { return (