import{b as j,j as e,ca as u}from"./vendor-BKmmeuxg.js";import{I as c}from"./input-error-LaPr_4wd.js";import{L as f}from"./loading-button-BnTVAMJ7.js";import{B as b}from"./button-BpNwv2aE.js";import{f as k}from"./dialog-B2gN9MvT.js";import{I as v}from"./input-DM0goJrn.js";import{L as l}from"./label-HmIcv5Yx.js";import{S as N,a as _,b as S,c as C,d as i}from"./select-CD9o3HN1.js";import{T as y}from"./textarea-CyndvowL.js";import"./utils-DxSsnXxD.js";import"./index-WW_1X1qx.js";const R=({isGraded:m,isLate:o,totalMarks:t,submission:a})=>{const{data:s,setData:d,post:p,put:g,processing:x,errors:n}=j({marks_obtained:a?a.marks_obtained:"",instructor_feedback:a?a.instructor_feedback:"",status:a?a.status:"pending"}),h=r=>{r.preventDefault(),a?g(route("assignment.submission.update",a.id)):p(route("assignment.submission.store"))};return e.jsxs("form",{onSubmit:h,className:"space-y-4 rounded-lg border p-4",children:[e.jsxs("h3",{className:"flex items-center gap-2 font-semibold",children:[e.jsx(u,{className:"text-primary h-5 w-5"}),m?"Update Grade":"Grade Submission"]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(l,{htmlFor:"marks",children:["Marks Obtained *",e.jsxs("span",{className:"text-muted-foreground ml-1 text-xs",children:["(Max: ",t,o&&e.jsx("span",{className:"text-destructive",children:" - Late Submission"}),")"]})]}),e.jsx(v,{id:"marks",type:"number",min:"0",max:t,step:"0.01",placeholder:"Enter marks",value:s.marks_obtained,onChange:r=>d("marks_obtained",r.target.value),required:!0}),o&&s.marks_obtained&&parseFloat(s.marks_obtained)>t&&e.jsxs("p",{className:"text-destructive text-xs",children:["Cannot exceed late submission maximum (",t,")"]}),e.jsx(c,{message:n.marks_obtained})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(l,{htmlFor:"status",children:"Status"}),e.jsxs(N,{value:s.status,onValueChange:r=>d("status",r),children:[e.jsx(_,{children:e.jsx(S,{})}),e.jsxs(C,{children:[e.jsx(i,{value:"pending",children:"Pending"}),e.jsx(i,{value:"graded",children:"Graded"}),e.jsx(i,{value:"resubmitted",children:"Resubmitted"})]})]}),e.jsx(c,{message:n.status})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(l,{htmlFor:"feedback",children:"Instructor Feedback (Optional)"}),e.jsx(y,{id:"feedback",placeholder:"Provide feedback to the student...",value:s.instructor_feedback||"",onChange:r=>d("instructor_feedback",r.target.value),rows:4}),e.jsx(c,{message:n.instructor_feedback})]}),s.status==="graded"&&(a==null?void 0:a.grader)&&e.jsxs("div",{className:"rounded-lg border border-green-200 bg-green-50 p-3 dark:border-green-800 dark:bg-green-950",children:[e.jsxs("p",{className:"text-sm",children:[e.jsx("span",{className:"font-medium",children:"Previously graded:"})," ",a.marks_obtained," / ",t]}),a.instructor_feedback&&e.jsxs("p",{className:"text-muted-foreground mt-1 text-sm",children:["Previous feedback: ",a.instructor_feedback]})]}),e.jsxs("div",{className:"flex justify-end gap-3 pt-4",children:[e.jsx(k,{asChild:!0,children:e.jsx(b,{variant:"outline",children:"Cancel"})}),e.jsx(f,{type:"submit",className:"gap-2",loading:x,disabled:x||!s.marks_obtained,children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(u,{className:"h-4 w-4"}),m?"Update Grade":"Submit Grade"]})})]})]})};export{R as default};