ArchiveDetailPage-BYgLfUI5.js 17 KB

1
  1. import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{T as t,a as n,k as r,t as i,w as a}from"./client-Bw3urp1w.js";import{d as o,f as ee,l as te,n as s}from"./chunk-62JRHF6Z-BW23DMlx.js";import{n as c}from"./QueryClientProvider-C3eWKLmF.js";import{t as l}from"./useQuery-BTfjV-1Z.js";import{t as ne}from"./useMutation-CGk77Rd2.js";import{t as re}from"./arrow-left-DtsJCl88.js";import{t as u}from"./box-DWj8L42u.js";import{t as ie}from"./camera-D0x-bNlw.js";import{t as d}from"./chevron-right-CvxYuARt.js";import{n as ae}from"./ToastContext-lCIPyrWa.js";import{l as f,t as p}from"./PrintModal-BObYTfX7.js";import{t as m}from"./clock-DL5tMOID.js";import{t as h}from"./coins-BjtVCnlC.js";import{t as g}from"./download-C4eI6RUv.js";import{t as oe}from"./film-G4l4BuOq.js";import{a as se,i as _,n as v,s as y,t as b}from"./ConfirmOutcomeDialog-DJy_CUup.js";import{t as ce}from"./layers-ejmYoqVs.js";import{t as x}from"./loader-circle-C0WA8zwT.js";import{t as S}from"./package-B5d6ATbP.js";import{t as C}from"./pencil-1QfU1Xrb.js";import{t as w}from"./printer-BZJt3GTl.js";import{t as T}from"./TimelapseViewer-CV7RJDuR.js";import{t as E}from"./sticky-note-Cg2zIXR8.js";import{t as D}from"./trash-2-ByYJ3UBe.js";import{t as O}from"./zap-DTKTes2g.js";import{n as k}from"./AuthContext-DQrtirY_.js";import{n as A,t as j}from"./Card-CjvOwXIN.js";import{t as M}from"./Button-B9_qjR81.js";import{t as N}from"./ConfirmModal-fFY-Pxek.js";import{a as le,o as P}from"./date-G9KUauqz.js";import{n as ue}from"./currency-LmqFrzn3.js";import{n as F}from"./useUiSettings-UBmC8PK8.js";import{t as de}from"./PhotoGalleryModal-7bggvmMY.js";var I=e(r(),1),L=a(),R={completed:`bg-bambu-green/20 text-bambu-green`,failed:`bg-red-500/20 text-red-700 dark:text-red-400`,aborted:`bg-red-500/20 text-red-700 dark:text-red-400`,printing:`bg-blue-500/20 text-blue-700 dark:text-blue-400`},fe=new Set([`completed`,`failed`,`aborted`,`cancelled`,`stopped`]);function z(){let{t:e}=t(),{id:r}=o(),a=Number(r),[f]=ee(),h=Number(f.get(`run`))||null,_=te(),y=c(),{showToast:O}=ae(),{hasPermission:R,canModify:z}=k(),{data:V}=F(),H=V?.time_format||`system`,me=ue(V?.currency||`USD`),[he,ge]=(0,I.useState)(!1),[_e,ve]=(0,I.useState)(!1),[ye,U]=(0,I.useState)(!1),[be,W]=(0,I.useState)(!1),[xe,Se]=(0,I.useState)(null),[G,K]=(0,I.useState)(null),q=l({queryKey:[`archive`,a],queryFn:()=>n.getArchive(a),enabled:Number.isFinite(a),retry:!1}),J=q.data,{data:Ce,isLoading:we}=l({queryKey:[`archive-runs`,a],queryFn:()=>n.getArchiveRuns(a),enabled:J!=null&&J.id===a}),{data:Te}=l({queryKey:[`archive-plates`,a],queryFn:()=>n.getArchivePlates(a),enabled:J!=null&&J.id===a,staleTime:300*1e3}),Y=l({queryKey:[`archive`,a,`delete-impact`],queryFn:()=>n.getArchiveDeleteImpact(a),enabled:ye,staleTime:0});(0,I.useEffect)(()=>{J&&J.id!==a&&_(`/archives/${J.id}${h?`?run=${h}`:``}`,{replace:!0})},[J,a,h,_]);let X=(0,I.useMemo)(()=>Ce?.items??[],[Ce]),Z=Te?.is_multi_plate?Te.plates:[],Ee=(0,I.useMemo)(()=>{let e=new Map;for(let t of X)t.plate_id!=null&&e.set(t.plate_id,(e.get(t.plate_id)??0)+1);return e},[X]),De=(0,I.useRef)(null);(0,I.useEffect)(()=>{h&&X.some(e=>e.id===h)&&De.current?.scrollIntoView?.({behavior:`smooth`,block:`center`})},[h,X]);let Oe=ne({mutationFn:e=>n.deleteArchive(a,e),onSuccess:()=>{se(y),O(e(`archives.toast.archiveDeleted`)),_(`/archives`)},onError:()=>O(e(`archives.toast.failedDeleteArchive`),`error`)});if(q.isLoading)return(0,L.jsx)(`div`,{className:`flex justify-center p-16`,children:(0,L.jsx)(x,{className:`w-8 h-8 text-bambu-gray animate-spin`})});if(!J){let t=q.error instanceof i&&q.error.status===404;return(0,L.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,L.jsx)(s,{to:`/archives`,className:`text-sm text-bambu-gray hover:text-white`,children:e(`nav.archives`)}),(0,L.jsxs)(`div`,{className:`mt-8 flex flex-col items-center gap-3 text-bambu-gray`,children:[(0,L.jsx)(`p`,{children:t||!q.error?e(`archivePage.notFound`):e(`archivePage.loadFailed`)}),!t&&q.error&&(0,L.jsx)(M,{variant:`secondary`,onClick:()=>q.refetch(),children:e(`archivePage.retry`)})]})]})}let Q=J.print_name||J.filename,$=z(`archives`,`update`,J.created_by_id),ke=!!J.file_path&&R(`queue:create`)&&z(`archives`,`reprint`,J.created_by_id),Ae=z(`archives`,`delete`,J.created_by_id),je=J.timelapse_path&&!X.some(e=>e.timelapse_path===J.timelapse_path),Me=J.tags?.split(`,`).map(e=>e.trim()).filter(Boolean)??[];return(0,L.jsxs)(`div`,{className:`p-4 md:p-8 space-y-6 max-w-6xl mx-auto`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray min-w-0`,children:[(0,L.jsx)(s,{to:`/archives`,className:`hover:text-white transition-colors`,children:e(`nav.archives`)}),(0,L.jsx)(d,{className:`w-4 h-4 shrink-0`}),(0,L.jsx)(`span`,{className:`text-white truncate`,children:Q})]}),(0,L.jsx)(j,{children:(0,L.jsx)(A,{className:`p-4 md:p-6`,children:(0,L.jsxs)(`div`,{className:`flex flex-col md:flex-row gap-6`,children:[(0,L.jsx)(`div`,{className:`w-full md:w-60 shrink-0`,children:(0,L.jsx)(`div`,{className:`aspect-square rounded-lg bg-bambu-dark overflow-hidden flex items-center justify-center`,children:J.thumbnail_path?(0,L.jsx)(`img`,{src:n.getArchiveThumbnail(J.id),alt:Q,className:`w-full h-full object-contain`}):(0,L.jsx)(S,{className:`w-16 h-16 text-bambu-gray/50`})})}),(0,L.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-4`,children:[(0,L.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,L.jsx)(`button`,{onClick:()=>_(`/archives`),className:`p-2 rounded-lg bg-bambu-dark hover:bg-bambu-dark-tertiary transition-colors shrink-0`,"aria-label":e(`archivePage.back`),children:(0,L.jsx)(re,{className:`w-5 h-5 text-bambu-gray`})}),(0,L.jsxs)(`div`,{className:`min-w-0`,children:[(0,L.jsx)(`h1`,{className:`text-2xl font-bold text-white break-words`,children:Q}),J.print_name&&J.filename!==J.print_name&&(0,L.jsx)(`p`,{className:`text-sm text-bambu-gray break-all`,children:J.filename})]})]}),(J.project_name||Me.length>0)&&(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[J.project_name&&J.project_id!=null&&(0,L.jsx)(s,{to:`/projects/${J.project_id}`,className:`text-xs px-2 py-0.5 rounded bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30`,children:J.project_name}),Me.map(e=>(0,L.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded bg-bambu-dark text-bambu-gray-light`,children:e},e))]}),(0,L.jsxs)(`dl`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-3 text-sm`,children:[(0,L.jsx)(B,{icon:m,label:e(`archivePage.estimatedTime`),value:J.print_time_seconds?P(J.print_time_seconds):`—`}),(0,L.jsx)(B,{icon:S,label:e(`archivePage.estimatedFilament`),value:J.filament_used_grams?`${J.filament_used_grams.toFixed(1)} g`:`—`}),(0,L.jsx)(B,{icon:ce,label:e(`archivePage.layers`),value:J.total_layers?String(J.total_layers):`—`}),(0,L.jsx)(B,{icon:w,label:e(`archivePage.prints`),value:e(`archivePage.printsValue`,{count:J.run_count,successful:J.successful_run_count,failed:J.failed_run_count})})]}),(0,L.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:e(`archivePage.archivedAt`,{date:le(J.created_at,H)})}),J.notes&&(0,L.jsxs)(`div`,{className:`flex gap-2 text-sm text-bambu-gray-light bg-bambu-dark rounded-lg p-3`,children:[(0,L.jsx)(E,{className:`w-4 h-4 shrink-0 mt-0.5 text-bambu-gray`}),(0,L.jsx)(`p`,{className:`whitespace-pre-wrap break-words`,children:J.notes})]}),(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,L.jsxs)(M,{onClick:()=>ve(!0),disabled:!ke,title:ke?void 0:e(`archives.permission.noReprint`),children:[(0,L.jsx)(w,{className:`w-4 h-4`}),e(`archivePage.reprint`)]}),(0,L.jsxs)(M,{variant:`secondary`,onClick:()=>ge(!0),disabled:!$,title:$?void 0:e(`archives.permission.noUpdateArchives`),children:[(0,L.jsx)(C,{className:`w-4 h-4`}),e(`archivePage.edit`)]}),(0,L.jsxs)(M,{variant:`secondary`,onClick:()=>_(`/gcode-viewer?archive=${J.id}`),children:[(0,L.jsx)(u,{className:`w-4 h-4`}),e(`archivePage.preview`)]}),(0,L.jsxs)(M,{variant:`secondary`,disabled:!R(`archives:read`),onClick:()=>{n.downloadArchive(J.id,`${Q}.3mf`).catch(()=>{O(e(`archivePage.downloadFailed`),`error`)})},children:[(0,L.jsx)(g,{className:`w-4 h-4`}),e(`archivePage.download`)]}),je&&(0,L.jsxs)(M,{variant:`secondary`,onClick:()=>K({kind:`video`,src:n.getArchiveTimelapse(J.id),title:e(`archives.modal.timelapse`,{name:Q})}),children:[(0,L.jsx)(oe,{className:`w-4 h-4`}),e(`archivePage.video`)]}),J.photos&&J.photos.length>0&&(0,L.jsxs)(M,{variant:`secondary`,onClick:()=>K({kind:`photos`,photos:J.photos,title:Q}),children:[(0,L.jsx)(ie,{className:`w-4 h-4`}),e(`archivePage.allPhotos`,{count:J.photos.length})]}),(0,L.jsxs)(M,{variant:`danger`,onClick:()=>U(!0),disabled:!Ae,title:Ae?void 0:e(`archives.permission.noDelete`),children:[(0,L.jsx)(D,{className:`w-4 h-4`}),e(`archivePage.delete`)]})]})]})]})})}),Z.length>1&&(0,L.jsxs)(`section`,{className:`space-y-3`,children:[(0,L.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`archivePage.plates`)}),(0,L.jsx)(`ul`,{className:`grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-3`,children:Z.map(t=>(0,L.jsx)(`li`,{children:(0,L.jsx)(j,{children:(0,L.jsxs)(A,{className:`p-3 space-y-2`,children:[(0,L.jsx)(`div`,{className:`aspect-square rounded bg-bambu-dark overflow-hidden flex items-center justify-center`,children:t.has_thumbnail?(0,L.jsx)(`img`,{src:n.getArchivePlateThumbnail(J.id,t.index),alt:t.name||e(`archives.card.plateNumber`,{index:t.index}),className:`w-full h-full object-contain`}):(0,L.jsx)(S,{className:`w-8 h-8 text-bambu-gray/50`})}),(0,L.jsx)(`p`,{className:`text-sm text-white truncate`,children:t.name||e(`archives.card.plateNumber`,{index:t.index})}),(0,L.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:[t.print_time_seconds?P(t.print_time_seconds):null,t.filament_used_grams?`${t.filament_used_grams.toFixed(1)} g`:null].filter(Boolean).join(` · `)||`—`}),(0,L.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:e(`archivePage.platePrinted`,{count:Ee.get(t.index)??0})})]})})},t.index))})]}),(0,L.jsxs)(`section`,{className:`space-y-3`,children:[(0,L.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`archivePage.printsTitle`)}),we?(0,L.jsx)(`div`,{className:`flex justify-center py-6`,children:(0,L.jsx)(x,{className:`w-6 h-6 text-bambu-gray animate-spin`})}):X.length===0?(0,L.jsx)(`p`,{className:`text-sm text-bambu-gray italic`,children:fe.has(J.status)?e(`archivePage.printedBeforeLog`,{status:e(`archives.runLog.status.${J.status}`,{defaultValue:J.status})}):e(`archivePage.noPrints`)}):(0,L.jsx)(`ul`,{className:`space-y-3`,children:X.map(e=>(0,L.jsx)(pe,{run:e,archiveId:J.id,name:Q,showPlate:Z.length>1||X.some(e=>e.plate_id!=null&&e.plate_id>1),highlighted:e.id===h,itemRef:e.id===h?De:void 0,timeFormat:H,currency:me,canAnswer:$,onConfirm:()=>Se(e.id),onMedia:K},e.id))})]}),he&&(0,L.jsx)(v,{archive:J,onClose:()=>ge(!1)}),_e&&(0,L.jsx)(p,{mode:`create`,archiveId:J.id,archiveName:Q,preselectPlateId:J.plate_id,onClose:()=>ve(!1)}),xe!=null&&(0,L.jsx)(b,{archiveId:J.id,runId:xe,onClose:()=>{Se(null),y.invalidateQueries({queryKey:[`archive-runs`,J.id]})}}),G?.kind===`video`&&(0,L.jsx)(T,{src:G.src,title:G.title,downloadFilename:`${Q}_timelapse.mp4`,onClose:()=>K(null)}),G?.kind===`photos`&&(0,L.jsx)(de,{archiveId:J.id,archiveName:G.title,photos:G.photos,onClose:()=>K(null)}),ye&&(0,L.jsxs)(N,{title:e(`archives.modal.deleteArchive`),message:e(`archives.modal.deleteConfirm`,{name:Q}),confirmText:e(`archives.modal.deleteButton`),variant:`danger`,confirmDisabled:(Y.data?.currently_printing??0)>0,onConfirm:()=>{Oe.mutate(be),U(!1),W(!1)},onCancel:()=>{U(!1),W(!1)},children:[(Y.data?.related_queue_items??0)>0&&(0,L.jsx)(`div`,{className:(Y.data?.currently_printing??0)>0?`text-sm text-red-600 dark:text-red-400 mb-2`:`text-sm text-amber-600 dark:text-amber-400 mb-2`,children:(Y.data?.currently_printing??0)>0?e(`archives.modal.deleteBlockedByPrinting`,{count:Y.data.currently_printing}):e(`archives.modal.deleteQueueItemsWarning`,{count:Y.data.related_queue_items})}),(0,L.jsxs)(`label`,{className:`flex items-start gap-2 cursor-pointer text-sm text-bambu-gray`,children:[(0,L.jsx)(`input`,{type:`checkbox`,className:`mt-0.5 accent-red-500`,checked:be,onChange:e=>W(e.target.checked)}),(0,L.jsx)(`span`,{children:e(`archives.modal.deletePurgeStats`)})]})]})]})}function B({icon:e,label:t,value:n}){return(0,L.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-3 min-w-0`,children:[(0,L.jsxs)(`dt`,{className:`flex items-center gap-1.5 text-xs text-bambu-gray`,children:[(0,L.jsx)(e,{className:`w-3.5 h-3.5`}),t]}),(0,L.jsx)(`dd`,{className:`mt-1 text-white font-medium truncate`,children:n})]})}function pe({run:e,archiveId:r,name:i,showPlate:a,highlighted:o,itemRef:ee,timeFormat:te,currency:s,canAnswer:l,onConfirm:re,onMedia:u}){let{t:d}=t(),p=c(),{showToast:g}=ae(),{canModify:se}=k(),[v,b]=(0,I.useState)(!1),[x,C]=(0,I.useState)(e.notes??``),T=se(`archives`,`update`,e.created_by_id),D=ne({mutationFn:t=>n.updatePrintLogEntry(e.id,{notes:t}),onSuccess:()=>{p.invalidateQueries({queryKey:[`archive-runs`,r]}),p.invalidateQueries({queryKey:[`print-log`]}),b(!1),g(d(`archivePage.noteSaved`))},onError:()=>g(d(`archivePage.noteFailed`),`error`)}),N=_(e.user_verdict_source),ue=[e.duration_seconds?{icon:m,text:`${e.duration_unmeasured?`~`:``}${P(e.duration_seconds)}`}:null,e.filament_used_grams==null?null:{icon:S,text:`${e.filament_used_grams.toFixed(1)} g`},e.cost==null?null:{icon:h,text:`${s}${e.cost.toFixed(2)}`},e.energy_kwh==null?null:{icon:O,text:`${e.energy_kwh.toFixed(2)} kWh`}].filter(e=>e!==null),F=e.status===`completed`&&e.confirm_requested&&e.user_verdict==null;return(0,L.jsx)(`li`,{ref:ee,"data-testid":`archive-run-${e.id}`,children:(0,L.jsx)(j,{className:o?`ring-2 ring-bambu-green`:void 0,children:(0,L.jsxs)(A,{className:`p-4 space-y-3`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1.5`,children:[(0,L.jsx)(`span`,{className:`text-sm text-white font-medium`,children:le(e.started_at||e.created_at,te)}),(0,L.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded font-medium ${R[e.status]??`bg-bambu-dark text-bambu-gray`}`,children:d(`archives.runLog.status.${e.status}`,{defaultValue:e.status})}),e.failure_reason&&(0,L.jsx)(`span`,{className:`text-xs text-red-700 dark:text-red-400`,children:d(`editArchive.failureReasons.${e.failure_reason}`,{defaultValue:e.failure_reason})}),e.user_verdict===`good`&&(0,L.jsxs)(`span`,{className:`text-xs px-2 py-0.5 rounded bg-bambu-green/80 text-white flex items-center gap-1`,title:`${d(`archives.card.confirmedGoodTitle`)}${N?` — ${d(N)}`:``}`,children:[(0,L.jsx)(f,{className:`w-3 h-3`}),d(`archives.card.confirmedGood`)]}),e.user_verdict===`reject`&&(0,L.jsxs)(`span`,{className:`text-xs px-2 py-0.5 rounded bg-status-error/80 text-white flex items-center gap-1`,title:`${d(`archives.card.rejectedTitle`)}${N?` — ${d(N)}`:``}`,children:[(0,L.jsx)(y,{className:`w-3 h-3`}),d(`archives.card.rejected`)]}),e.status===`completed`&&(0,L.jsx)(`button`,{onClick:re,disabled:!l,className:F?`text-xs px-2 py-0.5 rounded bg-amber-500/90 enabled:hover:bg-amber-500 text-black flex items-center gap-1`:`text-xs text-bambu-gray enabled:hover:text-white underline-offset-2 enabled:hover:underline`,title:l?void 0:d(`archives.permission.noUpdateArchives`),children:F?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(f,{className:`w-3 h-3`}),d(`archives.card.confirmPending`)]}):e.user_verdict?d(`archivePage.changeOutcome`):d(`archivePage.setOutcome`)})]}),(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-x-4 gap-y-1 text-xs text-bambu-gray`,children:[(0,L.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,L.jsx)(w,{className:`w-3.5 h-3.5`}),e.printer_name||d(`archivePage.noPrinter`)]}),a&&e.plate_id!=null&&(0,L.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,L.jsx)(ce,{className:`w-3.5 h-3.5`}),d(`archives.card.plateNumber`,{index:e.plate_id})]}),ue.map(({icon:e,text:t})=>(0,L.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,L.jsx)(e,{className:`w-3.5 h-3.5`}),t]},t)),e.created_by_username&&(0,L.jsx)(`span`,{children:d(`archivePage.startedBy`,{name:e.created_by_username})})]}),v?(0,L.jsxs)(`div`,{className:`space-y-2`,children:[(0,L.jsx)(`label`,{className:`sr-only`,htmlFor:`run-note-${e.id}`,children:d(`archivePage.printNote`)}),(0,L.jsx)(`textarea`,{id:`run-note-${e.id}`,value:x,onChange:e=>C(e.target.value),rows:3,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-sm text-white focus:border-bambu-green focus:outline-none`,placeholder:d(`archivePage.notePlaceholder`)}),(0,L.jsxs)(`div`,{className:`flex gap-2`,children:[(0,L.jsx)(M,{size:`sm`,onClick:()=>D.mutate(x),disabled:D.isPending,children:d(`common.save`)}),(0,L.jsx)(M,{size:`sm`,variant:`secondary`,onClick:()=>{C(e.notes??``),b(!1)},children:d(`common.cancel`)})]})]}):e.notes?(0,L.jsxs)(`div`,{className:`flex gap-2 text-sm text-bambu-gray-light`,children:[(0,L.jsx)(E,{className:`w-4 h-4 shrink-0 mt-0.5 text-bambu-gray`}),(0,L.jsx)(`p`,{className:`whitespace-pre-wrap break-words flex-1`,children:e.notes})]}):null,(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[e.timelapse_path&&(0,L.jsxs)(M,{size:`sm`,variant:`secondary`,onClick:()=>u({kind:`video`,src:n.getArchiveRunTimelapse(r,e.id),title:d(`archives.modal.timelapse`,{name:i})}),children:[(0,L.jsx)(oe,{className:`w-3.5 h-3.5`}),d(`archivePage.video`)]}),e.photos&&e.photos.length>0&&(0,L.jsxs)(M,{size:`sm`,variant:`secondary`,onClick:()=>u({kind:`photos`,photos:e.photos,title:i}),children:[(0,L.jsx)(ie,{className:`w-3.5 h-3.5`}),d(`archivePage.photos`,{count:e.photos.length})]}),!v&&T&&(0,L.jsxs)(M,{size:`sm`,variant:`secondary`,onClick:()=>b(!0),children:[(0,L.jsx)(E,{className:`w-3.5 h-3.5`}),e.notes?d(`archivePage.editNote`):d(`archivePage.addNote`)]})]})]})})})}export{z as ArchiveDetailPage};