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

Function LinkCard

apps/web/components/admin/LinkCard.tsx:21–74  ·  view source on GitHub ↗
({ track }: { track: LinkCardProps })

Source from the content-addressed store, hash-verified

19}
20
21const LinkCard = ({ track }: { track: LinkCardProps }) => {
22 function handleAddProblem() {
23 try {
24 createTrackProblems({ trackId: track.id, problemId, sortingOrder });
25 } catch (error) {
26 console.error(error);
27 }
28 }
29 const [problemId, setProblemId] = useState("");
30 const [sortingOrder, setSortingOrder] = useState(0);
31 const [newProblems, setNewProblems] = useState<TrackProblems[]>([]);
32 const problems = track.problems;
33 return (
34 <Sheet>
35 <SheetTrigger>
36 <Button variant={"outline"}>View</Button>
37 </SheetTrigger>
38 <SheetContent side={"bottom"} className="h-4/5 overflow-y-auto">
39 <div className="text-5xl text-center mb-4">Problems</div>
40 <div className="flex justify-center my-4">
41 <div className="flex items-center mr-3">{"ProblemId: "}</div>
42 <Input className="w-1/3" onChange={(e) => setProblemId(e.target.value)} />
43 <div className="flex items-center mx-3">{"SortingOrder: "}</div>
44 <Input type="number" className="w-24 mx-2" onChange={(e) => setSortingOrder(parseInt(e.target.value))} />
45 <Button
46 className="ml-3"
47 onClick={() => {
48 handleAddProblem();
49 setNewProblems([...newProblems, { trackId: track.id, problemId, sortingOrder }]);
50 }}
51 >
52 Add
53 </Button>
54 </div>
55 {newProblems[0] && <div className="text-2xl text-center mb-4">New Problems</div>}
56 <div className="flex">
57 {newProblems.map((problem, i) => (
58 <Card className="m-4 p-4" key={i}>
59 <CardTitle>problemId: {problem.problemId}</CardTitle>
60 <CardDescription>sortingOrder: {problem.sortingOrder}</CardDescription>
61 </Card>
62 ))}
63 </div>
64 <div className="text-2xl text-center mb-4">Existing Problems</div>
65 <div className="space-y-4">
66 {problems.map((problem, i) => (
67 // @ts-ignore
68 <ProblemCard key={i} problem={problem} />
69 ))}
70 </div>
71 </SheetContent>
72 </Sheet>
73 );
74};
75
76export default LinkCard;

Callers

nothing calls this directly

Calls 1

handleAddProblemFunction · 0.85

Tested by

no test coverage detected