@remit/web-client-dist 0.0.335 → 0.0.337
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-zIY42ctU.js → BriefPane-qa0MIXWV.js} +1 -1
- package/assets/{ErrorState-slnnM2p6.js → ErrorState-Cxo3fVvx.js} +1 -1
- package/assets/{FlaggedPane-COjpYONL.js → FlaggedPane-P2hVt1sR.js} +1 -1
- package/assets/{MailListHeader-D-HkMzaC.js → MailListHeader-Nb9izl_F.js} +3 -3
- package/assets/{MailViewChrome-CqPW1_KL.js → MailViewChrome-RL9UB34E.js} +1 -1
- package/assets/{MailboxPane-CjOcjq2L.js → MailboxPane-Y0QCECzQ.js} +1 -1
- package/assets/{NavMenuButton-B1uzKj1s.js → NavMenuButton-CLnauqPV.js} +1 -1
- package/assets/{OnboardingWizard-Bt7R_PNY.js → OnboardingWizard-DRX-L3C2.js} +1 -1
- package/assets/{OutboxPane-tqQlXOzV.js → OutboxPane-BdjLk-C_.js} +1 -1
- package/assets/_mailboxId-CQoGbuz1.js +1 -0
- package/assets/_messageId-B05XkRF5.js +1 -0
- package/assets/_messageId-C09jB3H_.js +1 -0
- package/assets/_messageId-RDOFTHct.js +1 -0
- package/assets/_outboxMessageId-BmuQXtGK.js +1 -0
- package/assets/_threadId-D-iY1snh.js +1 -0
- package/assets/_threadId-D98m6qFp.js +1 -0
- package/assets/_threadId-DJnR2LoO.js +1 -0
- package/assets/{account-form-helpers-CetgbtcE.js → account-form-helpers-DGU4NIT4.js} +1 -1
- package/assets/{accounts-COeRej8_.js → accounts-Ba8-ZFl_.js} +1 -1
- package/assets/{advanced-CNdOaTM7.js → advanced-PuU-YZcS.js} +1 -1
- package/assets/{appearance-BieoHVSd.js → appearance-CYnuifdt.js} +1 -1
- package/assets/{avatar-CzdBHYZK.js → avatar-C5PmB_EI.js} +1 -1
- package/assets/{bottom-sheet-C403VJS5.js → bottom-sheet-CO75NUgO.js} +1 -1
- package/assets/brief-CNd400AH.js +1 -0
- package/assets/{brief-BRMbZx7t.js → brief-CT9SrRVC.js} +1 -1
- package/assets/{browser-ponyfill-B51kbsGS.js → browser-ponyfill-hmQOgKM3.js} +1 -1
- package/assets/{circle-check-DHi5b8cK.js → circle-check-B3gw_3Ro.js} +1 -1
- package/assets/{circle-check-big-iA1YztRt.js → circle-check-big-Co4azfdq.js} +1 -1
- package/assets/{circle-help-CLwLaazy.js → circle-help-BCvtXNjF.js} +1 -1
- package/assets/{clock-CFT3-iQ0.js → clock-BGbbTR9M.js} +1 -1
- package/assets/{confirm-dialog-BAk4C_D3.js → confirm-dialog-Csw7CqUT.js} +1 -1
- package/assets/{download-BBxaHvuy.js → download-CKNPuBCg.js} +1 -1
- package/assets/{filters-CIQOFx1i.js → filters-Br818YgS.js} +1 -1
- package/assets/flagged-B2qg_fiI.js +1 -0
- package/assets/{flagged-DSYBu8cc.js → flagged-CAGy_YWn.js} +1 -1
- package/assets/{folders-BLTm_4j_.js → folders-C9H4ZiBJ.js} +1 -1
- package/assets/index-B05XkRF5.js +1 -0
- package/assets/index-Bq6a31Z9.js +1 -0
- package/assets/index-C09jB3H_.js +1 -0
- package/assets/{index-C0YPX989.js → index-DEXImZSP.js} +4 -4
- package/assets/index-DV24rLD0.js +1 -0
- package/assets/index-DW7V29aR.js +1 -0
- package/assets/index-Dawu8JkU.js +1 -0
- package/assets/index-DlkYycLP.js +1 -0
- package/assets/index-ipXhqBj0.js +1 -0
- package/assets/{kbd-CFaCqyO0.js → kbd-CA35HBZD.js} +1 -1
- package/assets/{labels-BgCme6sK.js → labels-C5RDq75z.js} +1 -1
- package/assets/{mail-CMELYMG4.js → mail-BR-c8vnl.js} +1 -1
- package/assets/{menu-CtIjAfEY.js → menu-BFhXuEK8.js} +1 -1
- package/assets/{move-options-CANOaIS7.js → move-options-DJTQSJoc.js} +1 -1
- package/assets/{nav-link-BQNVMAhO.js → nav-link-BGPUkE24.js} +1 -1
- package/assets/{onboarding-DSb22dMH.js → onboarding-Dj8pD6RV.js} +1 -1
- package/assets/outbox-CEwQiAJh.js +1 -0
- package/assets/{pencil-COJyBwsF.js → pencil-BtfAKbKN.js} +1 -1
- package/assets/{rich-text-Bq9eHT7F.js → rich-text-CR_pdwqJ.js} +1 -1
- package/assets/{rotate-ccw-Cboz5Hh7.js → rotate-ccw-6QmeK9ZT.js} +1 -1
- package/assets/{row-actions-DEKCzwgV.js → row-actions-BhhavOse.js} +1 -1
- package/assets/{search-scope-B10WywUG.js → search-scope-CrXQTM9g.js} +1 -1
- package/assets/{search-token-index-BjepKVXL.js → search-token-index-HzD6MHJp.js} +1 -1
- package/assets/{search-view-D8KvB5If.js → search-view-ExRj3nwX.js} +1 -1
- package/assets/{senders-DN-eG1vw.js → senders-CkFHkATf.js} +1 -1
- package/assets/settings-FHmjsbR-.js +1 -0
- package/assets/{settings-screen-BEZWerOF.js → settings-screen-CQJh-xf-.js} +1 -1
- package/assets/{shield-check-Cwaz_-i0.js → shield-check-WoA7Uqox.js} +1 -1
- package/assets/{suggested-vips-C1hpOBNE.js → suggested-vips-CVCtzFT2.js} +1 -1
- package/assets/{use-match-media-CYZGZG-d.js → use-match-media-qBCYJz2o.js} +1 -1
- package/assets/{useDebouncedValue-CXm858bC.js → useDebouncedValue-BM9H0bdY.js} +1 -1
- package/assets/{useFilters-BuD_cJYW.js → useFilters-CNDqeuwy.js} +1 -1
- package/assets/{useLabels-RvPqj9cD.js → useLabels-DpjQB2m3.js} +1 -1
- package/assets/{useRefreshControl-BwV_nXjr.js → useRefreshControl-DgMvaW0l.js} +1 -1
- package/assets/{useSearchMirror-Bhi1dGR8.js → useSearchMirror-D5uJzaCm.js} +1 -1
- package/assets/{useSearchTokenContext-BVBJtTxU.js → useSearchTokenContext-CmJvOV-Z.js} +1 -1
- package/assets/{useSemanticSearch-DupZ7xYH.js → useSemanticSearch-Bhf16QYz.js} +1 -1
- package/assets/{useSignature-BUAJ4LUv.js → useSignature-B4QDHqqq.js} +1 -1
- package/index.html +1 -1
- package/package.json +1 -1
- package/assets/_mailboxId-DEKSVVlF.js +0 -1
- package/assets/_messageId-AJ2cAd5b.js +0 -1
- package/assets/_messageId-BPSntjEz.js +0 -1
- package/assets/_messageId-NJu-QBox.js +0 -1
- package/assets/_outboxMessageId-VGtkSmmd.js +0 -1
- package/assets/_threadId-BKKGJTTd.js +0 -1
- package/assets/_threadId-CIYPMYbW.js +0 -1
- package/assets/_threadId-D4FUicTr.js +0 -1
- package/assets/brief-Bx2fD4Jp.js +0 -1
- package/assets/flagged-DDuXDMiU.js +0 -1
- package/assets/index-BPSntjEz.js +0 -1
- package/assets/index-D8L5McYQ.js +0 -1
- package/assets/index-DVBSfEQH.js +0 -1
- package/assets/index-DgrIeYQO.js +0 -1
- package/assets/index-Dv-8LS5G.js +0 -1
- package/assets/index-GN_QxyBU.js +0 -1
- package/assets/index-NJu-QBox.js +0 -1
- package/assets/index-tcFohUOY.js +0 -1
- package/assets/outbox-CZXDAtcF.js +0 -1
- package/assets/settings-CMtVvum0.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as a,an as Ze,S as Xe,bo as et,o as B,bg as tt,p as ae,r as n,x as te,bp as se,v as st,w as at,bq as ot,br as nt,bs as rt,e as Re,bt as it,i as lt}from"./index-C0YPX989.js";import{s as Te,a as ct,b as we,u as dt,p as ut,R as mt}from"./useSearchTokenContext-BVBJtTxU.js";import{a5 as ve,G as ye,a6 as ft,a7 as ht,H as gt,a8 as Se,a9 as xt,aa as pt,ab as It,a4 as bt,ac as vt,ad as yt,ae as St,M as Ct,af as jt,ag as Rt,ah as Tt,g as wt,x as Mt,ai as kt,v as At,S as Nt,K as Ft,P as Ce,O as Bt,L as Ot,f as Lt,Z as Et,_ as Me,$ as qt,a0 as ke,a1 as Dt}from"./MailListHeader-D-HkMzaC.js";import{u as Pt,a as zt,R as Ht,i as _t,b as Qt}from"./useRefreshControl-BwV_nXjr.js";import{a as $t}from"./useLabels-RvPqj9cD.js";import{d as Wt,R as Gt}from"./search-token-index-BjepKVXL.js";import{d as Ut}from"./useFilters-BuD_cJYW.js";import{u as Vt,L as Yt}from"./useSemanticSearch-DupZ7xYH.js";function Jt({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(Ze,{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:Kt(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 Kt({synced:e,total:t}){return t>0?`${e.toLocaleString()} of ${t.toLocaleString()} messages downloaded. This list fills in as they arrive.`:"Downloading your messages. This list fills in as they arrive."}const Ae=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Ne="category",Zt={unclassified:"uncategorized"},D=e=>ct(e).map(t=>t.raw),q=e=>e.join(" "),oe=e=>{const t=we(e);if(t)return Ae.find(o=>o.name===t.name&&o.value===t.value.toLowerCase())?.id},ne=e=>{const t=we(e);if(!t||t.name!==Ne)return;const o=t.value.toLowerCase(),r=Zt[o];if(r)return r;if(!(!et(o)||o==="all"))return o},Fe=e=>Ae.find(t=>t.id===e),Be=e=>Fe(e)!==void 0,Xt=e=>{const t=new Set;for(const o of D(e)){const r=oe(o);r&&t.add(r)}return t},es=e=>{let t="all";for(const o of D(e)){const r=ne(o);r&&(t=r)}return t},ts=(e,t)=>{const o=Fe(t);if(!o)return;const r=D(e),c=r.filter(l=>oe(l)!==t);return c.length<r.length?q(c):q([...r,Te(o.name,o.value)])},ss=(e,t)=>{const o=D(e).filter(r=>!ne(r));return q(t==="all"?o:[...o,Te(Ne,t)])},as=e=>q(D(e).filter(t=>!oe(t)&&!ne(t))),Oe=e=>e.trim().length>0,os=e=>{if(!Oe(e.query))return e.ownFilters;const t=new Set(Xt(e.query));for(const o of e.ownFilters)Be(o)||t.add(o);return t},ns=e=>Oe(e.query)?es(e.query):e.ownCategory,rs=(e,t)=>e.createdAt!==t.createdAt?e.createdAt-t.createdAt:e.accountId.localeCompare(t.accountId),is=e=>[...e].sort(rs),ls=200,je=()=>a.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,t)=>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"})]})]},t))}),cs=({accountEmail:e})=>{const t=ae();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:()=>t({to:"/settings/accounts"}),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},ds=(e,t)=>{if(t.size===0)return{};const o=new Set,r=new Set;for(const l of e)t.has(l.id)&&(l.accountId&&o.add(l.accountId),l.mailboxId&&r.add(l.mailboxId));if(o.size>1)return{moveDisabledHint:"Move only works within one account — clear selection or pick messages from a single account"};const c=o.size===1?[...o][0]:void 0;return r.size>1?{accountId:c,moveDisabledHint:`Move only works within one folder — this selection spans ${r.size} folders`}:{accountId:c,mailboxId:r.size===1?[...r][0]:void 0}};function us({header:e,rows:t,wizard:o,children:r}){const{selectedIds:c,selectedCount:l,exitSelection:p,orderedIds:u,allSelected:x,toggleAllLoaded:y}=Tt(),m=n.useMemo(()=>ds(t,c),[t,c]),{junkMailboxId:S}=wt(m.accountId),{labels:O}=$t(m.accountId),M=n.useMemo(()=>Array.from(c),[c]),j=n.useMemo(()=>t.filter(g=>c.has(g.id)).map(g=>({id:g.id,sender:g.fromName,email:g.fromEmail,subject:g.subject,date:g.timeLabel})),[t,c]),h=Mt(S,m.mailboxId),I=n.useMemo(()=>u.length>0?{checked:x,indeterminate:l>0&&!x,onChange:y}:void 0,[u.length,x,l,y]),b=m.moveDisabledHint?{tone:"warning",text:m.moveDisabledHint}:void 0,F=g=>a.jsx(Nt,{title:g.title,navSlot:g.navSlot,titleMeta:g.titleMeta,searchSlot:g.searchSlot,searchField:g.searchField,idleSlot:g.makeFilterSlot,count:l,onCancel:p,onDelete:()=>o.start("delete"),onMove:()=>o.start("move"),onOrganize:()=>o.start("organize"),onJunk:h?()=>o.start("junk"):void 0,onMarkRead:()=>o.start("markRead"),overflowSlot:m.accountId&&m.mailboxId&&l>0&&O.length>0?a.jsx(Yt,{accountId:m.accountId,mailboxId:m.mailboxId,messageIds:M}):void 0,selectAll:I,notice:b});return a.jsx(kt,{...e,selectionBar:F,paneOverlay:a.jsx(At,{verb:o.verb,accountId:m.accountId,mailboxId:m.mailboxId,selection:j,crossAccount:m.moveDisabledHint!==void 0,onFinished:p}),children:r})}function ms({accounts:e,selectedMessageId:t,onOpenThread:o,commandsRef:r,onTriageContextChange:c,onDeleteMessages:l}){const{searchQuery:p,searchInput:u,resultFolderIndex:x,onSearchChange:y}=B(),m=dt(),S=Ut(),O=Wt(),M=tt(),j=ae(),h=n.useMemo(()=>is(e.filter(s=>!s.muted?.value)),[e]),[I,b]=n.useState("all"),[F,g]=n.useState("all"),[L,U]=n.useState(new Set),[k,P]=n.useState(!1),z=n.useCallback(s=>{U(i=>{const d=new Set(i);return d.has(s)?d.delete(s):d.add(s),d})},[]),H=n.useCallback(()=>U(new Set),[]),C=u.trim().length>0,A=n.useMemo(()=>os({query:u,ownFilters:L}),[u,L]),f=n.useMemo(()=>ns({query:u,ownCategory:F}),[u,F]),R=n.useCallback(s=>{if(!C||!Be(s)){z(s);return}const i=ts(u,s);i!==void 0&&y(i)},[C,u,y,z]),N=n.useCallback(s=>{if(!C){g(s);return}y(ss(u,s))},[C,u,y]),V=n.useCallback(()=>{g("all"),b("all"),H(),C&&y(as(u))},[C,u,y,H]),{data:_,isLoading:Y,isError:re,refetch:ie}=te({...se(),staleTime:6e4}),Q=st({queries:h.map(s=>({...at({path:{accountId:s.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),$=n.useMemo(()=>{const s=new Map;for(let i=0;i<h.length;i++){const d=h[i].accountId,Ye=(Q[i]?.data?.items??[]).reduce((Je,Ke)=>Je+(Ke.unseenCount??0),0);s.set(d,Ye)}return s},[h,Q]),qe=n.useMemo(()=>h.filter((s,i)=>{const d=Q[i];return d?.isError?!ot(d.error):!1}),[h,Q]),{freeText:T,tokens:J}=ut(p.trim().toLowerCase(),m),{data:le,isFetching:De}=te({...se({query:{query:T,limit:ls}}),enabled:T.length>0,staleTime:3e4}),v=n.useMemo(()=>{const s=ve(_?.items??[]).map(ye);return(T?ft(s.filter(d=>ht(d,T)),ve(le?.items??[]).map(ye)):s).filter(d=>(I==="all"||d.accountId===I)&>(d,J))},[_,le,I,T,J]),{bodyRows:ce,briefSpamOffer:K}=n.useMemo(()=>{if(!T)return{bodyRows:v,briefSpamOffer:void 0};const s=v.map(w=>Se(w,x)),{spam:i}=xt(s);if(i.length===0)return{bodyRows:v,briefSpamOffer:void 0};const d=new Set(i.map(w=>w.id));return{bodyRows:v.filter(w=>!d.has(w.id)),briefSpamOffer:pt(s)}},[v,T,x]),de=n.useMemo(()=>It(ce),[ce]),ue=n.useCallback((s,i)=>{const d=v.find(w=>w.id===s)?.threadId;d&&o?.({threadId:d,messageId:s},i)},[v,o]),Pe=n.useCallback(s=>{const i=s.threadId??v.find(d=>d.id===s.id)?.threadId;i&&o?.({threadId:i,messageId:s.id})},[v,o]),Z=n.useMemo(()=>h.length<=1?[]:[{id:"all",label:"All",active:I==="all"},...h.map(s=>({id:s.accountId,label:s.email.split("@")[0]??s.email,count:$.get(s.accountId),active:I===s.accountId}))],[h,$,I]),E=n.useMemo(()=>e.filter(s=>s.muted?.value).length,[e]),ze=n.useMemo(()=>Array.from($.values()).reduce((s,i)=>s+i,0),[$]),X=n.useMemo(()=>h.map(s=>s.accountId),[h]),{hasNewMail:me}=Pt(),{state:fe,errorMessage:he,refresh:ge}=zt(X,{onSettled:()=>ie()}),He=n.useMemo(()=>a.jsx(Ht,{state:fe,onRefresh:ge,label:"Refresh daily brief",errorMessage:he,hasUpdate:me(X)}),[fe,ge,he,me,X]),ee=n.useMemo(()=>v.filter(s=>(f==="all"||s.category===f)&&nt(s,A)).map(s=>Se(s,x)),[v,f,A,x]),{hits:xe,isLoading:_e}=Vt(),Qe=n.useMemo(()=>{const s=new Map;for(const d of _?.items??[])s.set(d.messageId,d.threadId);const i=ee.map(d=>s.get(d.id)).filter(d=>d!=null);return bt(xe,i,x)},[xe,ee,_,x]),$e=n.useMemo(()=>{const s=vt(Z.map(i=>({id:i.id,label:i.label,count:i.count,active:i.active})));return{categories:s.categories,filters:s.filters,sources:s.sources,sourcesNote:E>0?`+${E} muted`:void 0,selectedCategory:f,activeFilters:A,expanded:k,onExpandedChange:P,onSelectCategory:i=>N(i),onSelectSource:b,onToggleFilter:i=>R(i),onClear:V}},[Z,E,f,A,k,R,N,V]),pe=de.length===0&&I==="all"&&T.length===0&&J.length===0,We=n.useMemo(()=>h.map(s=>s.accountId),[h]),Ge=n.useMemo(()=>h.some(s=>_t(s.syncPhase)),[h]),W=Qt(We,pe||Ge),Ie=a.jsxs("div",{className:"h-full overflow-y-auto",children:[a.jsx(je,{}),a.jsx(je,{})]}),be=!Y&&!re&&!pe,Ue=yt({tier:O,hasLiveInput:C,hasCommittedQuery:p.trim().length>0,bodyRendersCommittedResults:!0}),Ve=be?a.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[K&&a.jsx(St,{count:K.count,onScopeToSpam:()=>j({to:"/mail/$mailboxId",params:{mailboxId:K.mailboxId},search:{q:p||void 0}})}),a.jsx("div",{className:"min-h-0 flex-1",children:a.jsx(rt,{sections:de,briefCategory:f,Row:Ct,selectedThreadId:t,onSelectThread:ue,onSelectBriefCategory:N,sources:Z,sourcesNote:E>0?`+${E} muted`:void 0,onSelectSource:b,activeFilters:A,onToggleFilter:R,onClearFilters:V})})]}):Y?Ie:re?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:()=>ie(),className:"flex items-center gap-1 text-accent underline text-xs",children:[a.jsx(Gt,{className:"size-3.5"}),"Try again"]})]}):W.resolved?a.jsx(Jt,{sync:W.syncing?{synced:W.synced,total:W.total}:void 0}):Ie;return a.jsx(it,{hasSheet:be&&!Ue,children:a.jsx(jt,{selectedMessageId:t,onOpen:ue,onDeleteMessages:l,onSelectionVerb:M.start,wizardOpen:M.isOpen,commandsRef:r,onTriageContextChange:c,children:a.jsx(us,{wizard:M,header:{title:"Daily brief",unreadCount:ze,footer:S?a.jsx(Rt,{}):void 0,searchFilter:$e,searchResults:ee,searchLoading:Y||De,relatedResults:Qe,relatedLoading:_e,onSelectSearchResult:Pe,searchResultsInBody:!0,refreshControl:He},rows:v,children:a.jsxs("div",{className:"flex h-full flex-col",children:[qe.map(s=>a.jsx(cs,{accountEmail:s.email,accountId:s.accountId},s.accountId)),a.jsx("div",{className:"min-h-0 flex-1",children:Ve})]})})})})}const Le=n.createContext(null);function G(){const e=n.useContext(Le);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function fs({thread:e,children:t}){const o=ae(),{searchInput:r}=B(),c=e?.threadId,l=e?.messageId,{data:p}=te({...se(),staleTime:6e4}),u=n.useMemo(()=>p?.items??[],[p]),x=n.useMemo(()=>{if(c)return u.find(f=>f.messageId===l)??u.find(f=>f.threadId===c)},[u,c,l]),y=Ft(c,l),m=x??y,S=l??m?.messageId,O=n.useMemo(()=>{if(c)return{threadId:c,mailboxId:m?.mailboxId??"",subject:m?.subject,messageId:S,authenticity:m?.authenticity}},[c,m,S]),M=n.useCallback((f,R)=>{o({to:"/mail/brief/$threadId/$messageId",params:f,replace:R?.replace,search:N=>({...N,q:r||void 0})})},[o,r]),j=n.useCallback(()=>{o({to:"/mail/brief",search:f=>f})},[o]),h=n.useCallback(f=>{S&&f.includes(S)&&j()},[S,j]),I=Ce({thread:m,onAfterOptimisticRemove:h}),b=Bt(),{deleteMessages:F}=Ot({mailboxId:m?.mailboxId??"",messages:u,onAfterOptimisticRemove:h}),{toggleReadFor:g}=Lt({mailboxId:m?.mailboxId??"",messages:u}),L=b.focusedMessageId,k=n.useMemo(()=>u.find(f=>f.messageId===L),[u,L])??m,P=Ce({thread:k}),{nextMessageId:z,previousMessageId:H}=Et({context:b,orderedIds:b.orderedIds,selectedMessageId:S,onClose:j,handlers:{reply:()=>I.requestCompose("reply"),replyAll:()=>I.requestCompose("reply_all"),forward:()=>I.requestCompose("forward"),delete:()=>{b.listCommandsRef.current?.requestVerb("delete")||P.deleteThread()},toggleStar:P.toggleStar,toggleRead:()=>{b.listCommandsRef.current?.requestVerb("markRead")||k&&g([k.messageId],!k.isRead)},goFlagged:()=>o({to:"/mail/flagged"}),goSettings:()=>o({to:"/settings"})}}),C=n.useCallback(f=>{if(!f)return;const R=u.find(N=>N.messageId===f);return R?{threadId:R.threadId,messageId:f}:void 0},[u]),A={selectedMessageId:S,selectedThread:m,conversation:O,onOpenThread:M,onCloseThread:j,nextThread:C(z),previousThread:C(H),actions:I,triage:b,onDeleteMessages:F,handleDeselectIfRemoved:h};return a.jsx(Le.Provider,{value:A,children:t})}function Ee(){const{selectedMessageId:e,onOpenThread:t,triage:o,onDeleteMessages:r}=G(),{accounts:c}=B();return a.jsx(ms,{accounts:c,selectedMessageId:e,onOpenThread:t,commandsRef:o.listCommandsRef,onTriageContextChange:o.onTriageContextChange,onDeleteMessages:r})}function hs(){const{conversation:e,actions:t}=G(),{intelligenceOpen:o,onToggleIntelligence:r}=B(),c=lt()?.showIntelligencePane??!1,l=!!e,p=c&&l;return a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(Dt,{hasThread:l,intelligenceOpen:p&&o,canToggleIntelligence:p,onToggleIntelligence:r,onReply:l?()=>t.requestCompose("reply"):void 0,onReplyAll:l?()=>t.requestCompose("reply_all"):void 0,onForward:l?()=>t.requestCompose("forward"):void 0,onDelete:l?t.deleteThread:void 0,onToggleStar:l?t.toggleStar:void 0,isStarred:t.isStarred,moveContext:l&&t.accountId&&t.mailboxId?{accountId:t.accountId,currentMailboxId:t.mailboxId,onMove:t.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,composeRequest:t.composeRequest,onComposeClose:t.clearComposeRequest}):a.jsx(mt,{})})]})}function gs(){const{selectedThread:e,handleDeselectIfRemoved:t}=G(),{onToggleIntelligence:o}=B();return a.jsx(ke,{onClose:o,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function xs(){const{selectedThread:e,conversation:t,onOpenThread:o,onCloseThread:r,nextThread:c,previousThread:l,handleDeselectIfRemoved:p}=G(),{intelligenceOpen:u,onToggleIntelligence:x}=B();return t?a.jsxs(a.Fragment,{children:[a.jsx(Me,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:r,onOpenIntelligence:x,onSwipeNext:c?()=>o(c):void 0,onSwipePrevious:l?()=>o(l):void 0,mobileIntelligenceOpen:u}),a.jsx(qt,{isOpen:u,onClose:x,ariaLabel:"Message details",side:"right",children:a.jsx(ke,{onClose:x,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,hideCloseButton:!0,onAfterOptimisticRemove:p})})]}):a.jsx("div",{className:"h-full",children:a.jsx(Ee,{})})}const Rs=Object.assign(fs,{List:Ee,Reading:hs,Intelligence:gs,Phone:xs});export{Rs as B};
|
|
1
|
+
import{j as a,an as Ze,S as Xe,bo as et,o as B,bg as tt,p as ae,r as n,x as te,bp as se,v as st,w as at,bq as ot,br as nt,bs as rt,e as Re,bt as it,i as lt}from"./index-DEXImZSP.js";import{s as Te,a as ct,b as we,u as dt,p as ut,R as mt}from"./useSearchTokenContext-CmJvOV-Z.js";import{a5 as ve,G as ye,a6 as ft,a7 as ht,H as gt,a8 as Se,a9 as xt,aa as pt,ab as It,a4 as bt,ac as vt,ad as yt,ae as St,M as Ct,af as jt,ag as Rt,ah as Tt,g as wt,x as Mt,ai as kt,v as At,S as Nt,K as Ft,P as Ce,O as Bt,L as Ot,f as Lt,Z as Et,_ as Me,$ as qt,a0 as ke,a1 as Dt}from"./MailListHeader-Nb9izl_F.js";import{u as Pt,a as zt,R as Ht,i as _t,b as Qt}from"./useRefreshControl-DgMvaW0l.js";import{a as $t}from"./useLabels-DpjQB2m3.js";import{d as Wt,R as Gt}from"./search-token-index-HzD6MHJp.js";import{d as Ut}from"./useFilters-CNDqeuwy.js";import{u as Vt,L as Yt}from"./useSemanticSearch-Bhf16QYz.js";function Jt({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(Ze,{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:Kt(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 Kt({synced:e,total:t}){return t>0?`${e.toLocaleString()} of ${t.toLocaleString()} messages downloaded. This list fills in as they arrive.`:"Downloading your messages. This list fills in as they arrive."}const Ae=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Ne="category",Zt={unclassified:"uncategorized"},D=e=>ct(e).map(t=>t.raw),q=e=>e.join(" "),oe=e=>{const t=we(e);if(t)return Ae.find(o=>o.name===t.name&&o.value===t.value.toLowerCase())?.id},ne=e=>{const t=we(e);if(!t||t.name!==Ne)return;const o=t.value.toLowerCase(),r=Zt[o];if(r)return r;if(!(!et(o)||o==="all"))return o},Fe=e=>Ae.find(t=>t.id===e),Be=e=>Fe(e)!==void 0,Xt=e=>{const t=new Set;for(const o of D(e)){const r=oe(o);r&&t.add(r)}return t},es=e=>{let t="all";for(const o of D(e)){const r=ne(o);r&&(t=r)}return t},ts=(e,t)=>{const o=Fe(t);if(!o)return;const r=D(e),c=r.filter(l=>oe(l)!==t);return c.length<r.length?q(c):q([...r,Te(o.name,o.value)])},ss=(e,t)=>{const o=D(e).filter(r=>!ne(r));return q(t==="all"?o:[...o,Te(Ne,t)])},as=e=>q(D(e).filter(t=>!oe(t)&&!ne(t))),Oe=e=>e.trim().length>0,os=e=>{if(!Oe(e.query))return e.ownFilters;const t=new Set(Xt(e.query));for(const o of e.ownFilters)Be(o)||t.add(o);return t},ns=e=>Oe(e.query)?es(e.query):e.ownCategory,rs=(e,t)=>e.createdAt!==t.createdAt?e.createdAt-t.createdAt:e.accountId.localeCompare(t.accountId),is=e=>[...e].sort(rs),ls=200,je=()=>a.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,t)=>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"})]})]},t))}),cs=({accountEmail:e})=>{const t=ae();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:()=>t({to:"/settings/accounts"}),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},ds=(e,t)=>{if(t.size===0)return{};const o=new Set,r=new Set;for(const l of e)t.has(l.id)&&(l.accountId&&o.add(l.accountId),l.mailboxId&&r.add(l.mailboxId));if(o.size>1)return{moveDisabledHint:"Move only works within one account — clear selection or pick messages from a single account"};const c=o.size===1?[...o][0]:void 0;return r.size>1?{accountId:c,moveDisabledHint:`Move only works within one folder — this selection spans ${r.size} folders`}:{accountId:c,mailboxId:r.size===1?[...r][0]:void 0}};function us({header:e,rows:t,wizard:o,children:r}){const{selectedIds:c,selectedCount:l,exitSelection:p,orderedIds:u,allSelected:x,toggleAllLoaded:y}=Tt(),m=n.useMemo(()=>ds(t,c),[t,c]),{junkMailboxId:S}=wt(m.accountId),{labels:O}=$t(m.accountId),M=n.useMemo(()=>Array.from(c),[c]),j=n.useMemo(()=>t.filter(g=>c.has(g.id)).map(g=>({id:g.id,sender:g.fromName,email:g.fromEmail,subject:g.subject,date:g.timeLabel})),[t,c]),h=Mt(S,m.mailboxId),I=n.useMemo(()=>u.length>0?{checked:x,indeterminate:l>0&&!x,onChange:y}:void 0,[u.length,x,l,y]),b=m.moveDisabledHint?{tone:"warning",text:m.moveDisabledHint}:void 0,F=g=>a.jsx(Nt,{title:g.title,navSlot:g.navSlot,titleMeta:g.titleMeta,searchSlot:g.searchSlot,searchField:g.searchField,idleSlot:g.makeFilterSlot,count:l,onCancel:p,onDelete:()=>o.start("delete"),onMove:()=>o.start("move"),onOrganize:()=>o.start("organize"),onJunk:h?()=>o.start("junk"):void 0,onMarkRead:()=>o.start("markRead"),overflowSlot:m.accountId&&m.mailboxId&&l>0&&O.length>0?a.jsx(Yt,{accountId:m.accountId,mailboxId:m.mailboxId,messageIds:M}):void 0,selectAll:I,notice:b});return a.jsx(kt,{...e,selectionBar:F,paneOverlay:a.jsx(At,{verb:o.verb,accountId:m.accountId,mailboxId:m.mailboxId,selection:j,crossAccount:m.moveDisabledHint!==void 0,onFinished:p}),children:r})}function ms({accounts:e,selectedMessageId:t,onOpenThread:o,commandsRef:r,onTriageContextChange:c,onDeleteMessages:l}){const{searchQuery:p,searchInput:u,resultFolderIndex:x,onSearchChange:y}=B(),m=dt(),S=Ut(),O=Wt(),M=tt(),j=ae(),h=n.useMemo(()=>is(e.filter(s=>!s.muted?.value)),[e]),[I,b]=n.useState("all"),[F,g]=n.useState("all"),[L,U]=n.useState(new Set),[k,P]=n.useState(!1),z=n.useCallback(s=>{U(i=>{const d=new Set(i);return d.has(s)?d.delete(s):d.add(s),d})},[]),H=n.useCallback(()=>U(new Set),[]),C=u.trim().length>0,A=n.useMemo(()=>os({query:u,ownFilters:L}),[u,L]),f=n.useMemo(()=>ns({query:u,ownCategory:F}),[u,F]),R=n.useCallback(s=>{if(!C||!Be(s)){z(s);return}const i=ts(u,s);i!==void 0&&y(i)},[C,u,y,z]),N=n.useCallback(s=>{if(!C){g(s);return}y(ss(u,s))},[C,u,y]),V=n.useCallback(()=>{g("all"),b("all"),H(),C&&y(as(u))},[C,u,y,H]),{data:_,isLoading:Y,isError:re,refetch:ie}=te({...se(),staleTime:6e4}),Q=st({queries:h.map(s=>({...at({path:{accountId:s.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),$=n.useMemo(()=>{const s=new Map;for(let i=0;i<h.length;i++){const d=h[i].accountId,Ye=(Q[i]?.data?.items??[]).reduce((Je,Ke)=>Je+(Ke.unseenCount??0),0);s.set(d,Ye)}return s},[h,Q]),qe=n.useMemo(()=>h.filter((s,i)=>{const d=Q[i];return d?.isError?!ot(d.error):!1}),[h,Q]),{freeText:T,tokens:J}=ut(p.trim().toLowerCase(),m),{data:le,isFetching:De}=te({...se({query:{query:T,limit:ls}}),enabled:T.length>0,staleTime:3e4}),v=n.useMemo(()=>{const s=ve(_?.items??[]).map(ye);return(T?ft(s.filter(d=>ht(d,T)),ve(le?.items??[]).map(ye)):s).filter(d=>(I==="all"||d.accountId===I)&>(d,J))},[_,le,I,T,J]),{bodyRows:ce,briefSpamOffer:K}=n.useMemo(()=>{if(!T)return{bodyRows:v,briefSpamOffer:void 0};const s=v.map(w=>Se(w,x)),{spam:i}=xt(s);if(i.length===0)return{bodyRows:v,briefSpamOffer:void 0};const d=new Set(i.map(w=>w.id));return{bodyRows:v.filter(w=>!d.has(w.id)),briefSpamOffer:pt(s)}},[v,T,x]),de=n.useMemo(()=>It(ce),[ce]),ue=n.useCallback((s,i)=>{const d=v.find(w=>w.id===s)?.threadId;d&&o?.({threadId:d,messageId:s},i)},[v,o]),Pe=n.useCallback(s=>{const i=s.threadId??v.find(d=>d.id===s.id)?.threadId;i&&o?.({threadId:i,messageId:s.id})},[v,o]),Z=n.useMemo(()=>h.length<=1?[]:[{id:"all",label:"All",active:I==="all"},...h.map(s=>({id:s.accountId,label:s.email.split("@")[0]??s.email,count:$.get(s.accountId),active:I===s.accountId}))],[h,$,I]),E=n.useMemo(()=>e.filter(s=>s.muted?.value).length,[e]),ze=n.useMemo(()=>Array.from($.values()).reduce((s,i)=>s+i,0),[$]),X=n.useMemo(()=>h.map(s=>s.accountId),[h]),{hasNewMail:me}=Pt(),{state:fe,errorMessage:he,refresh:ge}=zt(X,{onSettled:()=>ie()}),He=n.useMemo(()=>a.jsx(Ht,{state:fe,onRefresh:ge,label:"Refresh daily brief",errorMessage:he,hasUpdate:me(X)}),[fe,ge,he,me,X]),ee=n.useMemo(()=>v.filter(s=>(f==="all"||s.category===f)&&nt(s,A)).map(s=>Se(s,x)),[v,f,A,x]),{hits:xe,isLoading:_e}=Vt(),Qe=n.useMemo(()=>{const s=new Map;for(const d of _?.items??[])s.set(d.messageId,d.threadId);const i=ee.map(d=>s.get(d.id)).filter(d=>d!=null);return bt(xe,i,x)},[xe,ee,_,x]),$e=n.useMemo(()=>{const s=vt(Z.map(i=>({id:i.id,label:i.label,count:i.count,active:i.active})));return{categories:s.categories,filters:s.filters,sources:s.sources,sourcesNote:E>0?`+${E} muted`:void 0,selectedCategory:f,activeFilters:A,expanded:k,onExpandedChange:P,onSelectCategory:i=>N(i),onSelectSource:b,onToggleFilter:i=>R(i),onClear:V}},[Z,E,f,A,k,R,N,V]),pe=de.length===0&&I==="all"&&T.length===0&&J.length===0,We=n.useMemo(()=>h.map(s=>s.accountId),[h]),Ge=n.useMemo(()=>h.some(s=>_t(s.syncPhase)),[h]),W=Qt(We,pe||Ge),Ie=a.jsxs("div",{className:"h-full overflow-y-auto",children:[a.jsx(je,{}),a.jsx(je,{})]}),be=!Y&&!re&&!pe,Ue=yt({tier:O,hasLiveInput:C,hasCommittedQuery:p.trim().length>0,bodyRendersCommittedResults:!0}),Ve=be?a.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[K&&a.jsx(St,{count:K.count,onScopeToSpam:()=>j({to:"/mail/$mailboxId",params:{mailboxId:K.mailboxId},search:{q:p||void 0}})}),a.jsx("div",{className:"min-h-0 flex-1",children:a.jsx(rt,{sections:de,briefCategory:f,Row:Ct,selectedThreadId:t,onSelectThread:ue,onSelectBriefCategory:N,sources:Z,sourcesNote:E>0?`+${E} muted`:void 0,onSelectSource:b,activeFilters:A,onToggleFilter:R,onClearFilters:V})})]}):Y?Ie:re?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:()=>ie(),className:"flex items-center gap-1 text-accent underline text-xs",children:[a.jsx(Gt,{className:"size-3.5"}),"Try again"]})]}):W.resolved?a.jsx(Jt,{sync:W.syncing?{synced:W.synced,total:W.total}:void 0}):Ie;return a.jsx(it,{hasSheet:be&&!Ue,children:a.jsx(jt,{selectedMessageId:t,onOpen:ue,onDeleteMessages:l,onSelectionVerb:M.start,wizardOpen:M.isOpen,commandsRef:r,onTriageContextChange:c,children:a.jsx(us,{wizard:M,header:{title:"Daily brief",unreadCount:ze,footer:S?a.jsx(Rt,{}):void 0,searchFilter:$e,searchResults:ee,searchLoading:Y||De,relatedResults:Qe,relatedLoading:_e,onSelectSearchResult:Pe,searchResultsInBody:!0,refreshControl:He},rows:v,children:a.jsxs("div",{className:"flex h-full flex-col",children:[qe.map(s=>a.jsx(cs,{accountEmail:s.email,accountId:s.accountId},s.accountId)),a.jsx("div",{className:"min-h-0 flex-1",children:Ve})]})})})})}const Le=n.createContext(null);function G(){const e=n.useContext(Le);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function fs({thread:e,children:t}){const o=ae(),{searchInput:r}=B(),c=e?.threadId,l=e?.messageId,{data:p}=te({...se(),staleTime:6e4}),u=n.useMemo(()=>p?.items??[],[p]),x=n.useMemo(()=>{if(c)return u.find(f=>f.messageId===l)??u.find(f=>f.threadId===c)},[u,c,l]),y=Ft(c,l),m=x??y,S=l??m?.messageId,O=n.useMemo(()=>{if(c)return{threadId:c,mailboxId:m?.mailboxId??"",subject:m?.subject,messageId:S,authenticity:m?.authenticity}},[c,m,S]),M=n.useCallback((f,R)=>{o({to:"/mail/brief/$threadId/$messageId",params:f,replace:R?.replace,search:N=>({...N,q:r||void 0})})},[o,r]),j=n.useCallback(()=>{o({to:"/mail/brief",search:f=>f})},[o]),h=n.useCallback(f=>{S&&f.includes(S)&&j()},[S,j]),I=Ce({thread:m,onAfterOptimisticRemove:h}),b=Bt(),{deleteMessages:F}=Ot({mailboxId:m?.mailboxId??"",messages:u,onAfterOptimisticRemove:h}),{toggleReadFor:g}=Lt({mailboxId:m?.mailboxId??"",messages:u}),L=b.focusedMessageId,k=n.useMemo(()=>u.find(f=>f.messageId===L),[u,L])??m,P=Ce({thread:k}),{nextMessageId:z,previousMessageId:H}=Et({context:b,orderedIds:b.orderedIds,selectedMessageId:S,onClose:j,handlers:{reply:()=>I.requestCompose("reply"),replyAll:()=>I.requestCompose("reply_all"),forward:()=>I.requestCompose("forward"),delete:()=>{b.listCommandsRef.current?.requestVerb("delete")||P.deleteThread()},toggleStar:P.toggleStar,toggleRead:()=>{b.listCommandsRef.current?.requestVerb("markRead")||k&&g([k.messageId],!k.isRead)},goFlagged:()=>o({to:"/mail/flagged"}),goSettings:()=>o({to:"/settings"})}}),C=n.useCallback(f=>{if(!f)return;const R=u.find(N=>N.messageId===f);return R?{threadId:R.threadId,messageId:f}:void 0},[u]),A={selectedMessageId:S,selectedThread:m,conversation:O,onOpenThread:M,onCloseThread:j,nextThread:C(z),previousThread:C(H),actions:I,triage:b,onDeleteMessages:F,handleDeselectIfRemoved:h};return a.jsx(Le.Provider,{value:A,children:t})}function Ee(){const{selectedMessageId:e,onOpenThread:t,triage:o,onDeleteMessages:r}=G(),{accounts:c}=B();return a.jsx(ms,{accounts:c,selectedMessageId:e,onOpenThread:t,commandsRef:o.listCommandsRef,onTriageContextChange:o.onTriageContextChange,onDeleteMessages:r})}function hs(){const{conversation:e,actions:t}=G(),{intelligenceOpen:o,onToggleIntelligence:r}=B(),c=lt()?.showIntelligencePane??!1,l=!!e,p=c&&l;return a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(Dt,{hasThread:l,intelligenceOpen:p&&o,canToggleIntelligence:p,onToggleIntelligence:r,onReply:l?()=>t.requestCompose("reply"):void 0,onReplyAll:l?()=>t.requestCompose("reply_all"):void 0,onForward:l?()=>t.requestCompose("forward"):void 0,onDelete:l?t.deleteThread:void 0,onToggleStar:l?t.toggleStar:void 0,isStarred:t.isStarred,moveContext:l&&t.accountId&&t.mailboxId?{accountId:t.accountId,currentMailboxId:t.mailboxId,onMove:t.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,composeRequest:t.composeRequest,onComposeClose:t.clearComposeRequest}):a.jsx(mt,{})})]})}function gs(){const{selectedThread:e,handleDeselectIfRemoved:t}=G(),{onToggleIntelligence:o}=B();return a.jsx(ke,{onClose:o,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function xs(){const{selectedThread:e,conversation:t,onOpenThread:o,onCloseThread:r,nextThread:c,previousThread:l,handleDeselectIfRemoved:p}=G(),{intelligenceOpen:u,onToggleIntelligence:x}=B();return t?a.jsxs(a.Fragment,{children:[a.jsx(Me,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:r,onOpenIntelligence:x,onSwipeNext:c?()=>o(c):void 0,onSwipePrevious:l?()=>o(l):void 0,mobileIntelligenceOpen:u}),a.jsx(qt,{isOpen:u,onClose:x,ariaLabel:"Message details",side:"right",children:a.jsx(ke,{onClose:x,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,hideCloseButton:!0,onAfterOptimisticRemove:p})})]}):a.jsx("div",{className:"h-full",children:a.jsx(Ee,{})})}const Rs=Object.assign(fs,{List:Ee,Reading:hs,Intelligence:gs,Phone:xs});export{Rs as B};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t,e as r}from"./index-
|
|
1
|
+
import{j as t,e as r}from"./index-DEXImZSP.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{bF as Z,r as n,bG as J,o as F,bg as X,bi as Y,bj as ee,j as a,p as te,i as se}from"./index-
|
|
1
|
+
import{bF as Z,r as n,bG as J,o as F,bg as X,bi as Y,bj as ee,j as a,p as te,i as se}from"./index-DEXImZSP.js";import{u as ae,p as oe,R as re}from"./useSearchTokenContext-CmJvOV-Z.js";import{G as ne,a7 as de,H as ie,ao as le,a8 as ce,e as ue,M as ge,af as he,ap as me,ah as fe,v as pe,K as xe,P as D,O as Ie,L as be,f as Te,Z as ve,_ as H,$ as Ce,a0 as z,a1 as ye}from"./MailListHeader-Nb9izl_F.js";import{u as Re,b as Se,a as je}from"./MailViewChrome-RL9UB34E.js";import{f as we}from"./ErrorState-Cxo3fVvx.js";import{d as Fe}from"./useFilters-CNDqeuwy.js";const Me=()=>J({query:{starred:!0,order:"desc"}});function Q(){const{data:e,isLoading:t,isError:o,error:u,refetch:c,fetchNextPage:s,hasNextPage:i,isFetchingNextPage:x}=Re({queryKey:Me(),queryFn:async({pageParam:d})=>{const{data:h}=await Z({query:{starred:!0,order:"desc",continuationToken:d},throwOnError:!0});return h},initialPageParam:void 0,getNextPageParam:d=>d.continuationToken,staleTime:6e4});return{threads:n.useMemo(()=>(e?.pages??[]).flatMap(d=>d.items??[]),[e]),isLoading:t,isError:o,error:u,refetch:c,fetchNextPage:s,hasNextPage:i,isFetchingNextPage:x}}const Pe=e=>{const t=new Set;return e.filter(o=>t.has(o.threadId)?!1:(t.add(o.threadId),!0))},ke={unread:e=>!e.isRead,attachment:e=>e.hasAttachment===!0};function Le({rows:e,verb:t}){const{selectedIds:o,exitSelection:u}=fe(),c=n.useMemo(()=>e.filter(s=>o.has(s.id)).map(s=>({id:s.id,sender:s.fromName,email:s.fromEmail,subject:s.subject,date:s.timeLabel})),[e,o]);return a.jsx(pe,{verb:t,selection:c,crossAccount:!0,onFinished:u})}function Oe({selectedMessageId:e,onOpenThread:t,commandsRef:o,onTriageContextChange:u,onDeleteMessages:c}){const{searchQuery:s,resultFolderIndex:i}=F(),x=ae(),I=Fe(),d=X(),[h,M]=n.useState("all"),[R,b]=n.useState(new Set),S=n.useCallback(r=>{b(g=>{const f=new Set(g);return f.has(r)?f.delete(r):f.add(r),f})},[]),T=n.useCallback(()=>{M("all"),b(new Set)},[]),{threads:p,isLoading:P,isError:k,error:L,refetch:N,fetchNextPage:v,hasNextPage:O,isFetchingNextPage:q}=Q(),{freeText:C,tokens:j}=oe(s.trim().toLowerCase(),x),m=n.useMemo(()=>{const r=Array.from(R).map(g=>ke[g]).filter(g=>g!=null);return Pe(p).map(ne).filter(g=>(h==="all"||g.category===h)&&r.every(f=>f(g))&&(!C||de(g,C))&&ie(g,j))},[p,h,R,C,j]),l=n.useCallback((r,g)=>{const f=m.find(U=>U.id===r)?.threadId;f&&t?.({threadId:f,messageId:r},g)},[m,t]),y=n.useCallback(r=>{const g=r.threadId??m.find(f=>f.id===r.id)?.threadId;g&&t?.({threadId:g,messageId:r.id})},[m,t]),w=n.useMemo(()=>le(),[]),K=n.useMemo(()=>m.map(r=>ce(r,i)),[m,i]),G=n.useMemo(()=>m.filter(r=>!r.isRead).length,[m]),E=P?"loading":k?"error":m.length===0?"empty":"ready",W=n.useCallback(()=>{const r=Y(ee());window.open(r,"_blank","noopener,noreferrer")},[]),B=ue(),$=a.jsx("div",{className:"flex h-full min-h-0 flex-col",children:a.jsxs("div",{className:"flex-1 overflow-y-auto",children:[a.jsx("div",{className:"divide-y divide-line",children:m.map(r=>a.jsx(ge,{thread:r,active:r.id===e,onClick:()=>l(r.id)},r.id))}),O?a.jsx("button",{type:"button",className:"w-full py-3 text-sm text-muted hover:text-fg disabled:opacity-50",onClick:()=>v(),disabled:q,children:q?"Loading…":"Load more"}):null]})});return a.jsx(Se,{title:"Starred",unreadCount:G,preset:w,selectedCategory:h,activeFilters:R,onSelectCategory:M,onToggleFilter:S,onClearFilters:T,searchResults:K,searchLoading:P,onSelectSearchResult:y,searchResultsInBody:!0,children:a.jsxs(he,{selectedMessageId:e,onOpen:l,onDeleteMessages:c,onSelectionVerb:d.start,wizardOpen:d.isOpen,commandsRef:o,onTriageContextChange:u,children:[a.jsx(je,{listTitle:"Starred",sections:[{id:"flagged",threads:m}],flatList:!0,hideHeader:!0,listState:B.searchResults?"ready":E,searchQuery:C?s:void 0,errorMessage:k?we(L):void 0,onRetry:()=>N(),onReportError:W,selectedThreadId:e,onSelectThread:l,isDesktop:I,selectionBar:a.jsx(me,{title:"Starred"}),listBody:B.searchResults??(E==="ready"?$:void 0)}),a.jsx(Le,{rows:m,verb:d.verb})]})})}const V=n.createContext(null);function A(){const e=n.useContext(V);if(!e)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return e}function qe({thread:e,children:t}){const o=te(),{searchInput:u}=F(),c=e?.threadId,s=e?.messageId,{threads:i}=Q(),x=n.useMemo(()=>{if(c)return i.find(l=>l.messageId===s)??i.find(l=>l.threadId===c)},[i,c,s]),I=xe(c,s),d=x??I,h=s??d?.messageId,M=n.useMemo(()=>{if(c)return{threadId:c,mailboxId:d?.mailboxId??"",subject:d?.subject,messageId:h,authenticity:d?.authenticity}},[c,d,h]),R=n.useCallback((l,y)=>{o({to:"/mail/flagged/$threadId/$messageId",params:l,replace:y?.replace,search:w=>({...w,q:u||void 0})})},[o,u]),b=n.useCallback(()=>{o({to:"/mail/flagged",search:l=>l})},[o]),S=n.useCallback(l=>{h&&l.includes(h)&&b()},[h,b]),T=D({thread:d,onAfterOptimisticRemove:S}),p=Ie(),{deleteMessages:P}=be({mailboxId:d?.mailboxId??"",messages:i,onAfterOptimisticRemove:S}),{toggleReadFor:k}=Te({mailboxId:d?.mailboxId??"",messages:i}),L=p.focusedMessageId,v=n.useMemo(()=>i.find(l=>l.messageId===L),[i,L])??d,O=D({thread:v}),{nextMessageId:q,previousMessageId:C}=ve({context:p,orderedIds:p.orderedIds,selectedMessageId:h,onClose:b,handlers:{reply:()=>T.requestCompose("reply"),replyAll:()=>T.requestCompose("reply_all"),forward:()=>T.requestCompose("forward"),delete:()=>{p.listCommandsRef.current?.requestVerb("delete")||O.deleteThread()},toggleStar:O.toggleStar,toggleRead:()=>{p.listCommandsRef.current?.requestVerb("markRead")||v&&k([v.messageId],!v.isRead)},goBrief:()=>o({to:"/mail/brief"}),goSettings:()=>o({to:"/settings"})}}),j=n.useCallback(l=>{if(!l)return;const y=i.find(w=>w.messageId===l);return y?{threadId:y.threadId,messageId:l}:void 0},[i]),m={selectedMessageId:h,selectedThread:d,conversation:M,onOpenThread:R,onCloseThread:b,nextThread:j(q),previousThread:j(C),actions:T,triage:p,onDeleteMessages:P,handleDeselectIfRemoved:S};return a.jsx(V.Provider,{value:m,children:t})}function _(){const{selectedMessageId:e,onOpenThread:t,triage:o,onDeleteMessages:u}=A();return a.jsx(Oe,{selectedMessageId:e,onOpenThread:t,commandsRef:o.listCommandsRef,onTriageContextChange:o.onTriageContextChange,onDeleteMessages:u})}function Ae(){const{conversation:e,actions:t}=A(),{intelligenceOpen:o,onToggleIntelligence:u}=F(),c=se()?.showIntelligencePane??!1,s=!!e,i=c&&s;return a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(ye,{hasThread:s,intelligenceOpen:i&&o,canToggleIntelligence:i,onToggleIntelligence:u,onReply:s?()=>t.requestCompose("reply"):void 0,onReplyAll:s?()=>t.requestCompose("reply_all"):void 0,onForward:s?()=>t.requestCompose("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}),a.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?a.jsx(H,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,composeRequest:t.composeRequest,onComposeClose:t.clearComposeRequest}):a.jsx(re,{})})]})}function Ne(){const{selectedThread:e,handleDeselectIfRemoved:t}=A(),{onToggleIntelligence:o}=F();return a.jsx(z,{onClose:o,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function Ee(){const{selectedThread:e,conversation:t,onCloseThread:o,onOpenThread:u,nextThread:c,previousThread:s,handleDeselectIfRemoved:i}=A(),{intelligenceOpen:x,onToggleIntelligence:I}=F();return t?a.jsxs(a.Fragment,{children:[a.jsx(H,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:o,onOpenIntelligence:I,onSwipeNext:c?()=>u(c):void 0,onSwipePrevious:s?()=>u(s):void 0,mobileIntelligenceOpen:x}),a.jsx(Ce,{isOpen:x,onClose:I,ariaLabel:"Message details",side:"right",children:a.jsx(z,{onClose:I,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,hideCloseButton:!0,onAfterOptimisticRemove:i})})]}):a.jsx("div",{className:"h-full",children:a.jsx(_,{})})}const _e=Object.assign(qe,{List:_,Reading:Ae,Intelligence:Ne,Phone:Ee});export{_e as F};
|