MCPcopy Create free account
hub / github.com/code100x/daily-code / PageToggle

Function PageToggle

apps/web/components/PageToggle.tsx:11–53  ·  view source on GitHub ↗
({
  allProblems,
  isAtHeader = false,
  track,
}: {
  allProblems: Problem[];
  isAtHeader?: boolean;
  track: Track & { problems: Problem[] };
})

Source from the content-addressed store, hash-verified

9import { cn } from "@repo/ui/utils";
10
11export function PageToggle({
12 allProblems,
13 isAtHeader = false,
14 track,
15}: {
16 allProblems: Problem[];
17 isAtHeader?: boolean;
18 track: Track & { problems: Problem[] };
19}) {
20 const { trackIds }: { trackIds?: string[] } = useParams();
21 const currentTrack = trackIds ? trackIds.join("/") : "";
22
23 const isLegacyMode = useRecoilValue(isLegacyViewMode);
24
25 return (
26 <DropdownMenu>
27 <DropdownMenuTrigger asChild>
28 <Button
29 className={`flex gap-2 font-semibold ${isLegacyMode ? "" : "dark:bg-[#323232]"}`}
30 size={"lg"}
31 variant={isLegacyMode ? "outline" : "secondary"}
32 >
33 <span className={`hidden ${isAtHeader ? "lg" : "md"}:block`}>Jump To</span>
34 <ArrowUpRight className="size-4" />
35 </Button>
36 </DropdownMenuTrigger>
37 <DropdownMenuContent align="start" className={cn("max-h-[80vh] overflow-y-auto dark:bg-[#151515]")}>
38 {allProblems.map((problem: { id: string; title: string }, index: number) => (
39 <DropdownMenuItem key={index} disabled={currentTrack === `${track.id}/${problem.id}`}>
40 <Link
41 key={problem.id}
42 prefetch={true}
43 className="w-full max-w-screen-md"
44 href={`/tracks/${track.id}/${problem.id}`}
45 >
46 {index + 1} - {problem.title}
47 </Link>
48 </DropdownMenuItem>
49 ))}
50 </DropdownMenuContent>
51 </DropdownMenu>
52 );
53}

Callers

nothing calls this directly

Calls 1

cnFunction · 0.90

Tested by

no test coverage detected