diff --git a/components.json b/components.json index 8c574b7..59e0a29 100644 --- a/components.json +++ b/components.json @@ -1,6 +1,6 @@ { "$schema": "https://ui.shadcn.com/schema.json", - "style": "default", + "style": "new-york", "rsc": true, "tsx": true, "tailwind": { @@ -14,4 +14,4 @@ "components": "@/components", "utils": "@/lib/utils" } -} \ No newline at end of file +} diff --git a/next-css-obfuscator.config.ts b/next-css-obfuscator.config.ts deleted file mode 100644 index e2f1894..0000000 --- a/next-css-obfuscator.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - enable: true, - mode: "simplify-seedable", // random | simplify | simplify-seedable - refreshClassConversionJson: false, // recommended set to true if not in production - allowExtensions: [".jsx", ".tsx", ".js", ".ts", ".html", ".rsc"], -}; diff --git a/next.config.mjs b/next.config.mjs index af3301f..cfea624 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,4 +1,5 @@ -import plugin from "@unocss/webpack"; +import MangleCssClassPlugin from "mangle-css-class-webpack-plugin"; + /** @type {import('next').NextConfig} */ const nextConfig = { images: { @@ -9,6 +10,36 @@ const nextConfig = { }, ], }, + webpack: (config, { dev }) => { + config.resolve.modules.push(path.resolve("./")); + + if (!dev) { + config.plugins.push( + new MangleCssClassPlugin({ + classNameRegExp: + "(([a-zA-Z-:]*)[\\\\\\\\]*:)*([\\\\\\\\]*!)?tw-[a-zA-Z-]([a-zA-Z0-9-]*([\\\\\\\\]*(\\%|\\#|\\.|\\[|\\]))*)*", + // ignorePrefixRegExp: "((hover|focus|active|disabled|visited|first|last|odd|even|group-hover|focus-within|xs|sm|md||lg|xl)(\\\\\\\\\\\\\\\\|\\\\)?:)*", + + classGenerator: (original, opts, context) => { + if (classNames[original]) { + return classNames[original]; + } + + let nextId; + + do { + // Class name cannot start with a number. + nextId = `cfk-${Math.random()}`; + } while (/^[0-9_-]/.test(nextId)); + + return (classNames[original] = nextId); + }, + // log: true + }) + ); + } + return config; + }, }; export default nextConfig; diff --git a/package.json b/package.json index e6318ad..01bb9fb 100644 --- a/package.json +++ b/package.json @@ -90,6 +90,7 @@ "eslint": "^8", "eslint-config-next": "14.2.3", "jotai": "^2.9.1", + "mangle-css-class-webpack-plugin": "^5.1.0", "postcss": "^8", "tailwindcss": "^3.4.1", "typescript": "^5" diff --git a/src/allTags.ts b/src/allTags.ts index 572d756..045303c 100644 --- a/src/allTags.ts +++ b/src/allTags.ts @@ -1,4 +1,4 @@ -import { OnlineServer, ServerResponse } from "./lib/types/server"; +import { OnlineServer, ServerResponse } from "./lib/types/mh-server"; const serverCache: any = {}; diff --git a/src/app/account/favorites/page.tsx b/src/app/account/favorites/page.tsx index 6a3111a..995b26f 100644 --- a/src/app/account/favorites/page.tsx +++ b/src/app/account/favorites/page.tsx @@ -1,16 +1,4 @@ -import { banner } from "@/banner"; -import TopBar from "@/components/clerk/Topbar"; import FavoritesView from "@/components/FavoritesView"; -import { - Breadcrumb, - BreadcrumbItem, - BreadcrumbLink, - BreadcrumbList, - BreadcrumbPage, - BreadcrumbSeparator, -} from "@/components/ui/breadcrumb"; -import { Server } from "lucide-react"; -import Link from "next/link"; export default function Favorites() { return ( diff --git a/src/app/account/settings/page.tsx b/src/app/account/settings/page.tsx index 04f61fa..2e2d243 100644 --- a/src/app/account/settings/page.tsx +++ b/src/app/account/settings/page.tsx @@ -1,15 +1,6 @@ "use client"; -import { ShowInfo } from "@/components/misc/InfoClaim"; -import { TextCopyComp } from "@/components/misc/TextCopyComp"; import { Button } from "@/components/ui/button"; -import { - InputOTP, - InputOTPGroup, - InputOTPSeparator, - InputOTPSlot, -} from "@/components/ui/input-otp"; import { useClerk, useUser } from "@clerk/nextjs"; -import { default as NextLink } from "next/link"; import { ExternalLink, KeyRound, Link, UserPen } from "lucide-react"; import { ResizableHandle, @@ -19,7 +10,6 @@ import { import toast from "react-hot-toast"; import { unlinkMCAccount } from "@/lib/api"; import { useEffect, useState } from "react"; -import { link } from "fs"; import { Dialog } from "@/components/ui/dialog"; import { DialogContent, DialogTrigger } from "@/components/ui/dialog"; import CodeDialog from "@/components/misc/LinkDialog"; diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 5c8b3b0..93662b6 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,37 +1,24 @@ -import type { Metadata } from "next"; import { GeistSans } from "geist/font/sans"; -import { Github, CodeXml, Server, Command } from "lucide-react"; +import { Server } from "lucide-react"; import { SpeedInsights } from "@vercel/speed-insights/next"; import { Analytics } from "@vercel/analytics/react"; import "./globals.css"; import { Toaster } from "react-hot-toast"; -import { headers } from "next/headers"; - -import { Button } from "@/components/ui/button"; import { TooltipProvider } from "@/components/ui/tooltip"; import { ThemeProvider } from "@/components/ThemeProvider"; -import Image from "next/image"; import { ClerkThemeProvider } from "@/components/clerk/ClerkThemeProvider"; -import { useEffectOnce } from "@/lib/useEffectOnce"; import NextTopLoader from "@/lib/top-loader"; import { banner } from "@/banner"; import { Breadcrumb, - BreadcrumbItem, BreadcrumbList, BreadcrumbPage, - BreadcrumbSeparator, } from "@/components/ui/breadcrumb"; import Link from "next/link"; import TopBar from "@/components/clerk/Topbar"; import TextFromPathname from "@/components/TextFromPathname"; import { Inter as interFont } from "next/font/google"; -import { - CommandBar, - CommandBarer, - SearchCommandBar, - SubLinkCommandBar, -} from "@/components/CommandBar"; +import { CommandBarer } from "@/components/CommandBar"; const inter = interFont({ variable: "--font-inter", subsets: ["latin"] }); export default async function RootLayout({ diff --git a/src/app/page.tsx b/src/app/page.tsx index 1776b93..255e994 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,34 +1,10 @@ -import Image from "next/image"; -import { GeistSans } from "geist/font/sans"; import ServerList from "@/components/ServerList"; -import { Button } from "@/components/ui/button"; -import { ModeToggle as ThemeSwitcher } from "@/components/ThemeSwitcher"; -import { - SignInButton, - SignedIn, - SignedOut, - UserProfile, - useUser, - useClerk, -} from "@clerk/nextjs"; -import { - Popover, - PopoverContent, - PopoverTrigger, -} from "@/components/ui/popover"; -import { - Breadcrumb, - BreadcrumbItem, - BreadcrumbLink, - BreadcrumbList, - BreadcrumbPage, - BreadcrumbSeparator, -} from "@/components/ui/breadcrumb"; -import { X, UserCog, Server } from "lucide-react"; -import TopBar from "@/components/clerk/Topbar"; -import { banner } from "@/banner"; -import { ResolvingMetadata, Metadata } from "next"; -import Link from "next/link"; +import { Metadata } from "next"; + +export const metadata: Metadata = { + title: "the MHSF project by dvelo", + description: `currently running in ${process.env.NEXT_PUBLIC_VERCEL_ENV} | commit (${process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA}) ${process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_MESSAGE} by ${process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_AUTHOR_NAME}`, +}; export default function Home() { return ( diff --git a/src/app/server/[server]/customize/page.tsx b/src/app/server/[server]/customize/page.tsx index d3c1d84..84ff309 100644 --- a/src/app/server/[server]/customize/page.tsx +++ b/src/app/server/[server]/customize/page.tsx @@ -1,26 +1,4 @@ -import ServerView from "@/components/ServerView"; -import { - Breadcrumb, - BreadcrumbItem, - BreadcrumbLink, - BreadcrumbList, - BreadcrumbPage, - BreadcrumbSeparator, -} from "@/components/ui/breadcrumb"; -import TopBar from "@/components/clerk/Topbar"; -import { CornerDownLeft, Server, X } from "lucide-react"; import type { Metadata, ResolvingMetadata } from "next"; -import { IconDisplayClient } from "@/components/IconDisplay"; -import { banner } from "@/banner"; -import Link from "next/link"; -import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; -import TabServer from "@/components/misc/TabServer"; -import { Button } from "@/components/ui/button"; -import { Label } from "@/components/ui/label"; -import { Textarea } from "@/components/ui/textarea"; -import { Tooltip } from "@/components/ui/tooltip"; -import ServerCustomize from "@/components/ServerCustomize"; -import { useColor } from "@/lib/use-color"; import CustomizeRoot from "@/components/CustomizeRoot"; type Props = { diff --git a/src/app/server/[server]/page.tsx b/src/app/server/[server]/page.tsx index 10f5a33..a3eb6d0 100644 --- a/src/app/server/[server]/page.tsx +++ b/src/app/server/[server]/page.tsx @@ -1,21 +1,6 @@ import ServerView from "@/components/ServerView"; -import { - Breadcrumb, - BreadcrumbItem, - BreadcrumbLink, - BreadcrumbList, - BreadcrumbPage, - BreadcrumbSeparator, -} from "@/components/ui/breadcrumb"; -import TopBar from "@/components/clerk/Topbar"; -import { Server } from "lucide-react"; import type { Metadata, ResolvingMetadata } from "next"; -import { IconDisplayClient } from "@/components/IconDisplay"; -import { banner } from "@/banner"; -import Link from "next/link"; -import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import TabServer from "@/components/misc/TabServer"; -import { useColor } from "@/lib/use-color"; import ColorProvider from "@/components/ColorProvider"; import AfterServerView from "@/components/AfterServerView"; import Banner from "@/components/Banner"; diff --git a/src/app/server/[server]/short-term/page.tsx b/src/app/server/[server]/short-term/page.tsx index ef4f5ef..38d4c00 100644 --- a/src/app/server/[server]/short-term/page.tsx +++ b/src/app/server/[server]/short-term/page.tsx @@ -1,21 +1,7 @@ import ServerView from "@/components/ServerView"; -import { - Breadcrumb, - BreadcrumbItem, - BreadcrumbLink, - BreadcrumbList, - BreadcrumbPage, - BreadcrumbSeparator, -} from "@/components/ui/breadcrumb"; -import TopBar from "@/components/clerk/Topbar"; -import { Server } from "lucide-react"; import type { Metadata, ResolvingMetadata } from "next"; -import { IconDisplayClient } from "@/components/IconDisplay"; -import { banner } from "@/banner"; -import Link from "next/link"; import TabServer from "@/components/misc/TabServer"; import { NewChart } from "@/components/NewChart"; -import { useColor } from "@/lib/use-color"; import ColorProvider from "@/components/ColorProvider"; import Banner from "@/components/Banner"; diff --git a/src/components/CommandBar.tsx b/src/components/CommandBar.tsx index 5e7035b..0bbc189 100644 --- a/src/components/CommandBar.tsx +++ b/src/components/CommandBar.tsx @@ -1,6 +1,5 @@ "use client"; import { - Command, CommandDialog, CommandEmpty, CommandGroup, @@ -11,11 +10,10 @@ import { CommandShortcut, } from "@/components/ui/command"; import { TagShower } from "./ServerList"; -import { useEffect, useState } from "react"; -import { OnlineServer } from "@/lib/types/server"; +import { useState } from "react"; +import { OnlineServer } from "@/lib/types/mh-server"; import events from "@/lib/commandEvent"; import { useHotkeys } from "react-hotkeys-hook"; -import Link from "next/link"; import { ArrowDown01, ArrowLeft, @@ -27,14 +25,16 @@ import { } from "lucide-react"; import { useEffectOnce } from "@/lib/useEffectOnce"; import { useClerk, useUser } from "@clerk/nextjs"; -import { useRouter } from '@/lib/useRouter' +import { useRouter } from "@/lib/useRouter"; +import type { SVGProps } from "react"; +import { getAccountFavorites } from "@/lib/api"; export function SearchCommandBar() { const [serverList, setServerList] = useState([]); const [open, setOpen] = useState(false); const [backEnabled, setBackEnabled] = useState(false); const [searchRes, setSearchRes] = useState(undefined); - const router = useRouter() + const router = useRouter(); useHotkeys("mod+shift+k", () => setOpen(true), []); useEffectOnce(() => { @@ -252,9 +252,6 @@ export function SubLinkCommandBar() { ); } -import * as React from "react"; -import type { SVGProps } from "react"; -import { getAccountFavorites } from "@/lib/api"; const Github = (props: SVGProps) => ( { events.on("cmd-event-favorites", () => setOpen(true)); @@ -297,7 +294,7 @@ export function FavoriteBar() { Go back - + {favorites == undefined && ( clerk.openSignIn()}> diff --git a/src/components/FavoritesView.tsx b/src/components/FavoritesView.tsx index 0bae68c..cbc02bd 100644 --- a/src/components/FavoritesView.tsx +++ b/src/components/FavoritesView.tsx @@ -1,20 +1,20 @@ "use client"; -import { useEffect, useState } from "react"; +import { useState } from "react"; import { Spinner } from "./ui/spinner"; import { Card, CardHeader, CardTitle } from "./ui/card"; -import { ServerResponse } from "@/lib/types/server"; +import { ServerResponse } from "@/lib/types/mh-server"; import { useEffectOnce } from "@/lib/useEffectOnce"; import { Button } from "./ui/button"; import { Copy, Layers, XIcon } from "lucide-react"; import toast from "react-hot-toast"; import { Tooltip, TooltipContent, TooltipTrigger } from "./ui/tooltip"; import { getAccountFavorites } from "@/lib/api"; -import { useRouter } from '@/lib/useRouter' +import { useRouter } from "@/lib/useRouter"; export default function FavoritesView() { const [apiFavorites, setApiFavorites] = useState([]); const [loading, setLoading] = useState(true); - const router = useRouter() + const router = useRouter(); useEffectOnce(() => { getAccountFavorites().then((d) => { diff --git a/src/components/NewChart.tsx b/src/components/NewChart.tsx index 4e30b98..8bf90ff 100644 --- a/src/components/NewChart.tsx +++ b/src/components/NewChart.tsx @@ -17,7 +17,7 @@ import { ChartTooltipContent, } from "@/components/ui/chart"; import { useEffectOnce } from "@/lib/useEffectOnce"; -import { ServerResponse } from "@/lib/types/server"; +import { ServerResponse } from "@/lib/types/mh-server"; import { getCommunityServerFavorites, getShortTermData } from "@/lib/api"; const chartConfig = { diff --git a/src/components/ServerCard.tsx b/src/components/ServerCard.tsx index aa56695..9701c34 100644 --- a/src/components/ServerCard.tsx +++ b/src/components/ServerCard.tsx @@ -15,25 +15,16 @@ import { } from "./ui/card"; import IconDisplay from "./IconDisplay"; import { TagShower } from "./ServerList"; -import { - Copy, - EllipsisVertical, - Layers, - MoveRight, - Router, -} from "lucide-react"; +import { Copy, EllipsisVertical, Layers } from "lucide-react"; import { Button } from "./ui/button"; import { Drawer, - DrawerClose, DrawerContent, - DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, } from "@/components/ui/drawer"; -import { useEffect, useState } from "react"; import { Tooltip } from "@radix-ui/react-tooltip"; import { TooltipContent, TooltipTrigger } from "./ui/tooltip"; import { useRouter } from "@/lib/useRouter"; diff --git a/src/components/ServerCustomize.tsx b/src/components/ServerCustomize.tsx index 9575593..1f7735c 100644 --- a/src/components/ServerCustomize.tsx +++ b/src/components/ServerCustomize.tsx @@ -1,8 +1,7 @@ "use client"; -import { Label } from "./ui/label"; import { Button } from "./ui/button"; import { Textarea } from "./ui/textarea"; -import { CheckIcon, CornerDownLeft, X } from "lucide-react"; +import { CheckIcon, X } from "lucide-react"; import { Dispatch, SetStateAction, useEffect, useState } from "react"; import { getCustomization, @@ -14,9 +13,8 @@ import { } from "@/lib/api"; import toast from "react-hot-toast"; import { SignedIn, SignedOut, useUser } from "@clerk/nextjs"; -import { OnlineServer } from "@/lib/types/server"; +import { OnlineServer } from "@/lib/types/mh-server"; import Link from "next/link"; -import { useEffectOnce } from "@/lib/useEffectOnce"; import Setting from "./ui/setting"; import { FormControl, @@ -30,7 +28,6 @@ import { import { z } from "zod"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; -import { Input } from "./ui/input"; import "@/themes.css"; import { Card, @@ -43,7 +40,6 @@ import { import { Popover, PopoverContent, PopoverTrigger } from "./ui/popover"; import { themes } from "@/lib/themes"; import { useTheme } from "next-themes"; -import { useColor } from "@/lib/use-color"; import { DiscordPopover } from "./misc/DiscordPopover"; import { Spinner } from "./ui/spinner"; import { BannerPopover } from "./misc/BannerPopover"; diff --git a/src/components/ServerList.tsx b/src/components/ServerList.tsx index 2038ca3..abb22a0 100644 --- a/src/components/ServerList.tsx +++ b/src/components/ServerList.tsx @@ -1,27 +1,10 @@ "use client"; -import { useEffect, useState } from "react"; -import { - Card, - CardContent, - CardDescription, - CardFooter, - CardHeader, - CardTitle, -} from "@/components/ui/card"; +import { useState } from "react"; import { Separator } from "@/components/ui/separator"; import { Button } from "@/components/ui/button"; import { Badge } from "./ui/badge"; import ServersList from "@/lib/list"; -import { - CircleUser, - Network, - Copy, - Sun, - SlidersHorizontal, - Check, - XIcon, - Info, -} from "lucide-react"; +import { CircleUser, Network, Sun, Check, XIcon, Info } from "lucide-react"; import Stat from "./Stat"; import { Dialog, @@ -31,37 +14,6 @@ import { DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; -import { - ResizableHandle, - ResizablePanel, - ResizablePanelGroup, -} from "@/components/ui/resizable"; -import { - ContextMenu, - ContextMenuCheckboxItem, - ContextMenuContent, - ContextMenuItem, - ContextMenuLabel, - ContextMenuRadioGroup, - ContextMenuRadioItem, - ContextMenuSeparator, - ContextMenuShortcut, - ContextMenuSub, - ContextMenuSubContent, - ContextMenuSubTrigger, - ContextMenuTrigger, -} from "@/components/ui/context-menu"; -import { - Command, - CommandDialog, - CommandEmpty, - CommandGroup, - CommandInput, - CommandItem, - CommandList, - CommandSeparator, - CommandShortcut, -} from "@/components/ui/command"; import { Tooltip, TooltipContent, @@ -71,23 +23,18 @@ import toast from "react-hot-toast"; import { allTags, allCategories } from "@/allTags"; import IconDisplay from "./IconDisplay"; import InfiniteScroll from "react-infinite-scroll-component"; -import Markdown from "react-markdown"; import { Popover, PopoverContent, PopoverTrigger, } from "@/components/ui/popover"; -import remarkGfm from "remark-gfm"; import { Checkbox } from "@/components/ui/checkbox"; import { Spinner } from "./ui/spinner"; import { CommandIcon } from "lucide-react"; -import { Input } from "@/components/ui/input"; -import { Label } from "@/components/ui/label"; -import { OnlineServer, ServerResponse } from "@/lib/types/server"; +import { OnlineServer } from "@/lib/types/mh-server"; import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"; import { useEffectOnce } from "@/lib/useEffectOnce"; import ServerCard from "./ServerCard"; -import { useHotkeys } from "react-hotkeys-hook"; import events from "@/lib/commandEvent"; import { BorderBeam } from "@/components/effects/border-beam"; diff --git a/src/components/ServerView.tsx b/src/components/ServerView.tsx index 03778ca..5efb5f3 100644 --- a/src/components/ServerView.tsx +++ b/src/components/ServerView.tsx @@ -1,7 +1,6 @@ "use client"; import { useState, useEffect } from "react"; import { Spinner } from "./ui/spinner"; -import IconDisplay from "./IconDisplay"; import { Card, CardContent, @@ -11,34 +10,18 @@ import { CardTitle, BetterHeader, } from "@/components/ui/card"; -import { motion, AnimatePresence } from "framer-motion"; -import { - Dialog, - DialogContent, - DialogDescription, - DialogHeader, - DialogTitle, - DialogTrigger, -} from "@/components/ui/dialog"; -import beautify from "json-beautify"; +import { motion } from "framer-motion"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/ui/tooltip"; import { Badge } from "./ui/badge"; -import Editor from "@monaco-editor/react"; -import { allTags } from "@/allTags"; import ServerSingle from "@/lib/single"; -import { parse, parseExpression } from "@babel/parser"; -import { NEXT_ROUTER_STATE_TREE } from "next/dist/client/components/app-router-headers"; -import { Button } from "./ui/button"; -import * as prettierPluginBabel from "prettier/plugins/babel"; -import toast from "react-hot-toast"; -import { SignedIn, SignedOut, SignInButton } from "@clerk/nextjs"; +import { SignedIn, SignedOut } from "@clerk/nextjs"; import SignInPopoverButton from "./clerk/SignInPopoverButton"; -import { Sparkle, Star, X } from "lucide-react"; -import { favoriteServer, getCustomization, isFavorited } from "@/lib/api"; +import { Star, X } from "lucide-react"; +import { favoriteServer, isFavorited } from "@/lib/api"; import { LoadingButton } from "./ui/loading-button"; import { useTheme } from "next-themes"; diff --git a/src/components/Stat.tsx b/src/components/Stat.tsx index cead84a..da6909f 100644 --- a/src/components/Stat.tsx +++ b/src/components/Stat.tsx @@ -1,6 +1,4 @@ -import { DollarSign } from "lucide-react"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; -import { Children } from "react"; export default function Component(props: { title: string | JSX.Element; diff --git a/src/components/clerk/SignInPopoverButton.tsx b/src/components/clerk/SignInPopoverButton.tsx index ec7c1c7..526282f 100644 --- a/src/components/clerk/SignInPopoverButton.tsx +++ b/src/components/clerk/SignInPopoverButton.tsx @@ -5,23 +5,30 @@ import { PopoverTrigger, } from "@/components/ui/popover"; import { Button } from "../ui/button"; -import { AtSign, LogIn, UserCog } from "lucide-react"; -import { useState } from "react"; -import { SignIn, useClerk } from "@clerk/nextjs"; +import { AtSign, LogIn } from "lucide-react"; +import { useClerk } from "@clerk/nextjs"; export default function SignInPopoverButton({ className, - variant + variant, }: { className?: string; - variant?: "default" | "destructive" | "secondary" | "outline" | "ghost" | "link"; + variant?: + | "default" + | "destructive" + | "secondary" + | "outline" + | "ghost" + | "link"; }) { const clerk = useClerk(); return ( - +
diff --git a/src/components/clerk/Topbar.tsx b/src/components/clerk/Topbar.tsx index b760602..4ca8508 100644 --- a/src/components/clerk/Topbar.tsx +++ b/src/components/clerk/Topbar.tsx @@ -1,17 +1,14 @@ "use client"; -import { useState, useEffect } from "react"; import { useClerk, useUser } from "@clerk/nextjs"; -import { SignedOut, SignedIn, SignInButton } from "@clerk/nextjs"; +import { SignedOut, SignedIn } from "@clerk/nextjs"; import { Button } from "../ui/button"; import { ModeToggle as ThemeSwitcher } from "../ThemeSwitcher"; import { Popover, PopoverTrigger, PopoverContent } from "../ui/popover"; import Image from "next/image"; -import { Circle, InfoIcon, UserCog, X } from "lucide-react"; +import { InfoIcon } from "lucide-react"; import LoggedInPopover from "./LoggedInPopover"; import SignInPopoverButton from "./SignInPopoverButton"; -import { version } from "@/version"; import InfoPopover from "../misc/InfoPopover"; -import Link from "next/link"; export default function TopBar({ inter }: { inter: string }) { const clerk = useClerk(); @@ -21,7 +18,7 @@ export default function TopBar({ inter }: { inter: string }) { <>
- +