61 lines
3.2 KiB
JavaScript
61 lines
3.2 KiB
JavaScript
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
import { B as Button } from "./button-CdJZJLGw.js";
|
|
import { D as Dialog, a as DialogTrigger, b as DialogContent, c as DialogHeader } from "./dialog-DGP_3dPQ.js";
|
|
import { c as Tabs, T as TabsList, a as TabsTrigger, b as TabsContent } from "./tabs-DmCK9qzK.js";
|
|
import { CheckCircle } from "lucide-react";
|
|
import { useState } from "react";
|
|
import AssignmentDetails from "./assignment-details-BD_KqM29.js";
|
|
import AssignmentSubmission from "./assignment-submission-D6YS2fsl.js";
|
|
import "@radix-ui/react-slot";
|
|
import "class-variance-authority";
|
|
import "./utils-DLCPGU0v.js";
|
|
import "clsx";
|
|
import "tailwind-merge";
|
|
import "@radix-ui/react-dialog";
|
|
import "@radix-ui/react-tabs";
|
|
import "date-fns";
|
|
import "richtor";
|
|
/* empty css */
|
|
import "./badge-J-zeQvMg.js";
|
|
import "./assignment-submission-form-CmfB3_43.js";
|
|
import "./chunked-uploader-input-CZfv7yqS.js";
|
|
import "./input-BsvJqbcd.js";
|
|
import "axios";
|
|
import "sonner";
|
|
import "./input-error-D1JIzedA.js";
|
|
import "./loading-button-CCIxhJrY.js";
|
|
import "./label-0rIIfpX0.js";
|
|
import "@radix-ui/react-label";
|
|
import "./select-BYx0MCUK.js";
|
|
import "@radix-ui/react-select";
|
|
import "./textarea-Z0d4V-ti.js";
|
|
import "@inertiajs/react";
|
|
const AssignmentDialog = ({ assignment }) => {
|
|
const [open, setOpen] = useState(false);
|
|
const hasSubmission = assignment.submissions && assignment.submissions.length > 0;
|
|
const isDeadlinePassed = (deadline) => {
|
|
if (!deadline) return false;
|
|
return /* @__PURE__ */ new Date() > new Date(deadline);
|
|
};
|
|
const deadlinePassed = isDeadlinePassed(assignment.deadline);
|
|
return /* @__PURE__ */ jsxs(Dialog, { open, onOpenChange: setOpen, children: [
|
|
/* @__PURE__ */ jsx(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", className: "h-8 gap-2", children: hasSubmission ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
/* @__PURE__ */ jsx(CheckCircle, { className: "h-4 w-4" }),
|
|
/* @__PURE__ */ jsx("span", { children: "Check" })
|
|
] }) : /* @__PURE__ */ jsx("span", { children: "Submit" }) }) }),
|
|
/* @__PURE__ */ jsx(DialogContent, { className: "max-h-[90vh] max-w-4xl p-0", children: /* @__PURE__ */ jsxs(Tabs, { defaultValue: "details", className: "w-full", children: [
|
|
/* @__PURE__ */ jsx(DialogHeader, { className: "p-6 pb-0", children: /* @__PURE__ */ jsxs(TabsList, { className: "grid h-11 w-full grid-cols-2", children: [
|
|
/* @__PURE__ */ jsx(TabsTrigger, { value: "details", className: "h-9", children: "Assignment Details" }),
|
|
/* @__PURE__ */ jsx(TabsTrigger, { value: deadlinePassed ? "" : "submit", className: "h-9", disabled: deadlinePassed, children: "Assignment Submission" })
|
|
] }) }),
|
|
/* @__PURE__ */ jsxs("div", { className: "max-h-[calc(90vh-92px)] overflow-y-auto p-6", children: [
|
|
/* @__PURE__ */ jsx(TabsContent, { value: "details", className: "m-0", children: /* @__PURE__ */ jsx(AssignmentDetails, { assignment, deadlinePassed }) }),
|
|
!deadlinePassed && /* @__PURE__ */ jsx(TabsContent, { value: "submit", className: "m-0", children: /* @__PURE__ */ jsx(AssignmentSubmission, { assignment, setDialogOpen: setOpen }) })
|
|
] })
|
|
] }) })
|
|
] });
|
|
};
|
|
export {
|
|
AssignmentDialog as default
|
|
};
|