mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-27 14:20:58 +00:00
2 lines
10 KiB
JavaScript
2 lines
10 KiB
JavaScript
import{l as U,w as B,r as y,u as I,j as e,aK as z,b7 as $,B as x,aL as O,aM as V,aN as H,ba as K,t as w,az as Q,n as T,F as G,U as _,bF as J,bG as W,bH as X,bI as Y,bj as Z}from"./index-7T7TTikv.js";import{u as ee}from"./useQueries-DzmDq0fy.js";import{a as ae}from"./organizationsService-DIFVjoLn.js";import{g as se}from"./userService-CFvyXTYe.js";import{C as te,a as re,b as ie,d as ne}from"./card-_ldW-koX.js";import{S as le}from"./scroll-area-7Hggnc7C.js";import{S as c}from"./skeleton-BCpLdfqO.js";import{A as q,a as E}from"./alert-CCWXLU2U.js";import{S as oe,a as ce,b as de,c as me,d as u}from"./select--i8koVXg.js";import{T as ue}from"./textarea-Bq1wvmIA.js";import{a as xe}from"./useOrganizationReport-Btcu9b-4.js";import{R as ge}from"./refresh-cw-B7fipPS4.js";import{B as he}from"./building-BTGMe3qn.js";import{M as pe}from"./mail-q8lHlEPt.js";import{P as je}from"./phone-w_VmAt3l.js";import"./Skeleton-BOu0YqbY.js";const be=async n=>U.get(`/user-documents/list-with-presigned/${n}`,{headers:B()}),ye=({documentId:n,onActionSubmit:g})=>{const[a,h]=y.useState(!1),[p,f]=y.useState("approved"),[j,l]=y.useState(""),{t}=I(),v=()=>{g(n,p,j);const r=b=>{switch(b){case"approved":return t("actionModal.actions.approve");case"adjusted":return t("actionModal.actions.adjustment");case"rejected":return t("actionModal.actions.reject");case"pending":return t("actionModal.actions.pending");case"submitted":return t("actionModal.actions.submitted");default:return b}};w.success(t("actionModal.toast.success",{status:r(p)})),h(!1),l("")};return e.jsxs(z,{open:a,onOpenChange:h,children:[e.jsx($,{asChild:!0,children:e.jsx(x,{size:"sm",variant:"outline",children:t("actionModal.trigger")})}),e.jsxs(O,{className:"sm:max-w-md",children:[e.jsx(V,{children:e.jsx(H,{children:t("actionModal.title")})}),e.jsxs("div",{className:"space-y-4 mt-2",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium mb-2",children:t("actionModal.labels.selectAction")}),e.jsxs(oe,{value:p,onValueChange:r=>f(r),children:[e.jsx(ce,{className:"w-full",children:e.jsx(de,{placeholder:t("actionModal.actions.selectPlaceholder")})}),e.jsxs(me,{children:[e.jsx(u,{value:"approved",children:t("actionModal.actions.approve")}),e.jsx(u,{value:"adjusted",children:t("actionModal.actions.adjustment")}),e.jsx(u,{value:"rejected",children:t("actionModal.actions.reject")}),e.jsx(u,{value:"pending",children:t("actionModal.actions.pending")}),e.jsx(u,{value:"submitted",children:t("actionModal.actions.submitted")})]})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium mb-2",children:t("actionModal.labels.remark")}),e.jsx(ue,{value:j,onChange:r=>l(r.target.value),placeholder:t("actionModal.labels.remarkPlaceholder"),className:"w-full"})]})]}),e.jsxs(K,{className:"mt-4 flex justify-end gap-2",children:[e.jsx(x,{variant:"outline",onClick:()=>h(!1),children:t("actionModal.buttons.cancel")}),e.jsx(x,{onClick:v,children:t("actionModal.buttons.submit")})]})]})]})},fe=({userId:n})=>{const g=Q(),{t:a}=I(),[h,p]=y.useState("APPROVED"),f=(s,i=25)=>{if(s.length<=i)return s;const[o,m]=s.split("@");return o.length>i-10?`${o.substring(0,i-10)}...@${m}`:s},{mutate:j}=xe(),{data:l,isLoading:t,isError:v}=T({queryKey:["user-info",n],queryFn:async()=>(await se(n)).data}),{data:r,isLoading:b,isError:R,refetch:A,isRefetching:k}=T({queryKey:["external-letters",n],queryFn:async()=>{const s=await be(n);return{items:s.data.items,counts:s.data.counts}}}),N=ee({queries:(r==null?void 0:r.items.map(s=>({queryKey:["document-requirements",s.documentId],queryFn:async()=>(await ae(s.documentId)).data,enabled:!!r&&r.items.length>0})))??[]}),P=async(s,i,o)=>{try{await j({id:s,data:{status:i,remark:o}}),w.success(a("viewDocument.actions.success",{action:i}))}catch(m){w.error(a("viewDocument.actions.error",{error:m.message||a("viewDocument.loading.failedToLoad")}))}};return e.jsxs(te,{className:"w-full max-w-4xl mx-auto mt-8 shadow-lg border-gray-200 dark:border-gray-700",children:[e.jsx(re,{className:"border-b border-gray-200 dark:border-gray-700",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs(ie,{className:"text-2xl font-bold flex items-center gap-2",children:[e.jsx(G,{className:"w-6 h-6 text-primary-600"}),a("viewDocument.title")]}),e.jsxs(x,{onClick:()=>A(),variant:"default",className:"bg-primary-600 hover:bg-primary-700 text-white",disabled:k,children:[e.jsx(ge,{className:`mr-2 h-4 w-4 ${k?"animate-spin":""}`}),a("viewDocument.refreshButton")]})]})}),e.jsxs(ne,{className:"p-6",children:[t?e.jsxs("div",{className:"mb-6 space-y-4",children:[e.jsx(c,{className:"h-6 w-48"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[e.jsx(c,{className:"h-16 w-full rounded-lg"}),e.jsx(c,{className:"h-16 w-full rounded-lg"}),e.jsx(c,{className:"h-16 w-full rounded-lg"})]})]}):v?e.jsx(q,{variant:"destructive",className:"mb-6",children:e.jsx(E,{children:a("viewDocument.failedToLoadUserInfo")})}):l?e.jsxs("div",{className:"mb-6 p-4 bg-gray-50 dark:bg-gray-800/50 rounded-lg border border-gray-200 dark:border-gray-700",children:[e.jsxs("h3",{className:"text-lg font-semibold text-gray-900 dark:text-gray-100 mb-4 flex items-center gap-2",children:[e.jsx(_,{className:"w-5 h-5 text-primary-600"}),a("viewDocument.userInformation")]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3 p-3 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700",children:[e.jsx(he,{className:"w-5 h-5 text-blue-600"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-500 dark:text-gray-400",children:a("viewDocument.organizationName")}),e.jsx("p",{className:"text-base font-semibold text-gray-900 dark:text-gray-100 truncate",children:g(l.name)})]})]}),e.jsxs("div",{className:"flex items-center gap-3 p-3 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700",children:[e.jsx(pe,{className:"w-5 h-5 text-primary-600"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-500 dark:text-gray-400",children:a("viewDocument.email")}),e.jsx(J,{children:e.jsxs(W,{children:[e.jsx(X,{asChild:!0,children:e.jsx("p",{className:"text-base font-semibold text-gray-900 dark:text-gray-100 truncate cursor-help",children:f(l.email)})}),e.jsx(Y,{children:e.jsx("p",{className:"max-w-xs break-all",children:l.email})})]})})]})]}),e.jsxs("div",{className:"flex items-center gap-3 p-3 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700",children:[e.jsx(je,{className:"w-5 h-5 text-purple-600"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-500 dark:text-gray-400",children:a("viewDocument.phoneNumber")}),e.jsx("p",{className:"text-base font-semibold text-gray-900 dark:text-gray-100 truncate",children:l.phoneNumber})]})]})]})]}):null,b?e.jsx("div",{className:"space-y-4",children:[...Array(3)].map((s,i)=>e.jsx(c,{className:"h-24 w-full rounded-lg"},i))}):R?e.jsx(q,{variant:"destructive",children:e.jsx(E,{children:a("viewDocument.loading.failedToLoad")})}):e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"mb-6 text-lg font-medium text-gray-700 dark:text-gray-300",children:[a("viewDocument.totalDocuments")," ",e.jsx("span",{className:"font-semibold text-primary-600",children:(r==null?void 0:r.counts)??0})]}),e.jsx(le,{className:"h-[500px] border border-gray-200 dark:border-gray-700 rounded-lg",children:e.jsx("ul",{className:"space-y-4 p-2",children:r==null?void 0:r.items.map((s,i)=>{var M,S,C;const o=(M=N[i])==null?void 0:M.data,m=(S=N[i])==null?void 0:S.isLoading,F=(C=N[i])==null?void 0:C.isError,D=o?[o]:[],L=d=>{switch(d){case"approved":return a("viewDocument.document.status.approved");case"rejected":return a("viewDocument.document.status.rejected");case"pending":default:return a("viewDocument.document.status.pending")}};return e.jsxs("li",{className:"flex flex-col p-4 border border-gray-200 dark:border-gray-700 rounded-lg hover:bg-gray-50/50 dark:hover:bg-gray-800/60 transition-colors shadow-sm",children:[e.jsxs("div",{className:"flex justify-between items-center mb-3",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"font-semibold text-gray-900 dark:text-gray-100",children:s.fileInfo.originalname}),e.jsx("span",{className:`inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ${s.status==="approved"?"bg-primary-100 text-primary-800":s.status==="rejected"?"bg-red-100 text-red-800":"bg-yellow-100 text-yellow-800"}`,children:L(s.status)})]}),e.jsx(x,{size:"sm",className:"bg-primary-600 hover:bg-primary-700 text-white",asChild:!0,children:e.jsx("a",{href:s.presigned,target:"_blank",rel:"noopener noreferrer",children:a("viewDocument.document.viewDocument")})}),s.status!=="approved"&&e.jsx(ye,{documentId:s.id,onActionSubmit:P})]}),e.jsxs("div",{className:"mt-2 border-t border-gray-200 dark:border-gray-700 pt-3",children:[e.jsx("h4",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:a("viewDocument.document.requirements")}),m?e.jsxs("div",{className:"space-y-2",children:[e.jsx(c,{className:"h-4 w-full"}),e.jsx(c,{className:"h-4 w-3/4"})]}):F?e.jsx("p",{className:"text-sm text-red-500 dark:text-red-400",children:a("viewDocument.loading.failedToLoadRequirements")}):D.length?e.jsx("ul",{className:"space-y-2 text-sm",children:D.map(d=>e.jsxs("li",{className:"flex items-start",children:[e.jsx("span",{className:`inline-block w-2 h-2 rounded-full mt-1.5 mr-2 ${d.isOptional?"bg-blue-400":"bg-primary-400"}`}),e.jsxs("div",{children:[e.jsx("span",{className:"font-medium text-gray-800 dark:text-gray-200",children:g(d.title)}),e.jsx("span",{className:"text-gray-500 dark:text-gray-400 ml-1",children:d.isOptional?a("viewDocument.document.optional"):a("viewDocument.document.required")})]})]},d.id))}):e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 italic",children:a("viewDocument.document.noRequirements")})]})]},s.id)})})})]})]})]})},Le=()=>{const{id:n}=Z();return n?e.jsx(fe,{userId:n}):e.jsx("div",{className:"text-gray-900 dark:text-gray-100",children:"Error: Document ID is missing"})};export{Le as default};
|