Код: Выделить всё
'use client';
import { use } from 'react';
import { useCourseNode } from '@/api/course/hooks';
import { Loader } from '@/components/loaders/loader';
import { DefaultTreeNodeBox } from '@/components/tree/renderers/boxes/node-box';
import { EntityTargetType } from '@/lib/enums';
import { useDocumentTitle } from '@uidotdev/usehooks';
import { notFound } from 'next/navigation';
export default function ContentPage(props: {
params: Promise;
}) {
const params = use(props.params);
const queryNode = useCourseNode(params.node);
useDocumentTitle(
queryNode.data?.name
? queryNode.data.name + ' | ' + queryNode.data.target.name
: ''
);
if (queryNode.isLoading) return ;
if (!queryNode.data) return notFound();
const node = queryNode.data;
return (
);
}
Код: Выделить всё
import { ExamAttemptResultBox } from '@/app/(app)/account/activity/exam-attempt-card';
import { SolveExamDialog } from '@/app/(public)/exams/[id]/solve-exam/solve-exam-dialog';
import { SolveExamProvider } from '@/app/(public)/exams/[id]/solve-exam/solve-exam-provider';
import { RemoveExamAttemptDialog } from '@/app/(public)/exams/remove-exam-attempt-dialog';
import { CardActionsContainer } from '@/components/card-actions-container';
import { PlayIcon } from '@/components/icons/play-icon';
import { Button } from '@/components/ui/button';
import { TextGradient } from '@/components/ui/text-gradient';
import { Role } from '@/lib/enums';
import { getUserOrGuest } from '@/lib/utils';
import { Exam, ExamAttempt } from '@/types';
import { Eye } from 'lucide-react';
export const SolveExamBox = ({
exam,
examAttempt,
}: {
exam: Exam;
examAttempt?: ExamAttempt;
}) => {
const user = getUserOrGuest();
if (examAttempt) examAttempt.exam = exam;
if (examAttempt?.result)
return (
Wynik
);
if (user && user.role !== Role.USER) return null;
return (
Rozwiąż online
);
};
Подробнее здесь: https://stackoverflow.com/questions/797 ... tjs-shadcn
Мобильная версия