@remit/web-client-dist 0.0.383 → 0.0.384
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/{BriefPane-B-HnN6du.js → BriefPane-Dw7Pe10F.js} +1 -1
- package/assets/{ErrorState-BfUvPd06.js → ErrorState-xveqe4NU.js} +1 -1
- package/assets/{FlaggedPane-AmJKsYHV.js → FlaggedPane-qGrQjG53.js} +1 -1
- package/assets/{FullCompose-CklmpXIM.js → FullCompose-BdS5jMt_.js} +1 -1
- package/assets/{MailListHeader-DasXhAoW.js → MailListHeader-munUD_Z_.js} +2 -2
- package/assets/{MailViewChrome-CpBa8X9B.js → MailViewChrome-BbuEwZkl.js} +1 -1
- package/assets/{MailboxPane-Alsn8HJB.js → MailboxPane-CV6YxeJ6.js} +1 -1
- package/assets/{NavMenuButton-C-I-75VK.js → NavMenuButton-DTrHcaCl.js} +1 -1
- package/assets/{OnboardingWizard-CWZGlcGX.js → OnboardingWizard-D995ic0_.js} +1 -1
- package/assets/{OutboxPane-DaHb6IsW.js → OutboxPane-DU_fgjac.js} +1 -1
- package/assets/_mailboxId-C33LVQvY.js +1 -0
- package/assets/_messageId-5sFaVJDY.js +1 -0
- package/assets/_messageId-8OdokxoV.js +1 -0
- package/assets/_messageId-Op1X5j2s.js +1 -0
- package/assets/_outboxMessageId-B4beCT0Y.js +1 -0
- package/assets/_threadId-CXBJKpkg.js +1 -0
- package/assets/_threadId-mpyfhyax.js +1 -0
- package/assets/_threadId-xROXX4Mb.js +1 -0
- package/assets/{accounts-CMIAWVTi.js → accounts-DNuyrHHV.js} +1 -1
- package/assets/{advanced-BbTVUcFK.js → advanced-Hl4vx2r_.js} +1 -1
- package/assets/{appearance-66jE3wfq.js → appearance-DPAcHPmb.js} +1 -1
- package/assets/{attachment-file-CQmtW-J4.js → attachment-file-DsCIGE3k.js} +1 -1
- package/assets/{avatar-DSIRuuik.js → avatar-CrVNx5pM.js} +1 -1
- package/assets/{bottom-sheet-DZmY6s34.js → bottom-sheet-ipETSw9E.js} +1 -1
- package/assets/brief-CL5yUHRX.js +1 -0
- package/assets/{brief-BymAxNv-.js → brief-DpvvYHAg.js} +1 -1
- package/assets/{browser-ponyfill-BfcVKjn0.js → browser-ponyfill-MbezRvrQ.js} +1 -1
- package/assets/{bug-D2AVGVAf.js → bug-DZ6xy-Tb.js} +1 -1
- package/assets/{circle-check-6SGiZSsJ.js → circle-check-CXnX6QmC.js} +1 -1
- package/assets/{circle-check-big-CdfbgyId.js → circle-check-big-CPc3hmuc.js} +1 -1
- package/assets/{circle-help-B-u_YNNY.js → circle-help-Dydk2OOb.js} +1 -1
- package/assets/{clock-C07Nxjhs.js → clock-Cr85zKfw.js} +1 -1
- package/assets/compose._-_outboxMessageId_-BVFp9ABE.js +1 -0
- package/assets/compose._-_outboxMessageId_-CAvBgIBP.js +1 -0
- package/assets/compose._-_outboxMessageId_-Dv7NBiSF.js +1 -0
- package/assets/compose._-_outboxMessageId_-fGk_auJ5.js +1 -0
- package/assets/{confirm-dialog-aC-AeesS.js → confirm-dialog-DEuMA6ic.js} +1 -1
- package/assets/{download-CqcUOZpt.js → download-DXwQNbLS.js} +1 -1
- package/assets/enums-B_igRgfI.js +1 -0
- package/assets/{filters-DrYNIsSP.js → filters-DGaQenSm.js} +1 -1
- package/assets/flagged-B7GpaxHV.js +1 -0
- package/assets/{flagged-BqCyYfSx.js → flagged-rPmZzncK.js} +1 -1
- package/assets/{folders-CK3C0UQh.js → folders-yuHkSLzK.js} +1 -1
- package/assets/index-5sFaVJDY.js +1 -0
- package/assets/index-5wV6IfbN.js +1 -0
- package/assets/index-8OdokxoV.js +1 -0
- package/assets/index-BNehWCZu.js +1 -0
- package/assets/index-B_75v3AK.js +1 -0
- package/assets/index-BkIpfEPl.js +1 -0
- package/assets/{index-DZnUrJb2.js → index-D25kY32_.js} +3 -3
- package/assets/{index-DTCQB1gk.js → index-TkI6PAgL.js} +4 -4
- package/assets/index-pq-8qFaX.js +1 -0
- package/assets/index-rf9B-r2h.js +1 -0
- package/assets/{kbd-DeF-F_fe.js → kbd-B6SN6Hd3.js} +1 -1
- package/assets/{labels-CTo5W0Ps.js → labels-yXF8oo8-.js} +1 -1
- package/assets/{mail-Cuu9sIIP.js → mail-CviqQaZN.js} +1 -1
- package/assets/{mail-B3d8bbww.js → mail-DKYXzawQ.js} +1 -1
- package/assets/{menu-anmWjo9y.js → menu-Cv_oe3kJ.js} +1 -1
- package/assets/{move-options-Ct8ttdR8.js → move-options-DwhS2xoZ.js} +1 -1
- package/assets/{onboarding-C6tXAqSr.js → onboarding-CxhTfLx4.js} +1 -1
- package/assets/outbox-By4U5HzK.js +1 -0
- package/assets/{pencil-CRFfRPCe.js → pencil-DBA1snvb.js} +1 -1
- package/assets/{rich-text-uRm-MrFH.js → rich-text-DHzc6tlV.js} +1 -1
- package/assets/{rich-text-spellcheck-worker-provider-DEF-ABjy.js → rich-text-spellcheck-worker-provider-1QQ-kq1U.js} +1 -1
- package/assets/{rotate-ccw-M8IiVbhW.js → rotate-ccw-H-YdUp-b.js} +1 -1
- package/assets/{row-actions-B6drTtAh.js → row-actions-BKmH_TTH.js} +1 -1
- package/assets/{search-scope-DFjufgsj.js → search-scope-uzqSeOQ0.js} +1 -1
- package/assets/{search-token-index-CHtSN2KS.js → search-token-index-D4F4WYkQ.js} +1 -1
- package/assets/{search-view-ho4NqP5D.js → search-view-CHvJBRRa.js} +1 -1
- package/assets/{senders-CTFxPH_S.js → senders-BbvJ4JRX.js} +1 -1
- package/assets/settings-BPD-Xefg.js +1 -0
- package/assets/{settings-screen-BoFzKaWk.js → settings-screen-wWBvhi3V.js} +1 -1
- package/assets/{shield-check-UbY87ldH.js → shield-check-C0Nfu5MF.js} +1 -1
- package/assets/{suggested-vips-CmbTgVaS.js → suggested-vips-Bo5cDXcq.js} +1 -1
- package/assets/{useDebouncedValue-CdlB-DU2.js → useDebouncedValue-D9IhKon-.js} +1 -1
- package/assets/{useFilters-8WsTGOGo.js → useFilters-DZRfaFl7.js} +1 -1
- package/assets/{useLabels-BjDBT9ky.js → useLabels-DI4Cu-Bl.js} +1 -1
- package/assets/{useMediaQuery--T8TBm80.js → useMediaQuery-8XUOgNnp.js} +1 -1
- package/assets/{useMessageBodyContent-DL6N6EZi.js → useMessageBodyContent-Di1auION.js} +1 -1
- package/assets/{useRefreshControl-pgoyTsGB.js → useRefreshControl-DtdN0Hrw.js} +1 -1
- package/assets/{useSearchMirror-CMrYupT3.js → useSearchMirror-DkyBzsMg.js} +1 -1
- package/assets/{useSearchTokenContext-B5NwpLLp.js → useSearchTokenContext-DQ5NUt1n.js} +1 -1
- package/assets/{useSemanticSearch-COFuXxJ3.js → useSemanticSearch-DDRAzD-l.js} +1 -1
- package/assets/{useSignature-C66kCEsm.js → useSignature-BclAT-_g.js} +1 -1
- package/index.html +1 -1
- package/package.json +1 -1
- package/assets/_mailboxId-BZZdb4Tg.js +0 -1
- package/assets/_messageId-BdSJqF97.js +0 -1
- package/assets/_messageId-Dq8D9n5w.js +0 -1
- package/assets/_messageId-t6zMobqp.js +0 -1
- package/assets/_outboxMessageId-DEGQDy_Q.js +0 -1
- package/assets/_threadId-99UxPy8q.js +0 -1
- package/assets/_threadId-BM7hTLNo.js +0 -1
- package/assets/_threadId-CfJVeNMM.js +0 -1
- package/assets/brief-D4T_MGTL.js +0 -1
- package/assets/compose._-_outboxMessageId_-5j2978HO.js +0 -1
- package/assets/compose._-_outboxMessageId_-B6oDNwPh.js +0 -1
- package/assets/compose._-_outboxMessageId_-stg228p2.js +0 -1
- package/assets/compose._-_outboxMessageId_-wACQNvrY.js +0 -1
- package/assets/enums-CCxx0t2v.js +0 -1
- package/assets/flagged-CGZhVzjY.js +0 -1
- package/assets/index-BRJkwejN.js +0 -1
- package/assets/index-BWNSYGnF.js +0 -1
- package/assets/index-BbOXArC9.js +0 -1
- package/assets/index-BdSJqF97.js +0 -1
- package/assets/index-BlG3oW5p.js +0 -1
- package/assets/index-DU3Taq-X.js +0 -1
- package/assets/index-GlREqz7A.js +0 -1
- package/assets/index-t6zMobqp.js +0 -1
- package/assets/outbox-BNpvr0ZJ.js +0 -1
- package/assets/settings-DNF_sbWV.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as a,af as Ke,S as Xe,bh as es,l as G,bb as ss,m as oe,r as o,s as ae,bi as ne,q as ts,bj as as,bk as ns,bl as os,e as Re,bm as rs}from"./index-DTCQB1gk.js";import{s as Te,a as is,b as we,u as ls,p as cs,R as ds}from"./useSearchTokenContext-B5NwpLLp.js";import{a5 as ve,E as ye,a6 as us,a7 as ms,F as fs,a8 as Se,a9 as hs,aa as gs,ab as xs,a4 as ps,ac as Is,ad as bs,ae as vs,M as ys,af as Ss,ag as Cs,ah as js,e as Rs,w as Ts,ai as ws,s as Ms,S as ks,I as Fs,N as Ce,L as Ns,J as As,d as Os,X as Bs,Y as Ls,Z as Me,_ as ke,$ as Ds,a0 as Es,a1 as Ps}from"./MailListHeader-DasXhAoW.js";import{u as qs,a as zs,R as Qs,i as Hs,b as _s}from"./useRefreshControl-pgoyTsGB.js";import{e as $s,c as Ws,R as Us}from"./search-token-index-CHtSN2KS.js";import{a as Vs}from"./useLabels-BjDBT9ky.js";import{u as Ys}from"./useMediaQuery--T8TBm80.js";import{u as Gs,L as Js}from"./useSemanticSearch-COFuXxJ3.js";import{o as Zs,f as Ks,h as Xs,p as et,r as st}from"./useMessageBodyContent-DL6N6EZi.js";function tt({sync:e}){return e?a.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",role:"status","aria-live":"polite",children:[a.jsx(Ke,{className:"size-8 animate-spin text-fg-subtle","aria-hidden":"true"}),a.jsx("p",{className:"text-sm font-medium text-fg",children:"Still syncing your mail"}),a.jsx("p",{className:"text-xs text-fg-subtle",children:at(e)})]}):a.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",children:[a.jsx(Xe,{className:"size-8 text-fg-subtle","aria-hidden":"true"}),a.jsx("p",{className:"text-sm font-medium text-fg",children:"You're caught up"}),a.jsx("p",{className:"text-xs text-fg-subtle",children:"Nothing needs attention."})]})}function at({synced:e,total:s}){return s>0?`${e.toLocaleString()} of ${s.toLocaleString()} messages downloaded. This list fills in as they arrive.`:"Downloading your messages. This list fills in as they arrive."}const Fe=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Ne="category",nt={unclassified:"uncategorized"},$=e=>is(e).map(s=>s.raw),_=e=>e.join(" "),re=e=>{const s=we(e);if(s)return Fe.find(n=>n.name===s.name&&n.value===s.value.toLowerCase())?.id},ie=e=>{const s=we(e);if(!s||s.name!==Ne)return;const n=s.value.toLowerCase(),r=nt[n];if(r)return r;if(!(!es(n)||n==="all"))return n},Ae=e=>Fe.find(s=>s.id===e),Oe=e=>Ae(e)!==void 0,ot=e=>{const s=new Set;for(const n of $(e)){const r=re(n);r&&s.add(r)}return s},rt=e=>{let s="all";for(const n of $(e)){const r=ie(n);r&&(s=r)}return s},it=(e,s)=>{const n=Ae(s);if(!n)return;const r=$(e),d=r.filter(l=>re(l)!==s);return d.length<r.length?_(d):_([...r,Te(n.name,n.value)])},lt=(e,s)=>{const n=$(e).filter(r=>!ie(r));return _(s==="all"?n:[...n,Te(Ne,s)])},ct=e=>_($(e).filter(s=>!re(s)&&!ie(s))),Be=e=>e.trim().length>0,dt=e=>{if(!Be(e.query))return e.ownFilters;const s=new Set(ot(e.query));for(const n of e.ownFilters)Oe(n)||s.add(n);return s},ut=e=>Be(e.query)?rt(e.query):e.ownCategory,mt=(e,s)=>e.createdAt!==s.createdAt?e.createdAt-s.createdAt:e.accountId.localeCompare(s.accountId),ft=e=>[...e].sort(mt),ht=200,je=()=>a.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,s)=>a.jsxs("div",{className:"flex items-start gap-3 py-2 pl-5 pr-4 border-b border-line",children:[a.jsx("div",{className:"size-7 rounded-full bg-surface-sunken shrink-0 mt-0.5"}),a.jsxs("div",{className:"flex-1 space-y-1.5",children:[a.jsxs("div",{className:"flex justify-between gap-2",children:[a.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-28"}),a.jsx("div",{className:"h-3 bg-surface-sunken rounded w-12"})]}),a.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-48"}),a.jsx("div",{className:"h-3 bg-surface-sunken rounded w-full"})]})]},s))}),gt=({accountEmail:e})=>{const s=oe();return a.jsxs("div",{className:"flex items-center gap-2 px-row-inset py-2 border-b border-line bg-danger-soft/40 text-xs text-danger",children:[a.jsx(Re,{className:"size-3.5 shrink-0"}),a.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),a.jsx("button",{type:"button",onClick:()=>s({to:"/settings/accounts"}),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},xt=(e,s)=>{if(s.size===0)return{};const n=new Set,r=new Set;for(const l of e)s.has(l.id)&&(l.accountId&&n.add(l.accountId),l.mailboxId&&r.add(l.mailboxId));if(n.size>1)return{restriction:"spansAccounts",moveDisabledHint:"Move only works within one account — clear selection or pick messages from a single account"};const d=n.size===1?[...n][0]:void 0;return r.size>1?{accountId:d,restriction:"spansFolders",moveDisabledHint:`Move only works within one folder — this selection spans ${r.size} folders`}:{accountId:d,mailboxId:r.size===1?[...r][0]:void 0}};function pt({header:e,rows:s,wizard:n,children:r}){const{selectedIds:d,selectedCount:l,exitSelection:f,orderedIds:u,allSelected:h,toggleAllLoaded:S}=js(),p=o.useMemo(()=>xt(s,d),[s,d]),{junkMailboxId:I}=Rs(p.accountId),{labels:b}=Vs(p.accountId),N=o.useMemo(()=>Array.from(d),[d]),D=o.useMemo(()=>s.filter(x=>d.has(x.id)).map(x=>({id:x.id,sender:x.fromName,email:x.fromEmail,subject:x.subject,date:x.timeLabel})),[s,d]),m=Ts(I,p.mailboxId),v=o.useMemo(()=>u.length>0?{checked:h,indeterminate:l>0&&!h,onChange:S}:void 0,[u.length,h,l,S]),A=p.moveDisabledHint?{tone:"warning",text:p.moveDisabledHint}:void 0,C=x=>a.jsx(ks,{title:x.title,navSlot:x.navSlot,titleMeta:x.titleMeta,searchSlot:x.searchSlot,searchField:x.searchField,idleSlot:x.makeFilterSlot,count:l,onCancel:f,onDelete:()=>n.start("delete"),onMove:()=>n.start("move"),onOrganize:()=>n.start("organize"),onJunk:m?()=>n.start("junk"):void 0,onMarkRead:()=>n.start("markRead"),overflowSlot:p.accountId&&p.mailboxId&&l>0&&b.length>0?a.jsx(Js,{accountId:p.accountId,mailboxId:p.mailboxId,messageIds:N}):void 0,selectAll:v,notice:A});return a.jsx(ws,{...e,selectionBar:C,paneOverlay:a.jsx(Ms,{verb:n.verb,accountId:p.accountId,mailboxId:p.mailboxId,selection:D,selectionRestriction:p.restriction,onFinished:f}),children:r})}function It({accounts:e,selectedMessageId:s,onOpenThread:n,commandsRef:r,onTriageContextChange:d,onDeleteMessages:l}){const{searchQuery:f,searchInput:u,resultFolderIndex:h,onSearchChange:S}=G(),p=ls(),I=Ys(),b=$s(),N=ss(),D=oe(),m=o.useMemo(()=>ft(e.filter(t=>!t.muted?.value)),[e]),[v,A]=o.useState("all"),[C,x]=o.useState("all"),[W,E]=o.useState(new Set),[Z,j]=o.useState(!1),P=o.useCallback(t=>{E(i=>{const c=new Set(i);return c.has(t)?c.delete(t):c.add(t),c})},[]),U=o.useCallback(()=>E(new Set),[]),T=u.trim().length>0,R=o.useMemo(()=>dt({query:u,ownFilters:W}),[u,W]),w=o.useMemo(()=>ut({query:u,ownCategory:C}),[u,C]),O=o.useCallback(t=>{if(!T||!Oe(t)){P(t);return}const i=it(u,t);i!==void 0&&S(i)},[T,u,S,P]),q=o.useCallback(t=>{if(!T){x(t);return}S(lt(u,t))},[T,u,S]),z=o.useCallback(()=>{x("all"),A("all"),U(),T&&S(ct(u))},[T,u,S,U]),{data:B,isLoading:Q,isError:g,refetch:L}=ae({...ne(),staleTime:6e4}),M=Ws({queries:m.map(t=>({...ts({path:{accountId:t.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),V=o.useMemo(()=>{const t=new Map;for(let i=0;i<m.length;i++){const c=m[i].accountId,Ge=(M[i]?.data?.items??[]).reduce((Je,Ze)=>Je+(Ze.unseenCount??0),0);t.set(c,Ge)}return t},[m,M]),Ee=o.useMemo(()=>m.filter((t,i)=>{const c=M[i];return c?.isError?!as(c.error):!1}),[m,M]),{freeText:k,tokens:K}=cs(f.trim().toLowerCase(),p),{data:le,isFetching:Pe}=ae({...ne({query:{query:k,limit:ht}}),enabled:k.length>0,staleTime:3e4}),y=o.useMemo(()=>{const t=ve(B?.items??[]).map(ye);return(k?us(t.filter(c=>ms(c,k)),ve(le?.items??[]).map(ye)):t).filter(c=>(v==="all"||c.accountId===v)&&fs(c,K))},[B,le,v,k,K]),{bodyRows:ce,briefSpamOffer:X}=o.useMemo(()=>{if(!k)return{bodyRows:y,briefSpamOffer:void 0};const t=y.map(F=>Se(F,h)),{spam:i}=hs(t);if(i.length===0)return{bodyRows:y,briefSpamOffer:void 0};const c=new Set(i.map(F=>F.id));return{bodyRows:y.filter(F=>!c.has(F.id)),briefSpamOffer:gs(t)}},[y,k,h]),de=o.useMemo(()=>xs(ce),[ce]),ue=o.useCallback((t,i)=>{const c=y.find(F=>F.id===t)?.threadId;c&&n?.({threadId:c,messageId:t},i)},[y,n]),qe=o.useCallback(t=>{const i=t.threadId??y.find(c=>c.id===t.id)?.threadId;i&&n?.({threadId:i,messageId:t.id})},[y,n]),ee=o.useMemo(()=>m.length<=1?[]:[{id:"all",label:"All",active:v==="all"},...m.map(t=>({id:t.accountId,label:t.email.split("@")[0]??t.email,count:V.get(t.accountId),active:v===t.accountId}))],[m,V,v]),H=o.useMemo(()=>e.filter(t=>t.muted?.value).length,[e]),ze=o.useMemo(()=>Array.from(V.values()).reduce((t,i)=>t+i,0),[V]),se=o.useMemo(()=>m.map(t=>t.accountId),[m]),{hasNewMail:me}=qs(),{state:fe,errorMessage:he,refresh:ge}=zs(se,{onSettled:()=>L()}),Qe=o.useMemo(()=>a.jsx(Qs,{state:fe,onRefresh:ge,label:"Refresh daily brief",errorMessage:he,hasUpdate:me(se)}),[fe,ge,he,me,se]),te=o.useMemo(()=>y.filter(t=>(w==="all"||t.category===w)&&ns(t,R)).map(t=>Se(t,h)),[y,w,R,h]),{hits:xe,isLoading:He}=Gs(),_e=o.useMemo(()=>{const t=new Map;for(const c of B?.items??[])t.set(c.messageId,c.threadId);const i=te.map(c=>t.get(c.id)).filter(c=>c!=null);return ps(xe,i,h)},[xe,te,B,h]),$e=o.useMemo(()=>{const t=Is(ee.map(i=>({id:i.id,label:i.label,count:i.count,active:i.active})));return{categories:t.categories,filters:t.filters,sources:t.sources,sourcesNote:H>0?`+${H} muted`:void 0,selectedCategory:w,activeFilters:R,expanded:Z,onExpandedChange:j,onSelectCategory:i=>q(i),onSelectSource:A,onToggleFilter:i=>O(i),onClear:z}},[ee,H,w,R,Z,O,q,z]),pe=de.length===0&&v==="all"&&k.length===0&&K.length===0,We=o.useMemo(()=>m.map(t=>t.accountId),[m]),Ue=o.useMemo(()=>m.some(t=>Hs(t.syncPhase)),[m]),Y=_s(We,pe||Ue),Ie=a.jsxs("div",{className:"h-full overflow-y-auto",children:[a.jsx(je,{}),a.jsx(je,{})]}),be=!Q&&!g&&!pe,Ve=bs({tier:b,hasLiveInput:T,hasCommittedQuery:f.trim().length>0,bodyRendersCommittedResults:!0}),Ye=be?a.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[X&&a.jsx(vs,{count:X.count,onScopeToSpam:()=>D({to:"/mail/$mailboxId",params:{mailboxId:X.mailboxId},search:{q:f||void 0}})}),a.jsx("div",{className:"min-h-0 flex-1",children:a.jsx(os,{sections:de,briefCategory:w,Row:ys,selectedThreadId:s,onSelectThread:ue,onSelectBriefCategory:q,sources:ee,sourcesNote:H>0?`+${H} muted`:void 0,onSelectSource:A,activeFilters:R,onToggleFilter:O,onClearFilters:z})})]}):Q?Ie:g?a.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 py-12 text-sm text-fg-muted",children:[a.jsx(Re,{className:"size-8 text-danger"}),a.jsx("p",{children:"Couldn't load your messages"}),a.jsxs("button",{type:"button",onClick:()=>L(),className:"flex items-center gap-1 text-accent underline text-xs",children:[a.jsx(Us,{className:"size-3.5"}),"Try again"]})]}):Y.resolved?a.jsx(tt,{sync:Y.syncing?{synced:Y.synced,total:Y.total}:void 0}):Ie;return a.jsx(rs,{hasSheet:be&&!Ve,children:a.jsx(Ss,{selectedMessageId:s,onOpen:ue,onDeleteMessages:l,onSelectionVerb:N.start,wizardOpen:N.isOpen,commandsRef:r,onTriageContextChange:d,children:a.jsx(pt,{wizard:N,header:{title:"Daily brief",unreadCount:ze,footer:I?a.jsx(Cs,{}):void 0,searchFilter:$e,searchResults:te,searchLoading:Q||Pe,relatedResults:_e,relatedLoading:He,onSelectSearchResult:qe,searchResultsInBody:!0,refreshControl:Qe},rows:y,children:a.jsxs("div",{className:"flex h-full flex-col",children:[Ee.map(t=>a.jsx(gt,{accountEmail:t.email,accountId:t.accountId},t.accountId)),a.jsx("div",{className:"min-h-0 flex-1",children:Ye})]})})})})}const Le=o.createContext(null);function J(){const e=o.useContext(Le);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function bt({thread:e,children:s}){const n=oe(),r=Zs(),{searchInput:d}=G(),l=e?.threadId,f=e?.messageId,{data:u}=ae({...ne(),staleTime:6e4}),h=o.useMemo(()=>u?.items??[],[u]),S=o.useMemo(()=>{if(l)return h.find(g=>g.messageId===f)??h.find(g=>g.threadId===l)},[h,l,f]),p=Fs(l,f),I=S??p,b=f??I?.messageId,N=o.useMemo(()=>{if(l)return{threadId:l,mailboxId:I?.mailboxId??"",subject:I?.subject,messageId:b,authenticity:I?.authenticity}},[l,I,b]),D=o.useCallback((g,L)=>{n({to:"/mail/brief/$threadId/$messageId",params:g,replace:L?.replace,search:M=>({...M,q:d||void 0}),hash:r})},[n,r,d]),m=o.useCallback(()=>{n({to:"/mail/brief",search:g=>g,hash:r})},[n,r]),v=o.useCallback(g=>{b&&g.includes(b)&&m()},[b,m]),A=Ce({thread:I,onAfterOptimisticRemove:v}),C=Ns(),{deleteMessages:x}=As({mailboxId:I?.mailboxId??"",messages:h,onAfterOptimisticRemove:v}),{toggleReadFor:W}=Os({mailboxId:I?.mailboxId??"",messages:h}),E=C.focusedMessageId,j=o.useMemo(()=>h.find(g=>g.messageId===E),[h,E])??I,P=Ce({thread:j}),U=Ks(),T=Xs(),R=et(),w=o.useMemo(()=>st(R,l,b),[R,l,b]),O=o.useMemo(()=>{if(j)return g=>R({threadId:j.threadId,messageId:j.messageId,mode:g})},[R,j]),{nextMessageId:q,previousMessageId:z}=Bs({context:C,orderedIds:C.orderedIds,selectedMessageId:b,enabled:!U&&!T,onClose:m,handlers:{reply:()=>O?.("reply"),replyAll:()=>O?.("reply-all"),forward:()=>O?.("forward"),delete:()=>{C.listCommandsRef.current?.requestVerb("delete")||P.deleteThread()},toggleStar:P.toggleStar,toggleRead:()=>{C.listCommandsRef.current?.requestVerb("markRead")||j&&W([j.messageId],!j.isRead)},goFlagged:()=>n({to:"/mail/flagged"}),goSettings:()=>n({to:"/settings"})}}),B=o.useCallback(g=>{if(!g)return;const L=h.find(M=>M.messageId===g);return L?{threadId:L.threadId,messageId:g}:void 0},[h]),Q={selectedMessageId:b,selectedThread:I,conversation:N,onOpenThread:D,onCloseThread:m,nextThread:B(q),previousThread:B(z),actions:A,onReply:w,triage:C,onDeleteMessages:x,handleDeselectIfRemoved:v};return a.jsx(Le.Provider,{value:Q,children:s})}function De(){const{selectedMessageId:e,onOpenThread:s,triage:n,onDeleteMessages:r}=J(),{accounts:d}=G();return a.jsx(It,{accounts:d,selectedMessageId:e,onOpenThread:s,commandsRef:n.listCommandsRef,onTriageContextChange:n.onTriageContextChange,onDeleteMessages:r})}function vt(){const{conversation:e,selectedThread:s,actions:n,onReply:r,handleDeselectIfRemoved:d}=J(),l=!!e,f=Es(e?.threadId);return a.jsxs(a.Fragment,{children:[a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(Ps,{hasThread:l,intelligenceOpen:f.isShowing,canToggleIntelligence:f.canToggle,onToggleIntelligence:f.toggle,onReply:r?()=>r("reply"):void 0,onReplyAll:r?()=>r("reply-all"):void 0,onForward:r?()=>r("forward"):void 0,onDelete:l?n.deleteThread:void 0,onToggleStar:l?n.toggleStar:void 0,isStarred:n.isStarred,moveContext:l&&n.accountId&&n.mailboxId?{accountId:n.accountId,currentMailboxId:n.mailboxId,onMove:n.moveThread}:void 0}),a.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?a.jsx(Me,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:f.open}):a.jsx(ds,{})})]}),a.jsx(ke,{isOpen:f.drawerOpen,onClose:f.closeDrawer,thread:s,mailboxId:s?.mailboxId,accountId:s?.accountId,onAfterOptimisticRemove:d})]})}function yt(){const{selectedThread:e,handleDeselectIfRemoved:s}=J(),{onToggleIntelligence:n}=G();return a.jsx(Ds,{onClose:n,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:s})}function St(){const{selectedThread:e,conversation:s,onOpenThread:n,onCloseThread:r,nextThread:d,previousThread:l,handleDeselectIfRemoved:f}=J(),u=Ls(s?.threadId??null);return s?a.jsxs(a.Fragment,{children:[a.jsx(Me,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:r,onOpenIntelligence:u.toggle,onSwipeNext:d?()=>n(d):void 0,onSwipePrevious:l?()=>n(l):void 0,mobileIntelligenceOpen:u.isOpen}),a.jsx(ke,{isOpen:u.isOpen,onClose:u.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:f})]}):a.jsx("div",{className:"h-full",children:a.jsx(De,{})})}const At=Object.assign(bt,{List:De,Reading:vt,Intelligence:yt,Phone:St});export{At as B};
|
|
1
|
+
import{j as a,af as Ke,S as Xe,bh as es,l as G,bb as ss,m as oe,r as o,s as ae,bi as ne,q as ts,bj as as,bk as ns,bl as os,e as Re,bm as rs}from"./index-TkI6PAgL.js";import{s as Te,a as is,b as we,u as ls,p as cs,R as ds}from"./useSearchTokenContext-DQ5NUt1n.js";import{a5 as ve,E as ye,a6 as us,a7 as ms,F as fs,a8 as Se,a9 as hs,aa as gs,ab as xs,a4 as ps,ac as Is,ad as bs,ae as vs,M as ys,af as Ss,ag as Cs,ah as js,e as Rs,w as Ts,ai as ws,s as Ms,S as ks,I as Fs,N as Ce,L as Ns,J as As,d as Os,X as Bs,Y as Ls,Z as Me,_ as ke,$ as Ds,a0 as Es,a1 as Ps}from"./MailListHeader-munUD_Z_.js";import{u as qs,a as zs,R as Qs,i as Hs,b as _s}from"./useRefreshControl-DtdN0Hrw.js";import{e as $s,c as Ws,R as Us}from"./search-token-index-D4F4WYkQ.js";import{a as Vs}from"./useLabels-DI4Cu-Bl.js";import{u as Ys}from"./useMediaQuery-8XUOgNnp.js";import{u as Gs,L as Js}from"./useSemanticSearch-DDRAzD-l.js";import{o as Zs,f as Ks,h as Xs,p as et,r as st}from"./useMessageBodyContent-Di1auION.js";function tt({sync:e}){return e?a.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",role:"status","aria-live":"polite",children:[a.jsx(Ke,{className:"size-8 animate-spin text-fg-subtle","aria-hidden":"true"}),a.jsx("p",{className:"text-sm font-medium text-fg",children:"Still syncing your mail"}),a.jsx("p",{className:"text-xs text-fg-subtle",children:at(e)})]}):a.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",children:[a.jsx(Xe,{className:"size-8 text-fg-subtle","aria-hidden":"true"}),a.jsx("p",{className:"text-sm font-medium text-fg",children:"You're caught up"}),a.jsx("p",{className:"text-xs text-fg-subtle",children:"Nothing needs attention."})]})}function at({synced:e,total:s}){return s>0?`${e.toLocaleString()} of ${s.toLocaleString()} messages downloaded. This list fills in as they arrive.`:"Downloading your messages. This list fills in as they arrive."}const Fe=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Ne="category",nt={unclassified:"uncategorized"},$=e=>is(e).map(s=>s.raw),_=e=>e.join(" "),re=e=>{const s=we(e);if(s)return Fe.find(n=>n.name===s.name&&n.value===s.value.toLowerCase())?.id},ie=e=>{const s=we(e);if(!s||s.name!==Ne)return;const n=s.value.toLowerCase(),r=nt[n];if(r)return r;if(!(!es(n)||n==="all"))return n},Ae=e=>Fe.find(s=>s.id===e),Oe=e=>Ae(e)!==void 0,ot=e=>{const s=new Set;for(const n of $(e)){const r=re(n);r&&s.add(r)}return s},rt=e=>{let s="all";for(const n of $(e)){const r=ie(n);r&&(s=r)}return s},it=(e,s)=>{const n=Ae(s);if(!n)return;const r=$(e),d=r.filter(l=>re(l)!==s);return d.length<r.length?_(d):_([...r,Te(n.name,n.value)])},lt=(e,s)=>{const n=$(e).filter(r=>!ie(r));return _(s==="all"?n:[...n,Te(Ne,s)])},ct=e=>_($(e).filter(s=>!re(s)&&!ie(s))),Be=e=>e.trim().length>0,dt=e=>{if(!Be(e.query))return e.ownFilters;const s=new Set(ot(e.query));for(const n of e.ownFilters)Oe(n)||s.add(n);return s},ut=e=>Be(e.query)?rt(e.query):e.ownCategory,mt=(e,s)=>e.createdAt!==s.createdAt?e.createdAt-s.createdAt:e.accountId.localeCompare(s.accountId),ft=e=>[...e].sort(mt),ht=200,je=()=>a.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,s)=>a.jsxs("div",{className:"flex items-start gap-3 py-2 pl-5 pr-4 border-b border-line",children:[a.jsx("div",{className:"size-7 rounded-full bg-surface-sunken shrink-0 mt-0.5"}),a.jsxs("div",{className:"flex-1 space-y-1.5",children:[a.jsxs("div",{className:"flex justify-between gap-2",children:[a.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-28"}),a.jsx("div",{className:"h-3 bg-surface-sunken rounded w-12"})]}),a.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-48"}),a.jsx("div",{className:"h-3 bg-surface-sunken rounded w-full"})]})]},s))}),gt=({accountEmail:e})=>{const s=oe();return a.jsxs("div",{className:"flex items-center gap-2 px-row-inset py-2 border-b border-line bg-danger-soft/40 text-xs text-danger",children:[a.jsx(Re,{className:"size-3.5 shrink-0"}),a.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),a.jsx("button",{type:"button",onClick:()=>s({to:"/settings/accounts"}),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},xt=(e,s)=>{if(s.size===0)return{};const n=new Set,r=new Set;for(const l of e)s.has(l.id)&&(l.accountId&&n.add(l.accountId),l.mailboxId&&r.add(l.mailboxId));if(n.size>1)return{restriction:"spansAccounts",moveDisabledHint:"Move only works within one account — clear selection or pick messages from a single account"};const d=n.size===1?[...n][0]:void 0;return r.size>1?{accountId:d,restriction:"spansFolders",moveDisabledHint:`Move only works within one folder — this selection spans ${r.size} folders`}:{accountId:d,mailboxId:r.size===1?[...r][0]:void 0}};function pt({header:e,rows:s,wizard:n,children:r}){const{selectedIds:d,selectedCount:l,exitSelection:f,orderedIds:u,allSelected:h,toggleAllLoaded:S}=js(),p=o.useMemo(()=>xt(s,d),[s,d]),{junkMailboxId:I}=Rs(p.accountId),{labels:b}=Vs(p.accountId),N=o.useMemo(()=>Array.from(d),[d]),D=o.useMemo(()=>s.filter(x=>d.has(x.id)).map(x=>({id:x.id,sender:x.fromName,email:x.fromEmail,subject:x.subject,date:x.timeLabel})),[s,d]),m=Ts(I,p.mailboxId),v=o.useMemo(()=>u.length>0?{checked:h,indeterminate:l>0&&!h,onChange:S}:void 0,[u.length,h,l,S]),A=p.moveDisabledHint?{tone:"warning",text:p.moveDisabledHint}:void 0,C=x=>a.jsx(ks,{title:x.title,navSlot:x.navSlot,titleMeta:x.titleMeta,searchSlot:x.searchSlot,searchField:x.searchField,idleSlot:x.makeFilterSlot,count:l,onCancel:f,onDelete:()=>n.start("delete"),onMove:()=>n.start("move"),onOrganize:()=>n.start("organize"),onJunk:m?()=>n.start("junk"):void 0,onMarkRead:()=>n.start("markRead"),overflowSlot:p.accountId&&p.mailboxId&&l>0&&b.length>0?a.jsx(Js,{accountId:p.accountId,mailboxId:p.mailboxId,messageIds:N}):void 0,selectAll:v,notice:A});return a.jsx(ws,{...e,selectionBar:C,paneOverlay:a.jsx(Ms,{verb:n.verb,accountId:p.accountId,mailboxId:p.mailboxId,selection:D,selectionRestriction:p.restriction,onFinished:f}),children:r})}function It({accounts:e,selectedMessageId:s,onOpenThread:n,commandsRef:r,onTriageContextChange:d,onDeleteMessages:l}){const{searchQuery:f,searchInput:u,resultFolderIndex:h,onSearchChange:S}=G(),p=ls(),I=Ys(),b=$s(),N=ss(),D=oe(),m=o.useMemo(()=>ft(e.filter(t=>!t.muted?.value)),[e]),[v,A]=o.useState("all"),[C,x]=o.useState("all"),[W,E]=o.useState(new Set),[Z,j]=o.useState(!1),P=o.useCallback(t=>{E(i=>{const c=new Set(i);return c.has(t)?c.delete(t):c.add(t),c})},[]),U=o.useCallback(()=>E(new Set),[]),T=u.trim().length>0,R=o.useMemo(()=>dt({query:u,ownFilters:W}),[u,W]),w=o.useMemo(()=>ut({query:u,ownCategory:C}),[u,C]),O=o.useCallback(t=>{if(!T||!Oe(t)){P(t);return}const i=it(u,t);i!==void 0&&S(i)},[T,u,S,P]),q=o.useCallback(t=>{if(!T){x(t);return}S(lt(u,t))},[T,u,S]),z=o.useCallback(()=>{x("all"),A("all"),U(),T&&S(ct(u))},[T,u,S,U]),{data:B,isLoading:Q,isError:g,refetch:L}=ae({...ne(),staleTime:6e4}),M=Ws({queries:m.map(t=>({...ts({path:{accountId:t.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),V=o.useMemo(()=>{const t=new Map;for(let i=0;i<m.length;i++){const c=m[i].accountId,Ge=(M[i]?.data?.items??[]).reduce((Je,Ze)=>Je+(Ze.unseenCount??0),0);t.set(c,Ge)}return t},[m,M]),Ee=o.useMemo(()=>m.filter((t,i)=>{const c=M[i];return c?.isError?!as(c.error):!1}),[m,M]),{freeText:k,tokens:K}=cs(f.trim().toLowerCase(),p),{data:le,isFetching:Pe}=ae({...ne({query:{query:k,limit:ht}}),enabled:k.length>0,staleTime:3e4}),y=o.useMemo(()=>{const t=ve(B?.items??[]).map(ye);return(k?us(t.filter(c=>ms(c,k)),ve(le?.items??[]).map(ye)):t).filter(c=>(v==="all"||c.accountId===v)&&fs(c,K))},[B,le,v,k,K]),{bodyRows:ce,briefSpamOffer:X}=o.useMemo(()=>{if(!k)return{bodyRows:y,briefSpamOffer:void 0};const t=y.map(F=>Se(F,h)),{spam:i}=hs(t);if(i.length===0)return{bodyRows:y,briefSpamOffer:void 0};const c=new Set(i.map(F=>F.id));return{bodyRows:y.filter(F=>!c.has(F.id)),briefSpamOffer:gs(t)}},[y,k,h]),de=o.useMemo(()=>xs(ce),[ce]),ue=o.useCallback((t,i)=>{const c=y.find(F=>F.id===t)?.threadId;c&&n?.({threadId:c,messageId:t},i)},[y,n]),qe=o.useCallback(t=>{const i=t.threadId??y.find(c=>c.id===t.id)?.threadId;i&&n?.({threadId:i,messageId:t.id})},[y,n]),ee=o.useMemo(()=>m.length<=1?[]:[{id:"all",label:"All",active:v==="all"},...m.map(t=>({id:t.accountId,label:t.email.split("@")[0]??t.email,count:V.get(t.accountId),active:v===t.accountId}))],[m,V,v]),H=o.useMemo(()=>e.filter(t=>t.muted?.value).length,[e]),ze=o.useMemo(()=>Array.from(V.values()).reduce((t,i)=>t+i,0),[V]),se=o.useMemo(()=>m.map(t=>t.accountId),[m]),{hasNewMail:me}=qs(),{state:fe,errorMessage:he,refresh:ge}=zs(se,{onSettled:()=>L()}),Qe=o.useMemo(()=>a.jsx(Qs,{state:fe,onRefresh:ge,label:"Refresh daily brief",errorMessage:he,hasUpdate:me(se)}),[fe,ge,he,me,se]),te=o.useMemo(()=>y.filter(t=>(w==="all"||t.category===w)&&ns(t,R)).map(t=>Se(t,h)),[y,w,R,h]),{hits:xe,isLoading:He}=Gs(),_e=o.useMemo(()=>{const t=new Map;for(const c of B?.items??[])t.set(c.messageId,c.threadId);const i=te.map(c=>t.get(c.id)).filter(c=>c!=null);return ps(xe,i,h)},[xe,te,B,h]),$e=o.useMemo(()=>{const t=Is(ee.map(i=>({id:i.id,label:i.label,count:i.count,active:i.active})));return{categories:t.categories,filters:t.filters,sources:t.sources,sourcesNote:H>0?`+${H} muted`:void 0,selectedCategory:w,activeFilters:R,expanded:Z,onExpandedChange:j,onSelectCategory:i=>q(i),onSelectSource:A,onToggleFilter:i=>O(i),onClear:z}},[ee,H,w,R,Z,O,q,z]),pe=de.length===0&&v==="all"&&k.length===0&&K.length===0,We=o.useMemo(()=>m.map(t=>t.accountId),[m]),Ue=o.useMemo(()=>m.some(t=>Hs(t.syncPhase)),[m]),Y=_s(We,pe||Ue),Ie=a.jsxs("div",{className:"h-full overflow-y-auto",children:[a.jsx(je,{}),a.jsx(je,{})]}),be=!Q&&!g&&!pe,Ve=bs({tier:b,hasLiveInput:T,hasCommittedQuery:f.trim().length>0,bodyRendersCommittedResults:!0}),Ye=be?a.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[X&&a.jsx(vs,{count:X.count,onScopeToSpam:()=>D({to:"/mail/$mailboxId",params:{mailboxId:X.mailboxId},search:{q:f||void 0}})}),a.jsx("div",{className:"min-h-0 flex-1",children:a.jsx(os,{sections:de,briefCategory:w,Row:ys,selectedThreadId:s,onSelectThread:ue,onSelectBriefCategory:q,sources:ee,sourcesNote:H>0?`+${H} muted`:void 0,onSelectSource:A,activeFilters:R,onToggleFilter:O,onClearFilters:z})})]}):Q?Ie:g?a.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 py-12 text-sm text-fg-muted",children:[a.jsx(Re,{className:"size-8 text-danger"}),a.jsx("p",{children:"Couldn't load your messages"}),a.jsxs("button",{type:"button",onClick:()=>L(),className:"flex items-center gap-1 text-accent underline text-xs",children:[a.jsx(Us,{className:"size-3.5"}),"Try again"]})]}):Y.resolved?a.jsx(tt,{sync:Y.syncing?{synced:Y.synced,total:Y.total}:void 0}):Ie;return a.jsx(rs,{hasSheet:be&&!Ve,children:a.jsx(Ss,{selectedMessageId:s,onOpen:ue,onDeleteMessages:l,onSelectionVerb:N.start,wizardOpen:N.isOpen,commandsRef:r,onTriageContextChange:d,children:a.jsx(pt,{wizard:N,header:{title:"Daily brief",unreadCount:ze,footer:I?a.jsx(Cs,{}):void 0,searchFilter:$e,searchResults:te,searchLoading:Q||Pe,relatedResults:_e,relatedLoading:He,onSelectSearchResult:qe,searchResultsInBody:!0,refreshControl:Qe},rows:y,children:a.jsxs("div",{className:"flex h-full flex-col",children:[Ee.map(t=>a.jsx(gt,{accountEmail:t.email,accountId:t.accountId},t.accountId)),a.jsx("div",{className:"min-h-0 flex-1",children:Ye})]})})})})}const Le=o.createContext(null);function J(){const e=o.useContext(Le);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function bt({thread:e,children:s}){const n=oe(),r=Zs(),{searchInput:d}=G(),l=e?.threadId,f=e?.messageId,{data:u}=ae({...ne(),staleTime:6e4}),h=o.useMemo(()=>u?.items??[],[u]),S=o.useMemo(()=>{if(l)return h.find(g=>g.messageId===f)??h.find(g=>g.threadId===l)},[h,l,f]),p=Fs(l,f),I=S??p,b=f??I?.messageId,N=o.useMemo(()=>{if(l)return{threadId:l,mailboxId:I?.mailboxId??"",subject:I?.subject,messageId:b,authenticity:I?.authenticity}},[l,I,b]),D=o.useCallback((g,L)=>{n({to:"/mail/brief/$threadId/$messageId",params:g,replace:L?.replace,search:M=>({...M,q:d||void 0}),hash:r})},[n,r,d]),m=o.useCallback(()=>{n({to:"/mail/brief",search:g=>g,hash:r})},[n,r]),v=o.useCallback(g=>{b&&g.includes(b)&&m()},[b,m]),A=Ce({thread:I,onAfterOptimisticRemove:v}),C=Ns(),{deleteMessages:x}=As({mailboxId:I?.mailboxId??"",messages:h,onAfterOptimisticRemove:v}),{toggleReadFor:W}=Os({mailboxId:I?.mailboxId??"",messages:h}),E=C.focusedMessageId,j=o.useMemo(()=>h.find(g=>g.messageId===E),[h,E])??I,P=Ce({thread:j}),U=Ks(),T=Xs(),R=et(),w=o.useMemo(()=>st(R,l,b),[R,l,b]),O=o.useMemo(()=>{if(j)return g=>R({threadId:j.threadId,messageId:j.messageId,mode:g})},[R,j]),{nextMessageId:q,previousMessageId:z}=Bs({context:C,orderedIds:C.orderedIds,selectedMessageId:b,enabled:!U&&!T,onClose:m,handlers:{reply:()=>O?.("reply"),replyAll:()=>O?.("reply-all"),forward:()=>O?.("forward"),delete:()=>{C.listCommandsRef.current?.requestVerb("delete")||P.deleteThread()},toggleStar:P.toggleStar,toggleRead:()=>{C.listCommandsRef.current?.requestVerb("markRead")||j&&W([j.messageId],!j.isRead)},goFlagged:()=>n({to:"/mail/flagged"}),goSettings:()=>n({to:"/settings"})}}),B=o.useCallback(g=>{if(!g)return;const L=h.find(M=>M.messageId===g);return L?{threadId:L.threadId,messageId:g}:void 0},[h]),Q={selectedMessageId:b,selectedThread:I,conversation:N,onOpenThread:D,onCloseThread:m,nextThread:B(q),previousThread:B(z),actions:A,onReply:w,triage:C,onDeleteMessages:x,handleDeselectIfRemoved:v};return a.jsx(Le.Provider,{value:Q,children:s})}function De(){const{selectedMessageId:e,onOpenThread:s,triage:n,onDeleteMessages:r}=J(),{accounts:d}=G();return a.jsx(It,{accounts:d,selectedMessageId:e,onOpenThread:s,commandsRef:n.listCommandsRef,onTriageContextChange:n.onTriageContextChange,onDeleteMessages:r})}function vt(){const{conversation:e,selectedThread:s,actions:n,onReply:r,handleDeselectIfRemoved:d}=J(),l=!!e,f=Es(e?.threadId);return a.jsxs(a.Fragment,{children:[a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(Ps,{hasThread:l,intelligenceOpen:f.isShowing,canToggleIntelligence:f.canToggle,onToggleIntelligence:f.toggle,onReply:r?()=>r("reply"):void 0,onReplyAll:r?()=>r("reply-all"):void 0,onForward:r?()=>r("forward"):void 0,onDelete:l?n.deleteThread:void 0,onToggleStar:l?n.toggleStar:void 0,isStarred:n.isStarred,moveContext:l&&n.accountId&&n.mailboxId?{accountId:n.accountId,currentMailboxId:n.mailboxId,onMove:n.moveThread}:void 0}),a.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?a.jsx(Me,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:f.open}):a.jsx(ds,{})})]}),a.jsx(ke,{isOpen:f.drawerOpen,onClose:f.closeDrawer,thread:s,mailboxId:s?.mailboxId,accountId:s?.accountId,onAfterOptimisticRemove:d})]})}function yt(){const{selectedThread:e,handleDeselectIfRemoved:s}=J(),{onToggleIntelligence:n}=G();return a.jsx(Ds,{onClose:n,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:s})}function St(){const{selectedThread:e,conversation:s,onOpenThread:n,onCloseThread:r,nextThread:d,previousThread:l,handleDeselectIfRemoved:f}=J(),u=Ls(s?.threadId??null);return s?a.jsxs(a.Fragment,{children:[a.jsx(Me,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:r,onOpenIntelligence:u.toggle,onSwipeNext:d?()=>n(d):void 0,onSwipePrevious:l?()=>n(l):void 0,mobileIntelligenceOpen:u.isOpen}),a.jsx(ke,{isOpen:u.isOpen,onClose:u.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:f})]}):a.jsx("div",{className:"h-full",children:a.jsx(De,{})})}const At=Object.assign(bt,{List:De,Reading:vt,Intelligence:yt,Phone:St});export{At as B};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t,e as r}from"./index-
|
|
1
|
+
import{j as t,e as r}from"./index-TkI6PAgL.js";const d=e=>e instanceof Error?e.message:typeof e=="string"?e:typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"?e.message:"An unexpected error occurred",l=({title:e="Couldn't load content",error:a,onRetry:s,variant:i="block"})=>{const n=d(a);return i==="inline"?t.jsxs("div",{role:"alert",className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[t.jsx(r,{className:"size-4 shrink-0 text-danger mt-0.5","aria-hidden":"true"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-fg-muted mt-0.5 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"shrink-0 text-sm font-medium text-accent hover:underline",children:"Retry"})]}):t.jsxs("div",{role:"alert",className:"flex flex-col items-center justify-center gap-3 p-8 text-center",children:[t.jsx(r,{className:"size-8 text-danger","aria-hidden":"true"}),t.jsxs("div",{children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-sm text-fg-muted mt-1 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"inline-flex items-center rounded-md border border-line bg-canvas px-4 py-2 text-sm font-medium hover:bg-surface-raised transition-colors",children:"Retry"})]})};export{l as E,d as f};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d4 as U,r,cq as X,l as H,bb as Y,aF as Z,aG as ee,j as n,m as te}from"./index-
|
|
1
|
+
import{d4 as U,r,cq as X,l as H,bb as Y,aF as Z,aG as ee,j as n,m as te}from"./index-TkI6PAgL.js";import{u as se,p as ae,R as ne}from"./useSearchTokenContext-DQ5NUt1n.js";import{E as re,a7 as oe,F as de,at as ie,a8 as le,b as ce,M as ue,af as ge,au as he,ah as me,s as fe,I as Ie,N as V,L as pe,J as xe,d as Te,X as be,Y as ve,Z as K,_ as W,$ as ye,a0 as Re,a1 as Ce}from"./MailListHeader-munUD_Z_.js";import{u as Se,b as je,a as we}from"./MailViewChrome-BbuEwZkl.js";import{f as Fe}from"./ErrorState-xveqe4NU.js";import{u as Me}from"./useMediaQuery-8XUOgNnp.js";import{o as Pe,f as Oe,h as ke,p as Le,r as Ne}from"./useMessageBodyContent-Di1auION.js";const Ae=()=>X({query:{starred:!0,order:"desc"}});function _(){const{data:e,isLoading:a,isError:t,error:d,refetch:m,fetchNextPage:s,hasNextPage:l,isFetchingNextPage:c}=Se({queryKey:Ae(),queryFn:async({pageParam:I})=>{const{data:u}=await U({query:{starred:!0,order:"desc",continuationToken:I},throwOnError:!0});return u},initialPageParam:void 0,getNextPageParam:I=>I.continuationToken,staleTime:6e4});return{threads:r.useMemo(()=>(e?.pages??[]).flatMap(I=>I.items??[]),[e]),isLoading:a,isError:t,error:d,refetch:m,fetchNextPage:s,hasNextPage:l,isFetchingNextPage:c}}const De=e=>{const a=new Set;return e.filter(t=>a.has(t.threadId)?!1:(a.add(t.threadId),!0))},Ee={unread:e=>!e.isRead,attachment:e=>e.hasAttachment===!0};function Be({rows:e,verb:a}){const{selectedIds:t,exitSelection:d}=me(),m=r.useMemo(()=>e.filter(s=>t.has(s.id)).map(s=>({id:s.id,sender:s.fromName,email:s.fromEmail,subject:s.subject,date:s.timeLabel})),[e,t]);return n.jsx(fe,{verb:a,selection:m,selectionRestriction:"spansAccounts",onFinished:d})}function qe({selectedMessageId:e,onOpenThread:a,commandsRef:t,onTriageContextChange:d,onDeleteMessages:m}){const{searchQuery:s,resultFolderIndex:l}=H(),c=se(),M=Me(),I=Y(),[u,f]=r.useState("all"),[R,P]=r.useState(new Set),v=r.useCallback(o=>{P(h=>{const p=new Set(h);return p.has(o)?p.delete(o):p.add(o),p})},[]),C=r.useCallback(()=>{f("all"),P(new Set)},[]),{threads:O,isLoading:T,isError:k,error:B,refetch:L,fetchNextPage:Q,hasNextPage:x,isFetchingNextPage:S}=_(),{freeText:y,tokens:N}=ae(s.trim().toLowerCase(),c),g=r.useMemo(()=>{const o=Array.from(R).map(h=>Ee[h]).filter(h=>h!=null);return De(O).map(re).filter(h=>(u==="all"||h.category===u)&&o.every(p=>p(h))&&(!y||oe(h,y))&&de(h,N))},[O,u,R,y,N]),j=r.useCallback((o,h)=>{const p=g.find(J=>J.id===o)?.threadId;p&&a?.({threadId:p,messageId:o},h)},[g,a]),w=r.useCallback(o=>{const h=o.threadId??g.find(p=>p.id===o.id)?.threadId;h&&a?.({threadId:h,messageId:o.id})},[g,a]),q=r.useMemo(()=>ie(),[]),z=r.useMemo(()=>g.map(o=>le(o,l)),[g,l]),A=r.useMemo(()=>g.filter(o=>!o.isRead).length,[g]),D=T?"loading":k?"error":g.length===0?"empty":"ready",i=r.useCallback(()=>{const o=Z(ee());window.open(o,"_blank","noopener,noreferrer")},[]),b=ce(),F=n.jsx("div",{className:"flex h-full min-h-0 flex-col",children:n.jsxs("div",{className:"flex-1 overflow-y-auto",children:[n.jsx("div",{className:"divide-y divide-line",children:g.map(o=>n.jsx(ue,{thread:o,active:o.id===e,onClick:()=>j(o.id)},o.id))}),x?n.jsx("button",{type:"button",className:"w-full py-3 text-sm text-muted hover:text-fg disabled:opacity-50",onClick:()=>Q(),disabled:S,children:S?"Loading…":"Load more"}):null]})});return n.jsx(je,{title:"Starred",unreadCount:A,preset:q,selectedCategory:u,activeFilters:R,onSelectCategory:f,onToggleFilter:v,onClearFilters:C,searchResults:z,searchLoading:T,onSelectSearchResult:w,searchResultsInBody:!0,children:n.jsxs(ge,{selectedMessageId:e,onOpen:j,onDeleteMessages:m,onSelectionVerb:I.start,wizardOpen:I.isOpen,commandsRef:t,onTriageContextChange:d,children:[n.jsx(we,{listTitle:"Starred",sections:[{id:"flagged",threads:g}],flatList:!0,hideHeader:!0,listState:b.searchResults?"ready":D,searchQuery:y?s:void 0,errorMessage:k?Fe(B):void 0,onRetry:()=>L(),onReportError:i,selectedThreadId:e,onSelectThread:j,isDesktop:M,selectionBar:n.jsx(he,{title:"Starred"}),listBody:b.searchResults??(D==="ready"?F:void 0)}),n.jsx(Be,{rows:g,verb:I.verb})]})})}const $=r.createContext(null);function E(){const e=r.useContext($);if(!e)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return e}function ze({thread:e,children:a}){const t=te(),d=Pe(),{searchInput:m}=H(),s=e?.threadId,l=e?.messageId,{threads:c}=_(),M=r.useMemo(()=>{if(s)return c.find(i=>i.messageId===l)??c.find(i=>i.threadId===s)},[c,s,l]),I=Ie(s,l),u=M??I,f=l??u?.messageId,R=r.useMemo(()=>{if(s)return{threadId:s,mailboxId:u?.mailboxId??"",subject:u?.subject,messageId:f,authenticity:u?.authenticity}},[s,u,f]),P=r.useCallback((i,b)=>{t({to:"/mail/flagged/$threadId/$messageId",params:i,replace:b?.replace,search:F=>({...F,q:m||void 0}),hash:d})},[t,d,m]),v=r.useCallback(()=>{t({to:"/mail/flagged",search:i=>i,hash:d})},[t,d]),C=r.useCallback(i=>{f&&i.includes(f)&&v()},[f,v]),O=V({thread:u,onAfterOptimisticRemove:C}),T=pe(),{deleteMessages:k}=xe({mailboxId:u?.mailboxId??"",messages:c,onAfterOptimisticRemove:C}),{toggleReadFor:B}=Te({mailboxId:u?.mailboxId??"",messages:c}),L=T.focusedMessageId,x=r.useMemo(()=>c.find(i=>i.messageId===L),[c,L])??u,S=V({thread:x}),y=Oe(),N=ke(),g=Le(),j=r.useMemo(()=>Ne(g,s,f),[g,s,f]),w=r.useMemo(()=>{if(x)return i=>g({threadId:x.threadId,messageId:x.messageId,mode:i})},[g,x]),{nextMessageId:q,previousMessageId:z}=be({context:T,orderedIds:T.orderedIds,selectedMessageId:f,enabled:!y&&!N,onClose:v,handlers:{reply:()=>w?.("reply"),replyAll:()=>w?.("reply-all"),forward:()=>w?.("forward"),delete:()=>{T.listCommandsRef.current?.requestVerb("delete")||S.deleteThread()},toggleStar:S.toggleStar,toggleRead:()=>{T.listCommandsRef.current?.requestVerb("markRead")||x&&B([x.messageId],!x.isRead)},goBrief:()=>t({to:"/mail/brief"}),goSettings:()=>t({to:"/settings"})}}),A=r.useCallback(i=>{if(!i)return;const b=c.find(F=>F.messageId===i);return b?{threadId:b.threadId,messageId:i}:void 0},[c]),D={selectedMessageId:f,selectedThread:u,conversation:R,onOpenThread:P,onCloseThread:v,nextThread:A(q),previousThread:A(z),actions:O,onReply:j,triage:T,onDeleteMessages:k,handleDeselectIfRemoved:C};return n.jsx($.Provider,{value:D,children:a})}function G(){const{selectedMessageId:e,onOpenThread:a,triage:t,onDeleteMessages:d}=E();return n.jsx(qe,{selectedMessageId:e,onOpenThread:a,commandsRef:t.listCommandsRef,onTriageContextChange:t.onTriageContextChange,onDeleteMessages:d})}function He(){const{conversation:e,selectedThread:a,actions:t,onReply:d,handleDeselectIfRemoved:m}=E(),s=!!e,l=Re(e?.threadId);return n.jsxs(n.Fragment,{children:[n.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[n.jsx(Ce,{hasThread:s,intelligenceOpen:l.isShowing,canToggleIntelligence:l.canToggle,onToggleIntelligence:l.toggle,onReply:d?()=>d("reply"):void 0,onReplyAll:d?()=>d("reply-all"):void 0,onForward:d?()=>d("forward"):void 0,onDelete:s?t.deleteThread:void 0,onToggleStar:s?t.toggleStar:void 0,isStarred:t.isStarred,moveContext:s&&t.accountId&&t.mailboxId?{accountId:t.accountId,currentMailboxId:t.mailboxId,onMove:t.moveThread}:void 0}),n.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?n.jsx(K,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:l.open}):n.jsx(ne,{})})]}),n.jsx(W,{isOpen:l.drawerOpen,onClose:l.closeDrawer,thread:a,mailboxId:a?.mailboxId,accountId:a?.accountId,onAfterOptimisticRemove:m})]})}function Qe(){const{selectedThread:e,handleDeselectIfRemoved:a}=E(),{onToggleIntelligence:t}=H();return n.jsx(ye,{onClose:t,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:a})}function Ve(){const{selectedThread:e,conversation:a,onCloseThread:t,onOpenThread:d,nextThread:m,previousThread:s,handleDeselectIfRemoved:l}=E(),c=ve(a?.threadId??null);return a?n.jsxs(n.Fragment,{children:[n.jsx(K,{threadId:a.threadId,mailboxId:a.mailboxId,subject:a.subject,selectedMessageId:a.messageId,authenticity:a.authenticity,onBack:t,onOpenIntelligence:c.toggle,onSwipeNext:m?()=>d(m):void 0,onSwipePrevious:s?()=>d(s):void 0,mobileIntelligenceOpen:c.isOpen}),n.jsx(W,{isOpen:c.isOpen,onClose:c.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:l})]}):n.jsx("div",{className:"h-full",children:n.jsx(G,{})})}const Xe=Object.assign(ze,{List:G,Reading:He,Intelligence:Qe,Phone:Ve});export{Xe as F};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as n,s as f,Q as m,j as e,X as N}from"./index-
|
|
1
|
+
import{r as n,s as f,Q as m,j as e,X as N}from"./index-TkI6PAgL.js";import{E as u}from"./ErrorState-xveqe4NU.js";import{D as r,C as x,u as k}from"./index-D25kY32_.js";import{u as w}from"./useMediaQuery-8XUOgNnp.js";import{k as p,s as h,t as C}from"./useMessageBodyContent-Di1auION.js";import{C as E}from"./confirm-dialog-DEuMA6ic.js";const b=t=>t?"Draft":"New Message",I=()=>{const t=n.useRef(!1);return n.useCallback(()=>{const s=document.querySelector("[data-subject-field]")?.value??"",o=(document.querySelector('[data-testid="compose-body"]')?.textContent??"").replace(/--\s*/g,"").trim();return t.current=s.trim().length>0||o.length>0,t.current},[])},S=()=>{const t=p(),i=h(),s=C(),a=I(),[l,o]=n.useState(!1),{isError:d,error:c,refetch:g}=f({...m(),staleTime:1/0}),j=n.useCallback(D=>{D||(a()?o(!0):s())},[s,a]),y=n.useCallback(()=>{o(!1),s()},[s]),v=n.useCallback(()=>{o(!1)},[]);return e.jsxs(r.Root,{open:!0,onOpenChange:j,children:[e.jsxs(r.Portal,{children:[e.jsx(r.Overlay,{className:"fixed inset-0 z-40 bg-black/40"}),e.jsxs(r.Content,{className:"fixed inset-x-0 bottom-0 z-50 flex flex-col rounded-t-lg bg-canvas pb-[env(safe-area-inset-bottom,0px)]",style:{height:"95dvh"},children:[e.jsx(r.Handle,{className:"mx-auto mt-2 mb-1 h-1.5 w-12 rounded-full bg-fg-muted/30"}),e.jsx(r.Title,{className:"px-4 py-2 text-base font-semibold border-b border-line",children:b(t)}),d?e.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:e.jsx(u,{title:"Couldn't load compose",error:c,onRetry:()=>{g()}})}):e.jsx("div",{className:"flex-1 overflow-hidden",children:e.jsx(x,{mode:"new",outboxMessageId:t,onDraftCreated:i,onClose:s})})]})]}),e.jsx(E,{isOpen:l,title:"Discard draft?",description:"Your message has unsaved content. Are you sure you want to discard it?",confirmLabel:"Discard",cancelLabel:"Keep editing",destructive:!0,onConfirm:y,onCancel:v})]})},q=()=>{const t=p(),i=h(),s=C(),a=w(),{isError:l,error:o,refetch:d}=f({...m(),staleTime:1/0});if(k({bindings:[{key:"Escape",handler:s,preventDefault:!0}]}),!a)return e.jsx(S,{});const c=e.jsxs("header",{className:"flex items-center justify-between gap-2 px-4 py-3 border-b border-line shrink-0",children:[e.jsx("div",{className:"flex items-center gap-2 min-w-0",children:e.jsx("h2",{className:"text-lg font-semibold truncate",children:b(t)})}),e.jsx("button",{type:"button",onClick:s,className:"p-2 rounded-md hover:bg-surface-raised transition-colors min-h-11 min-w-11 inline-flex items-center justify-center","aria-label":"Close",children:e.jsx(N,{className:"size-5"})})]});return l?e.jsxs("div",{className:"h-full flex flex-col bg-canvas",children:[c,e.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:e.jsx(u,{title:"Couldn't load compose",error:o,onRetry:()=>{d()}})})]}):e.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-canvas",children:[c,e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e.jsx(x,{mode:"new",outboxMessageId:t,onDraftCreated:i,onClose:s})})]})};export{q as F};
|