"use client"; import React, { Suspense, useEffect, useState } from "react"; import { useSearchParams } from "next/navigation"; 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 AdminPanel from "@/components/admins"; import Settings from "@/components/settings"; import GeneralSettings from "@/components/general_settings"; import BudgetPanel from "@/components/budgets/budget_panel"; import ModelHub from "@/components/model_hub"; import APIRef from "@/components/api_ref"; import ChatUI from "@/components/chat_ui"; import Sidebar from "../components/leftnav"; import Usage from "../components/usage"; import { jwtDecode } from "jwt-decode"; import { Typography } from "antd"; export 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 "app_user": return "App User"; default: return "Unknown Role"; } } const CreateKeyPage = () => { const { Title, Paragraph } = Typography; const [userRole, setUserRole] = useState(""); const [premiumUser, setPremiumUser] = useState(false); const [userEmail, setUserEmail] = useState(null); const [teams, setTeams] = useState(null); const [keys, setKeys] = useState(null); const [showSSOBanner, setShowSSOBanner] = useState(true); const searchParams = useSearchParams(); const [modelData, setModelData] = useState({ data: [] }); const userID = searchParams.get("userID"); const token = searchParams.get("token"); const [page, setPage] = useState("api-keys"); const [accessToken, setAccessToken] = useState(null); useEffect(() => { if (token) { const decoded = jwtDecode(token) as { [key: string]: any }; if (decoded) { // cast decoded to dictionary console.log("Decoded token:", decoded); console.log("Decoded key:", decoded.key); // set accessToken setAccessToken(decoded.key); // check if userRole is defined if (decoded.user_role) { const formattedUserRole = formatUserRole(decoded.user_role); console.log("Decoded user_role:", formattedUserRole); setUserRole(formattedUserRole); if (formattedUserRole == "Admin Viewer") { setPage("usage"); } } else { console.log("User role not defined"); } if (decoded.user_email) { setUserEmail(decoded.user_email); } else { console.log(`User Email is not set ${decoded}`); } if (decoded.login_method) { setShowSSOBanner( decoded.login_method == "username_password" ? true : false ); } else { console.log(`User Email is not set ${decoded}`); } if (decoded.premium_user) { setPremiumUser(decoded.premium_user); } } } }, [token]); return ( Loading...}>
{page == "api-keys" ? ( ) : page == "models" ? ( ) : page == "llm-playground" ? ( ) : page == "users" ? ( ) : page == "teams" ? ( ) : page == "admin-panel" ? ( ) : page == "api_ref" ? ( ) : page == "settings" ? ( ) : page == "budgets" ? ( ) : page == "general-settings" ? ( ) : page == "model-hub" ? ( ) : ( )}
); }; export default CreateKeyPage;