@remit/web-client-dist 0.0.354 → 0.0.356
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-DM6_ytst.js → BriefPane-BS5Lq2MZ.js} +1 -1
- package/assets/{ErrorState-BaIciuxT.js → ErrorState-iyZ1eEDd.js} +1 -1
- package/assets/{FlaggedPane-fIeZTNSD.js → FlaggedPane-ktX1AK6k.js} +1 -1
- package/assets/{MailListHeader-BbK5HB_n.js → MailListHeader-DnFZsLU5.js} +3 -3
- package/assets/{MailViewChrome-Ba7I0RIy.js → MailViewChrome-B1N4z7Pm.js} +1 -1
- package/assets/{MailboxPane-D2X1meFI.js → MailboxPane-Dhw8QEvL.js} +1 -1
- package/assets/{NavMenuButton-DaTQFaDJ.js → NavMenuButton-B8BvpOxY.js} +1 -1
- package/assets/{OnboardingWizard-B7qEFCuz.js → OnboardingWizard-D9QaA8wx.js} +1 -1
- package/assets/{OutboxPane-DC-3UgnP.js → OutboxPane-DTooYDng.js} +1 -1
- package/assets/_mailboxId-0F2OLVkY.js +1 -0
- package/assets/_messageId-797n8gDL.js +1 -0
- package/assets/_messageId-BCsdFUs5.js +1 -0
- package/assets/_messageId-DqgcwsEx.js +1 -0
- package/assets/_outboxMessageId-M08TVdJj.js +1 -0
- package/assets/_threadId-B8Yjkmi1.js +1 -0
- package/assets/_threadId-DpOQd5cl.js +1 -0
- package/assets/_threadId-PwoZ7s3D.js +1 -0
- package/assets/{account-form-helpers-WiefJMZA.js → account-form-helpers-n79hZWCu.js} +1 -1
- package/assets/{accounts-1EMTli0-.js → accounts-q2ynk-9Z.js} +1 -1
- package/assets/{advanced-DJLaegCM.js → advanced-_W0aJq6k.js} +1 -1
- package/assets/{appearance-CoKOmgXv.js → appearance-BWPFtAqS.js} +1 -1
- package/assets/{avatar-6DNJ4KGY.js → avatar-DRzAUKDn.js} +1 -1
- package/assets/{bottom-sheet-DNAiEPlE.js → bottom-sheet-CYAAzFs2.js} +1 -1
- package/assets/brief-BvwMo2hW.js +1 -0
- package/assets/{brief-D7C5-_CT.js → brief-CdIy0xvq.js} +1 -1
- package/assets/{browser-ponyfill-CMd3GcUP.js → browser-ponyfill-CwHMNp32.js} +1 -1
- package/assets/{bug-BZi7Nwmy.js → bug-aX2zoKsl.js} +1 -1
- package/assets/{circle-check-BXi54kGj.js → circle-check-BpuRlCwV.js} +1 -1
- package/assets/{circle-check-big-BETB1H_v.js → circle-check-big-Ci4xk_eE.js} +1 -1
- package/assets/{circle-help-DSoF-cYV.js → circle-help-l4FI_9La.js} +1 -1
- package/assets/{clock-DsQzvd_u.js → clock-x43VdT-G.js} +1 -1
- package/assets/{confirm-dialog-Ct992QaJ.js → confirm-dialog-DnhbOBfz.js} +1 -1
- package/assets/{download-BaT8phOg.js → download-BDyamb4u.js} +1 -1
- package/assets/{filters-BSAVqdc6.js → filters-Bi0ePbo2.js} +1 -1
- package/assets/{flagged-C9Gb-Ydg.js → flagged-Djecuxf8.js} +1 -1
- package/assets/flagged-wK3gOzjd.js +1 -0
- package/assets/{folders-C7VzSp0k.js → folders-DBvC38NY.js} +1 -1
- package/assets/index-B9KGalbh.js +1 -0
- package/assets/index-BCsdFUs5.js +1 -0
- package/assets/{index-DivxHcM7.css → index-Bn4mOVkF.css} +1 -1
- package/assets/index-C5ZngjHG.js +1 -0
- package/assets/index-CBqbCion.js +1 -0
- package/assets/{index-BEEz58WI.js → index-CpL4QoWb.js} +4 -4
- package/assets/index-CwyVlvub.js +1 -0
- package/assets/index-DqgcwsEx.js +1 -0
- package/assets/index-N4dCVq0Z.js +1 -0
- package/assets/index-vrrpqe4P.js +1 -0
- package/assets/{kbd-BOoR9rVo.js → kbd-B-IGAdWZ.js} +1 -1
- package/assets/{labels-C7-rkEWO.js → labels-a3WH1yri.js} +1 -1
- package/assets/{mail-RkAy_oFb.js → mail-DT3RwCYm.js} +1 -1
- package/assets/{menu-fk83pTvD.js → menu-C-178_d_.js} +1 -1
- package/assets/{move-options-Dx8yOF8S.js → move-options-B-_O6Age.js} +1 -1
- package/assets/{nav-link-ClEno4_K.js → nav-link-CI-9pBff.js} +1 -1
- package/assets/{onboarding-DhFjdM0e.js → onboarding-QXH9AO9A.js} +1 -1
- package/assets/outbox-CUzX3SOD.js +1 -0
- package/assets/{pencil-C-FhCEgr.js → pencil-CzkYibYm.js} +1 -1
- package/assets/{rich-text-DmEId6sM.js → rich-text-CJKa3GnU.js} +1 -1
- package/assets/{rich-text-spellcheck-worker-provider-I7SK-TRf.js → rich-text-spellcheck-worker-provider-j4LLOI60.js} +1 -1
- package/assets/{rotate-ccw-BrFPZjZT.js → rotate-ccw-Cvd6l1Qc.js} +1 -1
- package/assets/{row-actions-BXRxZy7S.js → row-actions-B7ZYbUlo.js} +1 -1
- package/assets/{search-token-index-DHEtqFya.js → search-token-index-Bq5W3wIz.js} +1 -1
- package/assets/{search-view-FDcg_GpY.js → search-view-BY8cFYny.js} +1 -1
- package/assets/{senders-wEPMuAxA.js → senders-CWxy9PJx.js} +1 -1
- package/assets/settings-AZpV762F.js +1 -0
- package/assets/{settings-screen-D18nQJPU.js → settings-screen-3PVPPcG9.js} +1 -1
- package/assets/{shield-check-CeVn6I90.js → shield-check-DmRA-CPl.js} +1 -1
- package/assets/{suggested-vips-CFE4W4q-.js → suggested-vips-CFyVrNim.js} +1 -1
- package/assets/{useDebouncedValue-D5vZyzBw.js → useDebouncedValue-CwStTMs3.js} +1 -1
- package/assets/{useFilters-UorwKOLY.js → useFilters-CZ4EVtAQ.js} +1 -1
- package/assets/{useLabels-ZO4lMtAd.js → useLabels-DsFfQJKo.js} +1 -1
- package/assets/{useMediaQuery-HWAjtF53.js → useMediaQuery-DsLp21rD.js} +1 -1
- package/assets/{useRefreshControl-Bp9h9sP9.js → useRefreshControl-D0tR6FR3.js} +1 -1
- package/assets/{useSearchMirror-AGHy8FB5.js → useSearchMirror-CadW6Xgb.js} +1 -1
- package/assets/{useSearchTokenContext-kOsWC4AV.js → useSearchTokenContext-C5JJYphj.js} +1 -1
- package/assets/{useSemanticSearch-DLvADTCg.js → useSemanticSearch-BM68RrQf.js} +1 -1
- package/assets/{useSignature-D8PFnNrR.js → useSignature-Db5YhvC8.js} +1 -1
- package/index.html +2 -2
- package/package.json +1 -1
- package/assets/_mailboxId-CxIARE9O.js +0 -1
- package/assets/_messageId-BJ-q_FnU.js +0 -1
- package/assets/_messageId-BaAFfCQw.js +0 -1
- package/assets/_messageId-CmhG0C-7.js +0 -1
- package/assets/_outboxMessageId-KYJXf-0B.js +0 -1
- package/assets/_threadId-ACWxecIf.js +0 -1
- package/assets/_threadId-B_kimTHe.js +0 -1
- package/assets/_threadId-C8duoztw.js +0 -1
- package/assets/brief-Ca_kEeJz.js +0 -1
- package/assets/flagged-DWKCVwb5.js +0 -1
- package/assets/index-B0Kxw5PQ.js +0 -1
- package/assets/index-BJ-q_FnU.js +0 -1
- package/assets/index-BuZ8zNSt.js +0 -1
- package/assets/index-CEUj7Hly.js +0 -1
- package/assets/index-CJwpk4GB.js +0 -1
- package/assets/index-CXOwJQ3W.js +0 -1
- package/assets/index-C_WVfI0h.js +0 -1
- package/assets/index-CmhG0C-7.js +0 -1
- package/assets/outbox-Ci17KNsx.js +0 -1
- package/assets/settings-DUJPhBQC.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as a,am as Ze,S as Xe,bo as es,o as O,bi as ss,p as ae,r as n,x as se,bp as te,v as ts,w as as,bq as os,br as ns,bs as rs,e as Re,bt as is,i as ls}from"./index-BEEz58WI.js";import{s as Te,a as cs,b as we,u as ds,p as us,R as ms}from"./useSearchTokenContext-kOsWC4AV.js";import{a4 as ve,F as ye,a5 as fs,a6 as hs,G as gs,a7 as Se,a8 as xs,a9 as ps,aa as Is,a3 as bs,ab as vs,ac as ys,ad as Ss,M as Cs,ae as js,af as Rs,ag as Ts,f as ws,w as Ms,ah as ks,s as Ns,S as As,J as Fs,O as Ce,N as Bs,K as Os,e as Ls,Y as Es,Z as Me,_ as qs,$ as ke,a0 as Ds}from"./MailListHeader-BbK5HB_n.js";import{u as Ps,a as zs,R as _s,i as Qs,b as Hs}from"./useRefreshControl-Bp9h9sP9.js";import{a as $s}from"./useLabels-ZO4lMtAd.js";import{d as Ws,R as Gs}from"./search-token-index-DHEtqFya.js";import{u as Us}from"./useMediaQuery-HWAjtF53.js";import{u as Vs,L as Ys}from"./useSemanticSearch-DLvADTCg.js";import{c as Js}from"./nav-link-ClEno4_K.js";function Ks({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:Zs(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 Zs({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 Ne=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Ae="category",Xs={unclassified:"uncategorized"},z=e=>cs(e).map(s=>s.raw),P=e=>e.join(" "),oe=e=>{const s=we(e);if(s)return Ne.find(o=>o.name===s.name&&o.value===s.value.toLowerCase())?.id},ne=e=>{const s=we(e);if(!s||s.name!==Ae)return;const o=s.value.toLowerCase(),r=Xs[o];if(r)return r;if(!(!es(o)||o==="all"))return o},Fe=e=>Ne.find(s=>s.id===e),Be=e=>Fe(e)!==void 0,et=e=>{const s=new Set;for(const o of z(e)){const r=oe(o);r&&s.add(r)}return s},st=e=>{let s="all";for(const o of z(e)){const r=ne(o);r&&(s=r)}return s},tt=(e,s)=>{const o=Fe(s);if(!o)return;const r=z(e),d=r.filter(i=>oe(i)!==s);return d.length<r.length?P(d):P([...r,Te(o.name,o.value)])},at=(e,s)=>{const o=z(e).filter(r=>!ne(r));return P(s==="all"?o:[...o,Te(Ae,s)])},ot=e=>P(z(e).filter(s=>!oe(s)&&!ne(s))),Oe=e=>e.trim().length>0,nt=e=>{if(!Oe(e.query))return e.ownFilters;const s=new Set(et(e.query));for(const o of e.ownFilters)Be(o)||s.add(o);return s},rt=e=>Oe(e.query)?st(e.query):e.ownCategory,it=(e,s)=>e.createdAt!==s.createdAt?e.createdAt-s.createdAt:e.accountId.localeCompare(s.accountId),lt=e=>[...e].sort(it),ct=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))}),dt=({accountEmail:e})=>{const s=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:()=>s({to:"/settings/accounts"}),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},ut=(e,s)=>{if(s.size===0)return{};const o=new Set,r=new Set;for(const i of e)s.has(i.id)&&(i.accountId&&o.add(i.accountId),i.mailboxId&&r.add(i.mailboxId));if(o.size>1)return{restriction:"spansAccounts",moveDisabledHint:"Move only works within one account — clear selection or pick messages from a single account"};const d=o.size===1?[...o][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 mt({header:e,rows:s,wizard:o,children:r}){const{selectedIds:d,selectedCount:i,exitSelection:x,orderedIds:f,allSelected:u,toggleAllLoaded:y}=Ts(),p=n.useMemo(()=>ut(s,d),[s,d]),{junkMailboxId:I}=ws(p.accountId),{labels:S}=$s(p.accountId),A=n.useMemo(()=>Array.from(d),[d]),L=n.useMemo(()=>s.filter(h=>d.has(h.id)).map(h=>({id:h.id,sender:h.fromName,email:h.fromEmail,subject:h.subject,date:h.timeLabel})),[s,d]),m=Ms(I,p.mailboxId),b=n.useMemo(()=>f.length>0?{checked:u,indeterminate:i>0&&!u,onChange:y}:void 0,[f.length,u,i,y]),j=p.moveDisabledHint?{tone:"warning",text:p.moveDisabledHint}:void 0,C=h=>a.jsx(As,{title:h.title,navSlot:h.navSlot,titleMeta:h.titleMeta,searchSlot:h.searchSlot,searchField:h.searchField,idleSlot:h.makeFilterSlot,count:i,onCancel:x,onDelete:()=>o.start("delete"),onMove:()=>o.start("move"),onOrganize:()=>o.start("organize"),onJunk:m?()=>o.start("junk"):void 0,onMarkRead:()=>o.start("markRead"),overflowSlot:p.accountId&&p.mailboxId&&i>0&&S.length>0?a.jsx(Ys,{accountId:p.accountId,mailboxId:p.mailboxId,messageIds:A}):void 0,selectAll:b,notice:j});return a.jsx(ks,{...e,selectionBar:C,paneOverlay:a.jsx(Ns,{verb:o.verb,accountId:p.accountId,mailboxId:p.mailboxId,selection:L,selectionRestriction:p.restriction,onFinished:x}),children:r})}function ft({accounts:e,selectedMessageId:s,onOpenThread:o,commandsRef:r,onTriageContextChange:d,onDeleteMessages:i}){const{searchQuery:x,searchInput:f,resultFolderIndex:u,onSearchChange:y}=O(),p=ds(),I=Us(),S=Ws(),A=ss(),L=ae(),m=n.useMemo(()=>lt(e.filter(t=>!t.muted?.value)),[e]),[b,j]=n.useState("all"),[C,h]=n.useState("all"),[_,E]=n.useState(new Set),[V,B]=n.useState(!1),q=n.useCallback(t=>{E(l=>{const c=new Set(l);return c.has(t)?c.delete(t):c.add(t),c})},[]),Q=n.useCallback(()=>E(new Set),[]),R=f.trim().length>0,T=n.useMemo(()=>nt({query:f,ownFilters:_}),[f,_]),w=n.useMemo(()=>rt({query:f,ownCategory:C}),[f,C]),g=n.useCallback(t=>{if(!R||!Be(t)){q(t);return}const l=tt(f,t);l!==void 0&&y(l)},[R,f,y,q]),M=n.useCallback(t=>{if(!R){h(t);return}y(at(f,t))},[R,f,y]),F=n.useCallback(()=>{h("all"),j("all"),Q(),R&&y(ot(f))},[R,f,y,Q]),{data:H,isLoading:Y,isError:re,refetch:ie}=se({...te(),staleTime:6e4}),$=ts({queries:m.map(t=>({...as({path:{accountId:t.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),W=n.useMemo(()=>{const t=new Map;for(let l=0;l<m.length;l++){const c=m[l].accountId,Ye=($[l]?.data?.items??[]).reduce((Je,Ke)=>Je+(Ke.unseenCount??0),0);t.set(c,Ye)}return t},[m,$]),qe=n.useMemo(()=>m.filter((t,l)=>{const c=$[l];return c?.isError?!os(c.error):!1}),[m,$]),{freeText:k,tokens:J}=us(x.trim().toLowerCase(),p),{data:le,isFetching:De}=se({...te({query:{query:k,limit:ct}}),enabled:k.length>0,staleTime:3e4}),v=n.useMemo(()=>{const t=ve(H?.items??[]).map(ye);return(k?fs(t.filter(c=>hs(c,k)),ve(le?.items??[]).map(ye)):t).filter(c=>(b==="all"||c.accountId===b)&&gs(c,J))},[H,le,b,k,J]),{bodyRows:ce,briefSpamOffer:K}=n.useMemo(()=>{if(!k)return{bodyRows:v,briefSpamOffer:void 0};const t=v.map(N=>Se(N,u)),{spam:l}=xs(t);if(l.length===0)return{bodyRows:v,briefSpamOffer:void 0};const c=new Set(l.map(N=>N.id));return{bodyRows:v.filter(N=>!c.has(N.id)),briefSpamOffer:ps(t)}},[v,k,u]),de=n.useMemo(()=>Is(ce),[ce]),ue=n.useCallback((t,l)=>{const c=v.find(N=>N.id===t)?.threadId;c&&o?.({threadId:c,messageId:t},l)},[v,o]),Pe=n.useCallback(t=>{const l=t.threadId??v.find(c=>c.id===t.id)?.threadId;l&&o?.({threadId:l,messageId:t.id})},[v,o]),Z=n.useMemo(()=>m.length<=1?[]:[{id:"all",label:"All",active:b==="all"},...m.map(t=>({id:t.accountId,label:t.email.split("@")[0]??t.email,count:W.get(t.accountId),active:b===t.accountId}))],[m,W,b]),D=n.useMemo(()=>e.filter(t=>t.muted?.value).length,[e]),ze=n.useMemo(()=>Array.from(W.values()).reduce((t,l)=>t+l,0),[W]),X=n.useMemo(()=>m.map(t=>t.accountId),[m]),{hasNewMail:me}=Ps(),{state:fe,errorMessage:he,refresh:ge}=zs(X,{onSettled:()=>ie()}),_e=n.useMemo(()=>a.jsx(_s,{state:fe,onRefresh:ge,label:"Refresh daily brief",errorMessage:he,hasUpdate:me(X)}),[fe,ge,he,me,X]),ee=n.useMemo(()=>v.filter(t=>(w==="all"||t.category===w)&&ns(t,T)).map(t=>Se(t,u)),[v,w,T,u]),{hits:xe,isLoading:Qe}=Vs(),He=n.useMemo(()=>{const t=new Map;for(const c of H?.items??[])t.set(c.messageId,c.threadId);const l=ee.map(c=>t.get(c.id)).filter(c=>c!=null);return bs(xe,l,u)},[xe,ee,H,u]),$e=n.useMemo(()=>{const t=vs(Z.map(l=>({id:l.id,label:l.label,count:l.count,active:l.active})));return{categories:t.categories,filters:t.filters,sources:t.sources,sourcesNote:D>0?`+${D} muted`:void 0,selectedCategory:w,activeFilters:T,expanded:V,onExpandedChange:B,onSelectCategory:l=>M(l),onSelectSource:j,onToggleFilter:l=>g(l),onClear:F}},[Z,D,w,T,V,g,M,F]),pe=de.length===0&&b==="all"&&k.length===0&&J.length===0,We=n.useMemo(()=>m.map(t=>t.accountId),[m]),Ge=n.useMemo(()=>m.some(t=>Qs(t.syncPhase)),[m]),G=Hs(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=ys({tier:S,hasLiveInput:R,hasCommittedQuery:x.trim().length>0,bodyRendersCommittedResults:!0}),Ve=be?a.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[K&&a.jsx(Ss,{count:K.count,onScopeToSpam:()=>L({to:"/mail/$mailboxId",params:{mailboxId:K.mailboxId},search:{q:x||void 0}})}),a.jsx("div",{className:"min-h-0 flex-1",children:a.jsx(rs,{sections:de,briefCategory:w,Row:Cs,selectedThreadId:s,onSelectThread:ue,onSelectBriefCategory:M,sources:Z,sourcesNote:D>0?`+${D} muted`:void 0,onSelectSource:j,activeFilters:T,onToggleFilter:g,onClearFilters:F})})]}):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(Gs,{className:"size-3.5"}),"Try again"]})]}):G.resolved?a.jsx(Ks,{sync:G.syncing?{synced:G.synced,total:G.total}:void 0}):Ie;return a.jsx(is,{hasSheet:be&&!Ue,children:a.jsx(js,{selectedMessageId:s,onOpen:ue,onDeleteMessages:i,onSelectionVerb:A.start,wizardOpen:A.isOpen,commandsRef:r,onTriageContextChange:d,children:a.jsx(mt,{wizard:A,header:{title:"Daily brief",unreadCount:ze,footer:I?a.jsx(Rs,{}):void 0,searchFilter:$e,searchResults:ee,searchLoading:Y||De,relatedResults:He,relatedLoading:Qe,onSelectSearchResult:Pe,searchResultsInBody:!0,refreshControl:_e},rows:v,children:a.jsxs("div",{className:"flex h-full flex-col",children:[qe.map(t=>a.jsx(dt,{accountEmail:t.email,accountId:t.accountId},t.accountId)),a.jsx("div",{className:"min-h-0 flex-1",children:Ve})]})})})})}const Le=n.createContext(null);function U(){const e=n.useContext(Le);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function ht({thread:e,children:s}){const o=ae(),r=Js(),{searchInput:d}=O(),i=e?.threadId,x=e?.messageId,{data:f}=se({...te(),staleTime:6e4}),u=n.useMemo(()=>f?.items??[],[f]),y=n.useMemo(()=>{if(i)return u.find(g=>g.messageId===x)??u.find(g=>g.threadId===i)},[u,i,x]),p=Fs(i,x),I=y??p,S=x??I?.messageId,A=n.useMemo(()=>{if(i)return{threadId:i,mailboxId:I?.mailboxId??"",subject:I?.subject,messageId:S,authenticity:I?.authenticity}},[i,I,S]),L=n.useCallback((g,M)=>{o({to:"/mail/brief/$threadId/$messageId",params:g,replace:M?.replace,search:F=>({...F,q:d||void 0}),hash:r})},[o,r,d]),m=n.useCallback(()=>{o({to:"/mail/brief",search:g=>g,hash:r})},[o,r]),b=n.useCallback(g=>{S&&g.includes(S)&&m()},[S,m]),j=Ce({thread:I,onAfterOptimisticRemove:b}),C=Bs(),{deleteMessages:h}=Os({mailboxId:I?.mailboxId??"",messages:u,onAfterOptimisticRemove:b}),{toggleReadFor:_}=Ls({mailboxId:I?.mailboxId??"",messages:u}),E=C.focusedMessageId,B=n.useMemo(()=>u.find(g=>g.messageId===E),[u,E])??I,q=Ce({thread:B}),{nextMessageId:Q,previousMessageId:R}=Es({context:C,orderedIds:C.orderedIds,selectedMessageId:S,onClose:m,handlers:{reply:()=>j.requestCompose("reply"),replyAll:()=>j.requestCompose("reply_all"),forward:()=>j.requestCompose("forward"),delete:()=>{C.listCommandsRef.current?.requestVerb("delete")||q.deleteThread()},toggleStar:q.toggleStar,toggleRead:()=>{C.listCommandsRef.current?.requestVerb("markRead")||B&&_([B.messageId],!B.isRead)},goFlagged:()=>o({to:"/mail/flagged"}),goSettings:()=>o({to:"/settings"})}}),T=n.useCallback(g=>{if(!g)return;const M=u.find(F=>F.messageId===g);return M?{threadId:M.threadId,messageId:g}:void 0},[u]),w={selectedMessageId:S,selectedThread:I,conversation:A,onOpenThread:L,onCloseThread:m,nextThread:T(Q),previousThread:T(R),actions:j,triage:C,onDeleteMessages:h,handleDeselectIfRemoved:b};return a.jsx(Le.Provider,{value:w,children:s})}function Ee(){const{selectedMessageId:e,onOpenThread:s,triage:o,onDeleteMessages:r}=U(),{accounts:d}=O();return a.jsx(ft,{accounts:d,selectedMessageId:e,onOpenThread:s,commandsRef:o.listCommandsRef,onTriageContextChange:o.onTriageContextChange,onDeleteMessages:r})}function gt(){const{conversation:e,actions:s}=U(),{intelligenceOpen:o,onToggleIntelligence:r}=O(),d=ls()?.showIntelligencePane??!1,i=!!e,x=d&&i;return a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(Ds,{hasThread:i,intelligenceOpen:x&&o,canToggleIntelligence:x,onToggleIntelligence:r,onReply:i?()=>s.requestCompose("reply"):void 0,onReplyAll:i?()=>s.requestCompose("reply_all"):void 0,onForward:i?()=>s.requestCompose("forward"):void 0,onDelete:i?s.deleteThread:void 0,onToggleStar:i?s.toggleStar:void 0,isStarred:s.isStarred,moveContext:i&&s.accountId&&s.mailboxId?{accountId:s.accountId,currentMailboxId:s.mailboxId,onMove:s.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:s.composeRequest,onComposeClose:s.clearComposeRequest}):a.jsx(ms,{})})]})}function xt(){const{selectedThread:e,handleDeselectIfRemoved:s}=U(),{onToggleIntelligence:o}=O();return a.jsx(ke,{onClose:o,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:s})}function pt(){const{selectedThread:e,conversation:s,onOpenThread:o,onCloseThread:r,nextThread:d,previousThread:i,handleDeselectIfRemoved:x}=U(),{intelligenceOpen:f,onToggleIntelligence:u}=O();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,onSwipeNext:d?()=>o(d):void 0,onSwipePrevious:i?()=>o(i):void 0,mobileIntelligenceOpen:f}),a.jsx(qs,{isOpen:f,onClose:u,ariaLabel:"Message details",side:"right",children:a.jsx(ke,{onClose:u,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,hideCloseButton:!0,onAfterOptimisticRemove:x})})]}):a.jsx("div",{className:"h-full",children:a.jsx(Ee,{})})}const wt=Object.assign(ht,{List:Ee,Reading:gt,Intelligence:xt,Phone:pt});export{wt as B};
|
|
1
|
+
import{j as a,am as Ze,S as Xe,bo as es,o as O,bi as ss,p as ae,r as n,x as se,bp as te,v as ts,w as as,bq as os,br as ns,bs as rs,e as Re,bt as is,i as ls}from"./index-CpL4QoWb.js";import{s as Te,a as cs,b as we,u as ds,p as us,R as ms}from"./useSearchTokenContext-C5JJYphj.js";import{a4 as ve,F as ye,a5 as fs,a6 as hs,G as gs,a7 as Se,a8 as xs,a9 as ps,aa as Is,a3 as bs,ab as vs,ac as ys,ad as Ss,M as Cs,ae as js,af as Rs,ag as Ts,f as ws,w as Ms,ah as ks,s as Ns,S as As,J as Fs,O as Ce,N as Bs,K as Os,e as Ls,Y as Es,Z as Me,_ as qs,$ as ke,a0 as Ds}from"./MailListHeader-DnFZsLU5.js";import{u as Ps,a as zs,R as _s,i as Qs,b as Hs}from"./useRefreshControl-D0tR6FR3.js";import{a as $s}from"./useLabels-DsFfQJKo.js";import{d as Ws,R as Gs}from"./search-token-index-Bq5W3wIz.js";import{u as Us}from"./useMediaQuery-DsLp21rD.js";import{u as Vs,L as Ys}from"./useSemanticSearch-BM68RrQf.js";import{c as Js}from"./nav-link-CI-9pBff.js";function Ks({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:Zs(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 Zs({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 Ne=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Ae="category",Xs={unclassified:"uncategorized"},z=e=>cs(e).map(s=>s.raw),P=e=>e.join(" "),oe=e=>{const s=we(e);if(s)return Ne.find(o=>o.name===s.name&&o.value===s.value.toLowerCase())?.id},ne=e=>{const s=we(e);if(!s||s.name!==Ae)return;const o=s.value.toLowerCase(),r=Xs[o];if(r)return r;if(!(!es(o)||o==="all"))return o},Fe=e=>Ne.find(s=>s.id===e),Be=e=>Fe(e)!==void 0,et=e=>{const s=new Set;for(const o of z(e)){const r=oe(o);r&&s.add(r)}return s},st=e=>{let s="all";for(const o of z(e)){const r=ne(o);r&&(s=r)}return s},tt=(e,s)=>{const o=Fe(s);if(!o)return;const r=z(e),d=r.filter(i=>oe(i)!==s);return d.length<r.length?P(d):P([...r,Te(o.name,o.value)])},at=(e,s)=>{const o=z(e).filter(r=>!ne(r));return P(s==="all"?o:[...o,Te(Ae,s)])},ot=e=>P(z(e).filter(s=>!oe(s)&&!ne(s))),Oe=e=>e.trim().length>0,nt=e=>{if(!Oe(e.query))return e.ownFilters;const s=new Set(et(e.query));for(const o of e.ownFilters)Be(o)||s.add(o);return s},rt=e=>Oe(e.query)?st(e.query):e.ownCategory,it=(e,s)=>e.createdAt!==s.createdAt?e.createdAt-s.createdAt:e.accountId.localeCompare(s.accountId),lt=e=>[...e].sort(it),ct=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))}),dt=({accountEmail:e})=>{const s=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:()=>s({to:"/settings/accounts"}),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},ut=(e,s)=>{if(s.size===0)return{};const o=new Set,r=new Set;for(const i of e)s.has(i.id)&&(i.accountId&&o.add(i.accountId),i.mailboxId&&r.add(i.mailboxId));if(o.size>1)return{restriction:"spansAccounts",moveDisabledHint:"Move only works within one account — clear selection or pick messages from a single account"};const d=o.size===1?[...o][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 mt({header:e,rows:s,wizard:o,children:r}){const{selectedIds:d,selectedCount:i,exitSelection:x,orderedIds:f,allSelected:u,toggleAllLoaded:y}=Ts(),p=n.useMemo(()=>ut(s,d),[s,d]),{junkMailboxId:I}=ws(p.accountId),{labels:S}=$s(p.accountId),A=n.useMemo(()=>Array.from(d),[d]),L=n.useMemo(()=>s.filter(h=>d.has(h.id)).map(h=>({id:h.id,sender:h.fromName,email:h.fromEmail,subject:h.subject,date:h.timeLabel})),[s,d]),m=Ms(I,p.mailboxId),b=n.useMemo(()=>f.length>0?{checked:u,indeterminate:i>0&&!u,onChange:y}:void 0,[f.length,u,i,y]),j=p.moveDisabledHint?{tone:"warning",text:p.moveDisabledHint}:void 0,C=h=>a.jsx(As,{title:h.title,navSlot:h.navSlot,titleMeta:h.titleMeta,searchSlot:h.searchSlot,searchField:h.searchField,idleSlot:h.makeFilterSlot,count:i,onCancel:x,onDelete:()=>o.start("delete"),onMove:()=>o.start("move"),onOrganize:()=>o.start("organize"),onJunk:m?()=>o.start("junk"):void 0,onMarkRead:()=>o.start("markRead"),overflowSlot:p.accountId&&p.mailboxId&&i>0&&S.length>0?a.jsx(Ys,{accountId:p.accountId,mailboxId:p.mailboxId,messageIds:A}):void 0,selectAll:b,notice:j});return a.jsx(ks,{...e,selectionBar:C,paneOverlay:a.jsx(Ns,{verb:o.verb,accountId:p.accountId,mailboxId:p.mailboxId,selection:L,selectionRestriction:p.restriction,onFinished:x}),children:r})}function ft({accounts:e,selectedMessageId:s,onOpenThread:o,commandsRef:r,onTriageContextChange:d,onDeleteMessages:i}){const{searchQuery:x,searchInput:f,resultFolderIndex:u,onSearchChange:y}=O(),p=ds(),I=Us(),S=Ws(),A=ss(),L=ae(),m=n.useMemo(()=>lt(e.filter(t=>!t.muted?.value)),[e]),[b,j]=n.useState("all"),[C,h]=n.useState("all"),[_,E]=n.useState(new Set),[V,B]=n.useState(!1),q=n.useCallback(t=>{E(l=>{const c=new Set(l);return c.has(t)?c.delete(t):c.add(t),c})},[]),Q=n.useCallback(()=>E(new Set),[]),R=f.trim().length>0,T=n.useMemo(()=>nt({query:f,ownFilters:_}),[f,_]),w=n.useMemo(()=>rt({query:f,ownCategory:C}),[f,C]),g=n.useCallback(t=>{if(!R||!Be(t)){q(t);return}const l=tt(f,t);l!==void 0&&y(l)},[R,f,y,q]),M=n.useCallback(t=>{if(!R){h(t);return}y(at(f,t))},[R,f,y]),F=n.useCallback(()=>{h("all"),j("all"),Q(),R&&y(ot(f))},[R,f,y,Q]),{data:H,isLoading:Y,isError:re,refetch:ie}=se({...te(),staleTime:6e4}),$=ts({queries:m.map(t=>({...as({path:{accountId:t.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),W=n.useMemo(()=>{const t=new Map;for(let l=0;l<m.length;l++){const c=m[l].accountId,Ye=($[l]?.data?.items??[]).reduce((Je,Ke)=>Je+(Ke.unseenCount??0),0);t.set(c,Ye)}return t},[m,$]),qe=n.useMemo(()=>m.filter((t,l)=>{const c=$[l];return c?.isError?!os(c.error):!1}),[m,$]),{freeText:k,tokens:J}=us(x.trim().toLowerCase(),p),{data:le,isFetching:De}=se({...te({query:{query:k,limit:ct}}),enabled:k.length>0,staleTime:3e4}),v=n.useMemo(()=>{const t=ve(H?.items??[]).map(ye);return(k?fs(t.filter(c=>hs(c,k)),ve(le?.items??[]).map(ye)):t).filter(c=>(b==="all"||c.accountId===b)&&gs(c,J))},[H,le,b,k,J]),{bodyRows:ce,briefSpamOffer:K}=n.useMemo(()=>{if(!k)return{bodyRows:v,briefSpamOffer:void 0};const t=v.map(N=>Se(N,u)),{spam:l}=xs(t);if(l.length===0)return{bodyRows:v,briefSpamOffer:void 0};const c=new Set(l.map(N=>N.id));return{bodyRows:v.filter(N=>!c.has(N.id)),briefSpamOffer:ps(t)}},[v,k,u]),de=n.useMemo(()=>Is(ce),[ce]),ue=n.useCallback((t,l)=>{const c=v.find(N=>N.id===t)?.threadId;c&&o?.({threadId:c,messageId:t},l)},[v,o]),Pe=n.useCallback(t=>{const l=t.threadId??v.find(c=>c.id===t.id)?.threadId;l&&o?.({threadId:l,messageId:t.id})},[v,o]),Z=n.useMemo(()=>m.length<=1?[]:[{id:"all",label:"All",active:b==="all"},...m.map(t=>({id:t.accountId,label:t.email.split("@")[0]??t.email,count:W.get(t.accountId),active:b===t.accountId}))],[m,W,b]),D=n.useMemo(()=>e.filter(t=>t.muted?.value).length,[e]),ze=n.useMemo(()=>Array.from(W.values()).reduce((t,l)=>t+l,0),[W]),X=n.useMemo(()=>m.map(t=>t.accountId),[m]),{hasNewMail:me}=Ps(),{state:fe,errorMessage:he,refresh:ge}=zs(X,{onSettled:()=>ie()}),_e=n.useMemo(()=>a.jsx(_s,{state:fe,onRefresh:ge,label:"Refresh daily brief",errorMessage:he,hasUpdate:me(X)}),[fe,ge,he,me,X]),ee=n.useMemo(()=>v.filter(t=>(w==="all"||t.category===w)&&ns(t,T)).map(t=>Se(t,u)),[v,w,T,u]),{hits:xe,isLoading:Qe}=Vs(),He=n.useMemo(()=>{const t=new Map;for(const c of H?.items??[])t.set(c.messageId,c.threadId);const l=ee.map(c=>t.get(c.id)).filter(c=>c!=null);return bs(xe,l,u)},[xe,ee,H,u]),$e=n.useMemo(()=>{const t=vs(Z.map(l=>({id:l.id,label:l.label,count:l.count,active:l.active})));return{categories:t.categories,filters:t.filters,sources:t.sources,sourcesNote:D>0?`+${D} muted`:void 0,selectedCategory:w,activeFilters:T,expanded:V,onExpandedChange:B,onSelectCategory:l=>M(l),onSelectSource:j,onToggleFilter:l=>g(l),onClear:F}},[Z,D,w,T,V,g,M,F]),pe=de.length===0&&b==="all"&&k.length===0&&J.length===0,We=n.useMemo(()=>m.map(t=>t.accountId),[m]),Ge=n.useMemo(()=>m.some(t=>Qs(t.syncPhase)),[m]),G=Hs(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=ys({tier:S,hasLiveInput:R,hasCommittedQuery:x.trim().length>0,bodyRendersCommittedResults:!0}),Ve=be?a.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[K&&a.jsx(Ss,{count:K.count,onScopeToSpam:()=>L({to:"/mail/$mailboxId",params:{mailboxId:K.mailboxId},search:{q:x||void 0}})}),a.jsx("div",{className:"min-h-0 flex-1",children:a.jsx(rs,{sections:de,briefCategory:w,Row:Cs,selectedThreadId:s,onSelectThread:ue,onSelectBriefCategory:M,sources:Z,sourcesNote:D>0?`+${D} muted`:void 0,onSelectSource:j,activeFilters:T,onToggleFilter:g,onClearFilters:F})})]}):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(Gs,{className:"size-3.5"}),"Try again"]})]}):G.resolved?a.jsx(Ks,{sync:G.syncing?{synced:G.synced,total:G.total}:void 0}):Ie;return a.jsx(is,{hasSheet:be&&!Ue,children:a.jsx(js,{selectedMessageId:s,onOpen:ue,onDeleteMessages:i,onSelectionVerb:A.start,wizardOpen:A.isOpen,commandsRef:r,onTriageContextChange:d,children:a.jsx(mt,{wizard:A,header:{title:"Daily brief",unreadCount:ze,footer:I?a.jsx(Rs,{}):void 0,searchFilter:$e,searchResults:ee,searchLoading:Y||De,relatedResults:He,relatedLoading:Qe,onSelectSearchResult:Pe,searchResultsInBody:!0,refreshControl:_e},rows:v,children:a.jsxs("div",{className:"flex h-full flex-col",children:[qe.map(t=>a.jsx(dt,{accountEmail:t.email,accountId:t.accountId},t.accountId)),a.jsx("div",{className:"min-h-0 flex-1",children:Ve})]})})})})}const Le=n.createContext(null);function U(){const e=n.useContext(Le);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function ht({thread:e,children:s}){const o=ae(),r=Js(),{searchInput:d}=O(),i=e?.threadId,x=e?.messageId,{data:f}=se({...te(),staleTime:6e4}),u=n.useMemo(()=>f?.items??[],[f]),y=n.useMemo(()=>{if(i)return u.find(g=>g.messageId===x)??u.find(g=>g.threadId===i)},[u,i,x]),p=Fs(i,x),I=y??p,S=x??I?.messageId,A=n.useMemo(()=>{if(i)return{threadId:i,mailboxId:I?.mailboxId??"",subject:I?.subject,messageId:S,authenticity:I?.authenticity}},[i,I,S]),L=n.useCallback((g,M)=>{o({to:"/mail/brief/$threadId/$messageId",params:g,replace:M?.replace,search:F=>({...F,q:d||void 0}),hash:r})},[o,r,d]),m=n.useCallback(()=>{o({to:"/mail/brief",search:g=>g,hash:r})},[o,r]),b=n.useCallback(g=>{S&&g.includes(S)&&m()},[S,m]),j=Ce({thread:I,onAfterOptimisticRemove:b}),C=Bs(),{deleteMessages:h}=Os({mailboxId:I?.mailboxId??"",messages:u,onAfterOptimisticRemove:b}),{toggleReadFor:_}=Ls({mailboxId:I?.mailboxId??"",messages:u}),E=C.focusedMessageId,B=n.useMemo(()=>u.find(g=>g.messageId===E),[u,E])??I,q=Ce({thread:B}),{nextMessageId:Q,previousMessageId:R}=Es({context:C,orderedIds:C.orderedIds,selectedMessageId:S,onClose:m,handlers:{reply:()=>j.requestCompose("reply"),replyAll:()=>j.requestCompose("reply_all"),forward:()=>j.requestCompose("forward"),delete:()=>{C.listCommandsRef.current?.requestVerb("delete")||q.deleteThread()},toggleStar:q.toggleStar,toggleRead:()=>{C.listCommandsRef.current?.requestVerb("markRead")||B&&_([B.messageId],!B.isRead)},goFlagged:()=>o({to:"/mail/flagged"}),goSettings:()=>o({to:"/settings"})}}),T=n.useCallback(g=>{if(!g)return;const M=u.find(F=>F.messageId===g);return M?{threadId:M.threadId,messageId:g}:void 0},[u]),w={selectedMessageId:S,selectedThread:I,conversation:A,onOpenThread:L,onCloseThread:m,nextThread:T(Q),previousThread:T(R),actions:j,triage:C,onDeleteMessages:h,handleDeselectIfRemoved:b};return a.jsx(Le.Provider,{value:w,children:s})}function Ee(){const{selectedMessageId:e,onOpenThread:s,triage:o,onDeleteMessages:r}=U(),{accounts:d}=O();return a.jsx(ft,{accounts:d,selectedMessageId:e,onOpenThread:s,commandsRef:o.listCommandsRef,onTriageContextChange:o.onTriageContextChange,onDeleteMessages:r})}function gt(){const{conversation:e,actions:s}=U(),{intelligenceOpen:o,onToggleIntelligence:r}=O(),d=ls()?.showIntelligencePane??!1,i=!!e,x=d&&i;return a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(Ds,{hasThread:i,intelligenceOpen:x&&o,canToggleIntelligence:x,onToggleIntelligence:r,onReply:i?()=>s.requestCompose("reply"):void 0,onReplyAll:i?()=>s.requestCompose("reply_all"):void 0,onForward:i?()=>s.requestCompose("forward"):void 0,onDelete:i?s.deleteThread:void 0,onToggleStar:i?s.toggleStar:void 0,isStarred:s.isStarred,moveContext:i&&s.accountId&&s.mailboxId?{accountId:s.accountId,currentMailboxId:s.mailboxId,onMove:s.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:s.composeRequest,onComposeClose:s.clearComposeRequest}):a.jsx(ms,{})})]})}function xt(){const{selectedThread:e,handleDeselectIfRemoved:s}=U(),{onToggleIntelligence:o}=O();return a.jsx(ke,{onClose:o,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:s})}function pt(){const{selectedThread:e,conversation:s,onOpenThread:o,onCloseThread:r,nextThread:d,previousThread:i,handleDeselectIfRemoved:x}=U(),{intelligenceOpen:f,onToggleIntelligence:u}=O();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,onSwipeNext:d?()=>o(d):void 0,onSwipePrevious:i?()=>o(i):void 0,mobileIntelligenceOpen:f}),a.jsx(qs,{isOpen:f,onClose:u,ariaLabel:"Message details",side:"right",children:a.jsx(ke,{onClose:u,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,hideCloseButton:!0,onAfterOptimisticRemove:x})})]}):a.jsx("div",{className:"h-full",children:a.jsx(Ee,{})})}const wt=Object.assign(ht,{List:Ee,Reading:gt,Intelligence:xt,Phone:pt});export{wt as B};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t,e as r}from"./index-
|
|
1
|
+
import{j as t,e as r}from"./index-CpL4QoWb.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 U,r as n,bG as Y,o as P,bi as Z,aM as X,aN as ee,j as a,p as te,i as se}from"./index-
|
|
1
|
+
import{bF as U,r as n,bG as Y,o as P,bi as Z,aM as X,aN as ee,j as a,p as te,i as se}from"./index-CpL4QoWb.js";import{u as ae,p as oe,R as re}from"./useSearchTokenContext-C5JJYphj.js";import{F as ne,a6 as ie,G as de,an as le,a7 as ce,d as ue,M as ge,ae as he,ao as me,ag as fe,s as pe,J as xe,O as z,N as Ie,K as Te,e as be,Y as ve,Z as H,_ as Ce,$ as Q,a0 as ye}from"./MailListHeader-DnFZsLU5.js";import{u as Re,b as Se,a as je}from"./MailViewChrome-B1N4z7Pm.js";import{f as we}from"./ErrorState-iyZ1eEDd.js";import{u as Fe}from"./useMediaQuery-DsLp21rD.js";import{c as Me}from"./nav-link-CI-9pBff.js";const Pe=()=>Y({query:{starred:!0,order:"desc"}});function V(){const{data:e,isLoading:t,isError:o,error:i,refetch:m,fetchNextPage:s,hasNextPage:h,isFetchingNextPage:c}=Re({queryKey:Pe(),queryFn:async({pageParam:f})=>{const{data:d}=await U({query:{starred:!0,order:"desc",continuationToken:f},throwOnError:!0});return d},initialPageParam:void 0,getNextPageParam:f=>f.continuationToken,staleTime:6e4});return{threads:n.useMemo(()=>(e?.pages??[]).flatMap(f=>f.items??[]),[e]),isLoading:t,isError:o,error:i,refetch:m,fetchNextPage:s,hasNextPage:h,isFetchingNextPage:c}}const ke=e=>{const t=new Set;return e.filter(o=>t.has(o.threadId)?!1:(t.add(o.threadId),!0))},Le={unread:e=>!e.isRead,attachment:e=>e.hasAttachment===!0};function Oe({rows:e,verb:t}){const{selectedIds:o,exitSelection:i}=fe(),m=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:m,selectionRestriction:"spansAccounts",onFinished:i})}function Ne({selectedMessageId:e,onOpenThread:t,commandsRef:o,onTriageContextChange:i,onDeleteMessages:m}){const{searchQuery:s,resultFolderIndex:h}=P(),c=ae(),T=Fe(),f=Z(),[d,x]=n.useState("all"),[S,k]=n.useState(new Set),v=n.useCallback(r=>{k(g=>{const p=new Set(g);return p.has(r)?p.delete(r):p.add(r),p})},[]),j=n.useCallback(()=>{x("all"),k(new Set)},[]),{threads:b,isLoading:I,isError:L,error:A,refetch:O,fetchNextPage:E,hasNextPage:C,isFetchingNextPage:w}=V(),{freeText:y,tokens:N}=oe(s.trim().toLowerCase(),c),u=n.useMemo(()=>{const r=Array.from(S).map(g=>Le[g]).filter(g=>g!=null);return ke(b).map(ne).filter(g=>(d==="all"||g.category===d)&&r.every(p=>p(g))&&(!y||ie(g,y))&&de(g,N))},[b,d,S,y,N]),F=n.useCallback((r,g)=>{const p=u.find(J=>J.id===r)?.threadId;p&&t?.({threadId:p,messageId:r},g)},[u,t]),l=n.useCallback(r=>{const g=r.threadId??u.find(p=>p.id===r.id)?.threadId;g&&t?.({threadId:g,messageId:r.id})},[u,t]),R=n.useMemo(()=>le(),[]),M=n.useMemo(()=>u.map(r=>ce(r,h)),[u,h]),G=n.useMemo(()=>u.filter(r=>!r.isRead).length,[u]),B=I?"loading":L?"error":u.length===0?"empty":"ready",W=n.useCallback(()=>{const r=X(ee());window.open(r,"_blank","noopener,noreferrer")},[]),D=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:u.map(r=>a.jsx(ge,{thread:r,active:r.id===e,onClick:()=>F(r.id)},r.id))}),C?a.jsx("button",{type:"button",className:"w-full py-3 text-sm text-muted hover:text-fg disabled:opacity-50",onClick:()=>E(),disabled:w,children:w?"Loading…":"Load more"}):null]})});return a.jsx(Se,{title:"Starred",unreadCount:G,preset:R,selectedCategory:d,activeFilters:S,onSelectCategory:x,onToggleFilter:v,onClearFilters:j,searchResults:M,searchLoading:I,onSelectSearchResult:l,searchResultsInBody:!0,children:a.jsxs(he,{selectedMessageId:e,onOpen:F,onDeleteMessages:m,onSelectionVerb:f.start,wizardOpen:f.isOpen,commandsRef:o,onTriageContextChange:i,children:[a.jsx(je,{listTitle:"Starred",sections:[{id:"flagged",threads:u}],flatList:!0,hideHeader:!0,listState:D.searchResults?"ready":B,searchQuery:y?s:void 0,errorMessage:L?we(A):void 0,onRetry:()=>O(),onReportError:W,selectedThreadId:e,onSelectThread:F,isDesktop:T,selectionBar:a.jsx(me,{title:"Starred"}),listBody:D.searchResults??(B==="ready"?$:void 0)}),a.jsx(Oe,{rows:u,verb:f.verb})]})})}const _=n.createContext(null);function q(){const e=n.useContext(_);if(!e)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return e}function qe({thread:e,children:t}){const o=te(),i=Me(),{searchInput:m}=P(),s=e?.threadId,h=e?.messageId,{threads:c}=V(),T=n.useMemo(()=>{if(s)return c.find(l=>l.messageId===h)??c.find(l=>l.threadId===s)},[c,s,h]),f=xe(s,h),d=T??f,x=h??d?.messageId,S=n.useMemo(()=>{if(s)return{threadId:s,mailboxId:d?.mailboxId??"",subject:d?.subject,messageId:x,authenticity:d?.authenticity}},[s,d,x]),k=n.useCallback((l,R)=>{o({to:"/mail/flagged/$threadId/$messageId",params:l,replace:R?.replace,search:M=>({...M,q:m||void 0}),hash:i})},[o,i,m]),v=n.useCallback(()=>{o({to:"/mail/flagged",search:l=>l,hash:i})},[o,i]),j=n.useCallback(l=>{x&&l.includes(x)&&v()},[x,v]),b=z({thread:d,onAfterOptimisticRemove:j}),I=Ie(),{deleteMessages:L}=Te({mailboxId:d?.mailboxId??"",messages:c,onAfterOptimisticRemove:j}),{toggleReadFor:A}=be({mailboxId:d?.mailboxId??"",messages:c}),O=I.focusedMessageId,C=n.useMemo(()=>c.find(l=>l.messageId===O),[c,O])??d,w=z({thread:C}),{nextMessageId:y,previousMessageId:N}=ve({context:I,orderedIds:I.orderedIds,selectedMessageId:x,onClose:v,handlers:{reply:()=>b.requestCompose("reply"),replyAll:()=>b.requestCompose("reply_all"),forward:()=>b.requestCompose("forward"),delete:()=>{I.listCommandsRef.current?.requestVerb("delete")||w.deleteThread()},toggleStar:w.toggleStar,toggleRead:()=>{I.listCommandsRef.current?.requestVerb("markRead")||C&&A([C.messageId],!C.isRead)},goBrief:()=>o({to:"/mail/brief"}),goSettings:()=>o({to:"/settings"})}}),u=n.useCallback(l=>{if(!l)return;const R=c.find(M=>M.messageId===l);return R?{threadId:R.threadId,messageId:l}:void 0},[c]),F={selectedMessageId:x,selectedThread:d,conversation:S,onOpenThread:k,onCloseThread:v,nextThread:u(y),previousThread:u(N),actions:b,triage:I,onDeleteMessages:L,handleDeselectIfRemoved:j};return a.jsx(_.Provider,{value:F,children:t})}function K(){const{selectedMessageId:e,onOpenThread:t,triage:o,onDeleteMessages:i}=q();return a.jsx(Ne,{selectedMessageId:e,onOpenThread:t,commandsRef:o.listCommandsRef,onTriageContextChange:o.onTriageContextChange,onDeleteMessages:i})}function Ae(){const{conversation:e,actions:t}=q(),{intelligenceOpen:o,onToggleIntelligence:i}=P(),m=se()?.showIntelligencePane??!1,s=!!e,h=m&&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:h&&o,canToggleIntelligence:h,onToggleIntelligence:i,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 Ee(){const{selectedThread:e,handleDeselectIfRemoved:t}=q(),{onToggleIntelligence:o}=P();return a.jsx(Q,{onClose:o,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function Be(){const{selectedThread:e,conversation:t,onCloseThread:o,onOpenThread:i,nextThread:m,previousThread:s,handleDeselectIfRemoved:h}=q(),{intelligenceOpen:c,onToggleIntelligence:T}=P();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:T,onSwipeNext:m?()=>i(m):void 0,onSwipePrevious:s?()=>i(s):void 0,mobileIntelligenceOpen:c}),a.jsx(Ce,{isOpen:c,onClose:T,ariaLabel:"Message details",side:"right",children:a.jsx(Q,{onClose:T,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,hideCloseButton:!0,onAfterOptimisticRemove:h})})]}):a.jsx("div",{className:"h-full",children:a.jsx(K,{})})}const Ge=Object.assign(qe,{List:K,Reading:Ae,Intelligence:Ee,Phone:Be});export{Ge as F};
|