PageSourceSearch

https://drive4usyd.manus.space/assets/SMSReview-Cuf_xA7D.js

js drive4usyd.manus.space collected 2026-10-03 05:02:44 UTC 15,281 bytes, 1 lines download raw bytes

1import{t as S,r as M,j as e,aq as T,B as g,b as w,c as p,X as B,Y as q,Z as L,_ as P,aj as z,J as x,$ as J}from"./index-U8D282DB.js";import{B as K}from"./badge-BmpMbrZ9.js";import{I as j}from"./input-DFtjl8GZ.js";import{L as n}from"./label-BdqAIGhN.js";import{T as R}from"./textarea-DE9S6YvS.js";import{S as A,a as I,b as _,c as F,d as O}from"./select-DGSESBU1.js";import{T as Q,a as X,b as U,c as l,d as Z,e as d}from"./table-YbOamqaD.js";import{P as G}from"./plus-DHOMwzdP.js";import{C as ee}from"./calendar-Ctb75UO1.js";import{P as ae}from"./pencil-nUwvNNUo.js";import"./useComposition-DGvQVl2f.js";import"./index-BdQq_4o_.js";import"./index-Dyyrzgm7.js";import"./check-fK4IDB-m.js";import"./chevron-up-B1n65gyY.js";const se=[{value:"annual",label:"Annual SMS Review"},{value:"scheduled",label:"Scheduled Review"},{value:"incident_triggered",label:"Post-Incident Review"},{value:"regulatory_change",label:"Regulatory Change Review"},{value:"ad_hoc",label:"Ad Hoc Review"}],te=[{value:"draft",label:"Draft"},{value:"completed",label:"Completed"},{value:"action_required",label:"Action Required"}],ie={draft:"bg-gray-100 text-gray-800 border-gray-300",completed:"bg-green-100 text-green-800 border-green-300",action_required:"bg-amber-100 text-amber-800 border-amber-300"};function N(c){return c?new Date(c).toLocaleDateString("en-AU",{day:"2-digit",month:"short",year:"numeric"}):"—"}function E(c){return c.replace(/_/g," ").replace(/\b\w/g,h=>h.toUpperCase())}function ue(){const{data:c,isLoading:h}=S.smsReview.list.useQuery(),f=S.smsReview.create.useMutation(),y=S.smsReview.update.useMutation(),D=S.useUtils(),[k,o]=M.useState(!1),[u,m]=M.useState(null),[a,i]=M.useState({reviewType:"annual",reviewDate:Date.now(),reviewedBy:"",areasReviewed:"",findings:"",changesRequired:"",changesMade:"",nextReviewDate:Date.now()+365*864e5,status:"draft"}),H=()=>{i({reviewType:"annual",reviewDate:Date.now(),reviewedBy:"",areasReviewed:"",findings:"",changesRequired:"",changesMade:"",nextReviewDate:Date.now()+365*864e5,status:"draft"}),o(!0)},V=s=>{i({reviewType:s.reviewType,reviewDate:s.reviewDate,reviewedBy:s.reviewedBy,areasReviewed:s.areasReviewed||"",findings:s.findings||"",changesRequired:s.changesRequired||"",changesMade:s.changesMade||"",nextReviewDate:s.nextReviewDate||Date.now()+365*864e5,status:s.status||"draft"}),m(s)},W=async()=>{if(!a.reviewedBy||!a.findings||!a.areasReviewed){x.error("Please fill in required fields");return}try{await f.mutateAsync({reviewDate:a.reviewDate,reviewType:a.reviewType,reviewedBy:a.reviewedBy,areasReviewed:a.areasReviewed,findings:a.findings,changesRequired:a.changesRequired||null,changesMade:a.changesMade||null,nextReviewDate:a.nextReviewDate,status:a.status}),D.smsReview.list.invalidate(),x.success("Review record created"),o(!1)}catch(s){x.error(s.message||"Failed to create")}},Y=async()=>{if(u)try{await y.mutateAsync({id:u.id,findings:a.findings||void 0,changesRequired:a.changesRequired||null,changesMade:a.changesMade||null,status:a.status,nextReviewDate:a.nextReviewDate}),D.smsReview.list.invalidate(),x.success("Review updated"),m(null)}catch(s){x.error(s.message||"Failed to update")}},$=c?.filter(s=>s.status==="completed").length||0,b=c?.filter(s=>s.status!=="completed").sort((s,v)=>(s.reviewDate||0)-(v.reviewDate||0))[0],C=({onSave:s,saving:v,isEdit:r})=>e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:123",className:"space-y-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:124",className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:125",className:"space-y-1.5",children:[e.jsx(n,{"data-loc":"client/src/pages/admin/SMSReview.tsx:126",className:"text-xs",children:"Review Type *"}),e.jsxs(A,{"data-loc":"client/src/pages/admin/SMSReview.tsx:127",value:a.reviewType,onValueChange:t=>i({...a,reviewType:t}),disabled:r,children:[e.jsx(I,{"data-loc":"client/src/pages/admin/SMSReview.tsx:128",className:"h-8 text-sm",children:e.jsx(_,{"data-loc":"client/src/pages/admin/SMSReview.tsx:128"})}),e.jsx(F,{"data-loc":"client/src/pages/admin/SMSReview.tsx:129",children:se.map(t=>e.jsx(O,{"data-loc":"client/src/pages/admin/SMSReview.tsx:130",value:t.value,children:t.label},t.value))})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:134",className:"space-y-1.5",children:[e.jsx(n,{"data-loc":"client/src/pages/admin/SMSReview.tsx:135",className:"text-xs",children:"Review Date *"}),e.jsx(j,{"data-loc":"client/src/pages/admin/SMSReview.tsx:136",type:"date",value:a.reviewDate?new Date(a.reviewDate).toISOString().split("T")[0]:"",onCh
1ange:t=>i({...a,reviewDate:t.target.value?new Date(t.target.value+"T00:00:00").getTime():Date.now()}),className:"h-8 text-sm",disabled:r})]})]}),!r&&e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:142",className:"space-y-1.5",children:[e.jsx(n,{"data-loc":"client/src/pages/admin/SMSReview.tsx:143",className:"text-xs",children:"Reviewed By *"}),e.jsx(j,{"data-loc":"client/src/pages/admin/SMSReview.tsx:144",value:a.reviewedBy,onChange:t=>i({...a,reviewedBy:t.target.value}),placeholder:"Name of reviewer",className:"h-8 text-sm"})]}),!r&&e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:149",className:"space-y-1.5",children:[e.jsx(n,{"data-loc":"client/src/pages/admin/SMSReview.tsx:150",className:"text-xs",children:"Areas Reviewed *"}),e.jsx(R,{"data-loc":"client/src/pages/admin/SMSReview.tsx:151",value:a.areasReviewed,onChange:t=>i({...a,areasReviewed:t.target.value}),placeholder:"e.g. Fatigue management, incident reporting, vehicle maintenance procedures",rows:2,className:"text-sm"})]}),e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:155",className:"space-y-1.5",children:[e.jsx(n,{"data-loc":"client/src/pages/admin/SMSReview.tsx:156",className:"text-xs",children:"Findings *"}),e.jsx(R,{"data-loc":"client/src/pages/admin/SMSReview.tsx:157",value:a.findings,onChange:t=>i({...a,findings:t.target.value}),placeholder:"Key findings from the review",rows:3,className:"text-sm"})]}),e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:160",className:"space-y-1.5",children:[e.jsx(n,{"data-loc":"client/src/pages/admin/SMSReview.tsx:161",className:"text-xs",children:"Changes Required"}),e.jsx(R,{"data-loc":"client/src/pages/admin/SMSReview.tsx:162",value:a.changesRequired,onChange:t=>i({...a,changesRequired:t.target.value}),placeholder:"What changes are needed based on findings",rows:2,className:"text-sm"})]}),e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:165",className:"space-y-1.5",children:[e.jsx(n,{"data-loc":"client/src/pages/admin/SMSReview.tsx:166",className:"text-xs",children:"Changes Made"}),e.jsx(R,{"data-loc":"client/src/pages/admin/SMSReview.tsx:167",value:a.changesMade,onChange:t=>i({...a,changesMade:t.target.value}),placeholder:"Changes already implemented",rows:2,className:"text-sm"})]}),e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:170",className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:171",className:"space-y-1.5",children:[e.jsx(n,{"data-loc":"client/src/pages/admin/SMSReview.tsx:172",className:"text-xs",children:"Next Review Date"}),e.jsx(j,{"data-loc":"client/src/pages/admin/SMSReview.tsx:173",type:"date",value:a.nextReviewDate?new Date(a.nextReviewDate).toISOString().split("T")[0]:"",onChange:t=>i({...a,nextReviewDate:t.target.value?new Date(t.target.value+"T00:00:00").getTime():Date.now()}),className:"h-8 text-sm"})]}),e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:177",className:"space-y-1.5",children:[e.jsx(n,{"data-loc":"client/src/pages/admin/SMSReview.tsx:178",className:"text-xs",children:"Status"}),e.jsxs(A,{"data-loc":"client/src/pages/admin/SMSReview.tsx:179",value:a.status,onValueChange:t=>i({...a,status:t}),children:[e.jsx(I,{"data-loc":"client/src/pages/admin/SMSReview.tsx:180",className:"h-8 text-sm",children:e.jsx(_,{"data-loc":"client/src/pages/admin/SMSReview.tsx:180"})}),e.jsx(F,{"data-loc":"client/src/pages/admin/SMSReview.tsx:181",children:te.map(t=>e.jsx(O,{"data-loc":"client/src/pages/admin/SMSReview.tsx:182",value:t.value,children:t.label},t.value))})]})]})]}),e.jsxs(J,{"data-loc":"client/src/pages/admin/SMSReview.tsx:187",children:[e.jsx(g,{"data-loc":"client/src/pages/admin/SMSReview.tsx:188",variant:"outline",onClick:()=>{o(!1),m(null)},children:"Cancel"}),e.jsx(g,{"data-loc":"client/src/pages/admin/SMSReview.tsx:189",onClick:s,disabled:v,children:v?"Saving...":r?"Update":"Create"})]})]});return e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:195",className:"space-y-6",children:[e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:196",className:"flex items-center justify-between",children:[e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:197",children:[e.jsxs("h1",{"data-loc":"client/src/pages/admin/SMSReview.tsx:198",className:"text-2xl font-bold flex items-center gap-2",children:[e.jsx(T,{"data-loc":"client/src/pages/admin/SMSReview.tsx:199",className:"h-6 w-6 text-indigo-500"})," SMS Review Log"]}),e.jsx("p",{"data-loc":"client/src/pages/admin/SMSReview.tsx:201",className:"text-sm text-muted-foreground mt-1",children:"Safety Management System reviews — required annually under NSW P2P legislation"})]}),e.jsxs(g,{"data-loc":"client/src/pages/admin/SMSReview.tsx:205",onClick:H,className:"gap-1.5",children:[e.jsx(G,{"data-loc":"client/src/pages/admin/SMSReview.tsx:205",className:"h-4 w-4"})," Log Review"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:208",className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[e.jsx(w,{"data-loc":"client/src/pages/admin/SMSReview.tsx:209",children:e.jsxs(p,{"data-loc":"client/src/pages/admin/SMSReview.tsx:210",className:"pt-4 pb-3",children:[e.jsx("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:211",className:"text-2xl font-bold text-indigo-600",children:c?.length||0}),e.jsx("p",{"data-loc":"client/src/pages/admin/SMSReview.tsx:212",className:"text-xs text-muted-foreground",children:"Total Reviews"})]})}),e.jsx(w,{"data-loc":"client/src/pages/admin/SMSReview.tsx:215",children:e.jsxs(p,{"data-loc":"client/src/pages/admin/SMSReview.tsx:216",className:"pt-4 pb-3",children:[e.jsx("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:217",className:"text-2xl font-bold text-green-600",children:$}),e.jsx("p",{"data-loc":"client/src/pages/admin/SMSReview.tsx:218",className:"text-xs text-muted-foreground",children:"Completed"})]})}),e.jsx(w,{"data-loc":"client/src/pages/admin/SMSReview.tsx:221",children:e.jsxs(p,{"data-loc":"client/src/pages/admin/SMSReview.tsx:222",className:"pt-4 pb-3 flex items-center gap-2",children:[e.jsx(ee,{"data-loc":"client/src/pages/admin/SMSReview.tsx:223",className:"h-5 w-5 text-muted-foreground"}),e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:224",children:[e.jsx("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:225",className:"text-sm font-medium",children:b?N(b.reviewDate):"Not scheduled"}),e.jsx("p",{"data-loc":"client/src/pages/admin/SMSReview.tsx:226",className:"text-xs text-muted-foreground",children:"Next Review Due"})]})]})})]}),e.jsx(w,{"data-loc":"client/src/pages/admin/SMSReview.tsx:232",children:e.jsx(p,{"data-loc":"client/src/pages/admin/SMSReview.tsx:233",className:"p-0",children:h?e.jsx("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:235",className:"text-center py-8 text-muted-foreground",children:"Loading..."}):c?.length?e.jsxs(Q,{"data-loc":"client/src/pages/admin/SMSReview.tsx:243",children:[e.jsx(X,{"data-loc":"client/src/pages/admin/SMSReview.tsx:244",children:e.jsxs(U,{"data-loc":"client/src/pages/admin/SMSReview.tsx:245",children:[e.jsx(l,{"data-loc":"client/src/pages/admin/SMSReview.tsx:246",children:"Date"}),e.jsx(l,{"data-loc":"client/src/pages/admin/SMSReview.tsx:247",children:"Type"}),e.jsx(l,{"data-loc":"client/src/pages/admin/SMSReview.tsx:248",children:"Reviewed By"}),e.jsx(l,{"data-loc":"client/src/pages/admin/SMSReview.tsx:249",children:"Areas"}),e.jsx(l,{"data-loc":"client/src/pages/admin/SMSReview.tsx:250",children:"Next Review"}),e.jsx(l,{"data-loc":"client/src/pages/admin/SMSReview.tsx:251",children:"Status"}),e.jsx(l,{"data-loc":"client/src/pages/admin/SMSReview.tsx:252",className:"w-[80px]"})]})}),e.jsx(Z,{"data-loc":"client/src/pages/admin/SMSReview.tsx:255",children:c.map(s=>e.jsxs(U,{"data-loc":"client/src/pages/admin/SMSReview.tsx:257",children:[e.jsx(d,{"data-loc":"client/src/pages/admin/SMSReview.tsx:258",className:"text-xs whitespace-nowrap",children:N(s.reviewDate)}),e.jsx(d,{"data-loc":"client/src/pages/admin/SMSReview.tsx:259",className:"text-xs",children:E(s.reviewType)}),e.jsx(d,{"data-loc":"client/src/pages/admin/SMSReview.tsx:260",className:"text-xs",children:s.reviewedBy}),e.jsx(d,{"data-loc":"client/src/pages/admin/SMSReview.tsx:261",className:"text-xs max-w-[200px] truncate",children:s.areasReviewed}),e.jsx(d,{"data-loc":"client/src/pages/admin/SMSReview.tsx:262",className:"text-xs whitespace-nowrap",children:N(s.nextReviewDate)}),e.jsx(d,{"data-loc":"client/src/pages/admin/SMSReview.tsx:263",children:e.jsx(K,{"data-loc":"client/src/pages/admin/SMSReview.tsx:264",variant:"outline",className:`text-xs ${ie[s.status]||""}`,children:E(s.status)})}),e.jsx(d,{"data-loc":"client/src/pages/admin/SMSReview.tsx:268",children:e.jsx(g,{"data-loc":"client/src/pages/admin/SMSReview.tsx:269",variant:"ghost",size:"sm",onClick:()=>V(s),children:e.jsx(ae,{"data-loc":"client/src/pages/admin/SMSReview.tsx:269",className:"h-4 w-4"})})})]},s.id))})]}):e.jsxs("div",{"data-loc":"client/src/pages/admin/SMSReview.tsx:237",className:"text-center py-12 text-muted-foreground",children:[e.jsx(T,{"data-loc":"client/src/pages/admin/SMSReview.tsx:238",className:"h-10 w-10 mx-auto mb-3 opacity-30"}),e.jsx("p",{"data-loc":"client/src/pages/admin/SMSReview.tsx:239",className:"font-medium",children:"No reviews recorded yet"}),e.jsx("p",{"data-loc":"client/src/pages/admin/SMSReview.tsx:240",className:"text-xs mt-1",children:"Log your first SMS review to maintain compliance records"})]})})}),e.jsx(B,{"data-loc":"client/src/pages/admin/SMSReview.tsx:279",open:k,onOpenChange:o,children:e.jsxs(q,{"data-loc":"client/src/pages/admin/SMSReview.tsx:280",className:"max-w-xl max-h-[85vh] overflow-y-auto",children:[e.jsxs(L,{"data-loc":"client/src/pages/admin/SMSReview.tsx:281",children:[e.jsx(P,{"data-loc":"client/src/pages/admin/SMSReview.tsx:282",children:"Log SMS Review"}),e.jsx(z,{"data-loc":"client/src/pages/admin/SMSReview.tsx:283",children:"Record a Safety Management System review"})]}),e.jsx(C,{"data-loc":"client/src/pages/admin/SMSReview.tsx:285",onSave:W,saving:f.isPending})]})}),e.jsx(B,{"data-loc":"client/src/pages/admin/SMSReview.tsx:289",open:!!u,onOpenChange:()=>m(null),children:e.jsxs(q,{"data-loc":"client/src/pages/admin/SMSReview.tsx:290",className:"max-w-xl max-h-[85vh] overflow-y-auto",children:[e.jsx(L,{"data-loc":"client/src/pages/admin/SMSReview.tsx:291",children:e.jsx(P,{"data-loc":"client/src/pages/admin/SMSReview.tsx:292",children:"Edit Review"})}),e.jsx(C,{"data-loc":"client/src/pages/admin/SMSReview.tsx:294",onSave:Y,saving:y.isPending,isEdit:!0})]})})]})}export{ue as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.