@remit/web-client-dist 0.0.381 → 0.0.382
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-C97VGEGP.js +1 -0
- package/assets/{ErrorState-C1M66eLl.js → ErrorState-C44ej67v.js} +1 -1
- package/assets/FlaggedPane-BhGK5GmD.js +1 -0
- package/assets/{FullCompose-Dxa6ZR8u.js → FullCompose-xrAPlRz2.js} +1 -1
- package/assets/MailListHeader-DjXU-UVW.js +7 -0
- package/assets/{MailViewChrome-Ctw7cdnR.js → MailViewChrome-ElUoQDNY.js} +1 -1
- package/assets/MailboxPane-B5ywFwus.js +1 -0
- package/assets/{NavMenuButton-DfW1H6aU.js → NavMenuButton-CKMQupWQ.js} +1 -1
- package/assets/{OnboardingWizard-BHoib2d0.js → OnboardingWizard-Cyaaj3aI.js} +1 -1
- package/assets/{OutboxPane-C1JJZ3O8.js → OutboxPane-BxtiKiVw.js} +1 -1
- package/assets/_mailboxId-B9s7cQ2f.js +1 -0
- package/assets/_messageId-BiCjr2GK.js +1 -0
- package/assets/_messageId-Dy1EWIU9.js +1 -0
- package/assets/_messageId-u0yJ-cu0.js +1 -0
- package/assets/_outboxMessageId-C9ZB8FDc.js +1 -0
- package/assets/_threadId-CdNTSBfi.js +1 -0
- package/assets/_threadId-DEuvL78o.js +1 -0
- package/assets/_threadId-bU8PhYqM.js +1 -0
- package/assets/{accounts-9DfWemQE.js → accounts-Br_3qiNy.js} +1 -1
- package/assets/{advanced-Da7Haef2.js → advanced-CYCLHqW6.js} +1 -1
- package/assets/{appearance-Cu01X2cP.js → appearance-B_wq3yRB.js} +1 -1
- package/assets/{attachment-file-BsIFxUnS.js → attachment-file-C7mfrsYw.js} +1 -1
- package/assets/{avatar-BosRyUDx.js → avatar-DiSUKw_G.js} +1 -1
- package/assets/{bottom-sheet-DcSSB9VN.js → bottom-sheet-Ctn4oDgl.js} +1 -1
- package/assets/{brief-9ppayR6t.js → brief-3RV7P9zj.js} +1 -1
- package/assets/brief-DZrgmf5f.js +1 -0
- package/assets/{browser-ponyfill-J8RE5Xz2.js → browser-ponyfill-B2Bmwqab.js} +1 -1
- package/assets/{bug-Dp2Hzou6.js → bug-DbfS0EjA.js} +1 -1
- package/assets/{circle-check-PX98a4WV.js → circle-check-BZJcntVD.js} +1 -1
- package/assets/{circle-check-big-332iqzog.js → circle-check-big-Bm7MBirE.js} +1 -1
- package/assets/{circle-help-CA3mJ370.js → circle-help-BjEkGzZf.js} +1 -1
- package/assets/{clock-D_rv0tCB.js → clock-ByiJjM4d.js} +1 -1
- package/assets/compose._-_outboxMessageId_-BG4ca8C-.js +1 -0
- package/assets/compose._-_outboxMessageId_-BsPyeujk.js +1 -0
- package/assets/compose._-_outboxMessageId_-BuTsq3Vi.js +1 -0
- package/assets/compose._-_outboxMessageId_-DjqnwzTd.js +1 -0
- package/assets/{confirm-dialog-Cj58-8wR.js → confirm-dialog-CDe1o4F1.js} +1 -1
- package/assets/{download-DJvO67nu.js → download-mKoC4jWf.js} +1 -1
- package/assets/{filters-DtabYDCh.js → filters-C2C1upeV.js} +1 -1
- package/assets/{flagged-DEaJ9F9E.js → flagged-C0zGbhkV.js} +1 -1
- package/assets/flagged-CQ6eujAo.js +1 -0
- package/assets/{folders-Sz7c27v6.js → folders-BNgQ7UO8.js} +1 -1
- package/assets/index-4yLTuQTq.js +1 -0
- package/assets/index-BN_e_sDm.js +1 -0
- package/assets/index-C8SVtPXV.js +1 -0
- package/assets/index-D0lWi3oy.js +1 -0
- package/assets/{index-BBlkR2lm.js → index-DAHF5TfK.js} +4 -4
- package/assets/index-Dy1EWIU9.js +1 -0
- package/assets/{index-DpWfLpb7.js → index-QHPDio7k.js} +11 -11
- package/assets/index-ZOTeCe1x.js +1 -0
- package/assets/index-cyGBKIRg.js +1 -0
- package/assets/index-u0yJ-cu0.js +1 -0
- package/assets/{kbd-SiNO_Aua.js → kbd-B-DC1Fdv.js} +1 -1
- package/assets/{labels-Bh5ul3xb.js → labels-a4rbCmcF.js} +1 -1
- package/assets/{mail-CDmV61sd.js → mail-BBWKJARt.js} +1 -1
- package/assets/{mail-BsugoFoQ.js → mail-FkPfQf6A.js} +1 -1
- package/assets/{menu-BtHNv3F8.js → menu-Bt0BQnF2.js} +1 -1
- package/assets/{move-options-BOLumMSr.js → move-options-Kys6410Y.js} +1 -1
- package/assets/{onboarding-D-OrljoR.js → onboarding-CQUPNxAi.js} +1 -1
- package/assets/outbox-svoNCP8U.js +1 -0
- package/assets/{pencil-CjU_Ekj6.js → pencil-BNcRrJD5.js} +1 -1
- package/assets/{rich-text-DmtTFEdn.js → rich-text-DW3iTxY4.js} +1 -1
- package/assets/{rich-text-spellcheck-worker-provider-C2sJO4MH.js → rich-text-spellcheck-worker-provider-C9xCdZ3G.js} +1 -1
- package/assets/{rotate-ccw-qUu8sNqY.js → rotate-ccw-CnVwerm1.js} +1 -1
- package/assets/{row-actions-DhmbyA2V.js → row-actions-CM-WNtqo.js} +1 -1
- package/assets/{search-scope-BvS1pMa6.js → search-scope-BISrow5X.js} +1 -1
- package/assets/{search-token-index-jGvf0dJ0.js → search-token-index-Z4lRUm0T.js} +1 -1
- package/assets/{search-view-H09w67ZC.js → search-view-Bw5aHOnp.js} +1 -1
- package/assets/{senders-Bb-8mua8.js → senders-d4URgrRY.js} +1 -1
- package/assets/settings-D97j6DGO.js +1 -0
- package/assets/{settings-screen-DhcpD_Eu.js → settings-screen-CodaT5E0.js} +1 -1
- package/assets/{shield-check-D3e9FJOA.js → shield-check-BGl8p-jY.js} +1 -1
- package/assets/{suggested-vips-CGUr8fR1.js → suggested-vips-C64teqL7.js} +1 -1
- package/assets/{useDebouncedValue-Bvs_pdKk.js → useDebouncedValue-DoNzqpME.js} +1 -1
- package/assets/{useFilters-BDf4e7fG.js → useFilters-Cp7Jd_nu.js} +1 -1
- package/assets/{useLabels-C_Ccg2bp.js → useLabels-B6J8xduK.js} +1 -1
- package/assets/{useMediaQuery-fCnkE4fe.js → useMediaQuery-CEZ0yAjv.js} +1 -1
- package/assets/{useMessageBodyContent-1l9msTY_.js → useMessageBodyContent-DB08ZFCn.js} +1 -1
- package/assets/{useRefreshControl-DSz_548v.js → useRefreshControl-CRp4Jhao.js} +1 -1
- package/assets/{useSearchMirror-DnymUkKH.js → useSearchMirror-DO24X2oc.js} +1 -1
- package/assets/{useSearchTokenContext-DqJZZd-6.js → useSearchTokenContext-Ba_lhYQq.js} +1 -1
- package/assets/{useSemanticSearch-C_xD58fg.js → useSemanticSearch-BgJ0Qnwq.js} +1 -1
- package/assets/{useSignature-T_jnc_Ys.js → useSignature-MnDOuFPn.js} +1 -1
- package/index.html +1 -1
- package/package.json +1 -1
- package/assets/BriefPane-pPxpoBvo.js +0 -1
- package/assets/FlaggedPane-CVEL3dSv.js +0 -1
- package/assets/MailListHeader-CqEQzbdu.js +0 -7
- package/assets/MailboxPane-D27Tg1rD.js +0 -1
- package/assets/_mailboxId-DqsMhRRt.js +0 -1
- package/assets/_messageId-BbRCun7m.js +0 -1
- package/assets/_messageId-DPWTeebA.js +0 -1
- package/assets/_messageId-JXdSCEJ7.js +0 -1
- package/assets/_outboxMessageId-BbPyEvLt.js +0 -1
- package/assets/_threadId-BR--aLeK.js +0 -1
- package/assets/_threadId-BgVfkr4j.js +0 -1
- package/assets/_threadId-Cdq13pLV.js +0 -1
- package/assets/brief-CnxjQNC8.js +0 -1
- package/assets/compose._-_outboxMessageId_-B32NbToI.js +0 -1
- package/assets/compose._-_outboxMessageId_-BR9g4uXi.js +0 -1
- package/assets/compose._-_outboxMessageId_-CvuyTn91.js +0 -1
- package/assets/compose._-_outboxMessageId_-gBK7x3Ih.js +0 -1
- package/assets/flagged-QyGEaEHA.js +0 -1
- package/assets/index-BbRCun7m.js +0 -1
- package/assets/index-CITqA9GW.js +0 -1
- package/assets/index-CioepYEa.js +0 -1
- package/assets/index-DOM5Vq2Y.js +0 -1
- package/assets/index-DPWTeebA.js +0 -1
- package/assets/index-DgY7oj0G.js +0 -1
- package/assets/index-DqjfWRpI.js +0 -1
- package/assets/index-DzZ7bpbe.js +0 -1
- package/assets/outbox-BPJcsdsu.js +0 -1
- package/assets/settings-jx03ah89.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e}from"./index-
|
|
1
|
+
import{c as e}from"./index-DAHF5TfK.js";const c=e("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);export{c as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t,$ as e}from"./index-
|
|
1
|
+
import{j as t,$ as e}from"./index-DAHF5TfK.js";const o=()=>t.jsx(e,{to:"/settings/senders",replace:!0});export{o as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o}from"./index-
|
|
1
|
+
import{r as o}from"./index-DAHF5TfK.js";const n=(e,t)=>{const[r,u]=o.useState(e);return o.useEffect(()=>{const s=setTimeout(()=>u(e),t);return()=>clearTimeout(s)},[e,t]),r};export{n as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as m,a7 as b,cZ as E,s as C,c_ as x,cG as F,c$ as D,n as M,d0 as N,d1 as P,d2 as L,d3 as z}from"./index-
|
|
1
|
+
import{r as m,a7 as b,cZ as E,s as C,c_ as x,cG as F,c$ as D,n as M,d0 as N,d1 as P,d2 as L,d3 as z}from"./index-DAHF5TfK.js";const B=(e,t)=>{if(e.state==="Expired")return"Expired";if(e.scope!=="Temporary"||!e.expiresAt)return"Active";const r=Date.parse(e.expiresAt);return Number.isNaN(r)?"Active":r<=t?"Expired":"Active"},K=e=>{if(!e)return;const t=Date.parse(e);if(!Number.isNaN(t))return new Date(t).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})},O=(e,t=new Date)=>{if(!e)return;const r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!r)return;const[,a,i,n]=r,s=new Date(Number(a),Number(i)-1,Number(n),23,59,59,0);if(Number.isNaN(s.getTime()))return;const o=-t.getTimezoneOffset(),d=o>=0?"+":"-",l=Math.abs(o),c=String(Math.floor(l/60)).padStart(2,"0"),f=String(l%60).padStart(2,"0"),u=p=>String(p).padStart(2,"0");return`${s.getFullYear()}-${u(s.getMonth()+1)}-${u(s.getDate())}T${u(s.getHours())}:${u(s.getMinutes())}:${u(s.getSeconds())}${d}${c}:${f}`},h="None",G=e=>!e.literalClauses.some(t=>t.field==="HasWords"),y=e=>({...e.anchorMessageId?{anchorMessageId:e.anchorMessageId}:{},matchOperator:e.matchOperator,literalClauses:e.literalClauses,actionLabelId:e.labelId??h,actionMailboxId:e.moveMailboxId??h}),V=({mode:e,ruleScope:t})=>t==="standing"?"standing":t==="until"?"temporary":e==="selected"?"just-these":"all-like-these",X=({mode:e,ruleScope:t,anchorMessageId:r,clauses:a,matchOperator:i,moveMailboxId:n,until:s})=>({...e==="similar"&&r?{anchorMessageId:r}:{},matchOperator:i==="all"?"And":"Or",literalClauses:a.map(o=>({field:o.field,value:o.value})),moveMailboxId:n,expiresAt:t==="until"?O(s??""):void 0}),S=(e,t,r)=>({name:r,scope:t==="standing"?"Standing":"Temporary",...t==="temporary"&&e.expiresAt?{expiresAt:e.expiresAt}:{},matchOperator:e.matchOperator,literalClauses:e.literalClauses,actionLabelId:e.labelId??h,actionMailboxId:e.moveMailboxId??h,...e.anchorMessageId?{anchorMessageId:e.anchorMessageId}:{}}),T=new Set(["Complete","Failed"]),v=e=>e!==void 0&&T.has(e),w=1e3,_=15e3,$=e=>{const t=Math.max(0,e),r=w*2**t;return Math.min(r,_)},J=(e,t,r)=>{if(e)return{kind:r?"restartFailed":"startFailed",error:e};if(t)return{kind:"statusUnreadable",error:t}},Y=e=>{const[t,r]=m.useState(),a=b({...E(),onSuccess:g=>r(g.organizeJobId)}),{mutate:i}=a,n=C({...x({path:{accountId:e??"",organizeJobId:t??""}}),enabled:!!e&&!!t,refetchInterval:g=>{const I=g.state.data?.state;return v(I)?!1:$(g.state.dataUpdateCount)}}),s=m.useCallback(g=>{e&&i({path:{accountId:e},body:y(g)})},[e,i]),{refetch:o}=n,d=m.useCallback(()=>{o()},[o]),l=n.data,c=a.isPending?void 0:l,f=c?.state??a.data?.state,u=v(c?.state),p={state:f,matchedCount:c?.matchedCount??0,appliedCount:c?.appliedCount??0,failedCount:c?.failedCount??0,errorMessage:c?.errorMessage??""};return{start:s,refreshStatus:d,progress:p,isStarting:a.isPending,isRunning:!!t&&!u,isDone:u,failure:J(a.error,n.error,!!l)}},Z=["From","Subject","HasWords","ListId","FromDomain"],k=e=>{const t=e.trim(),r=t.match(/<([^>]+)>/);return(r?r[1]:t).trim().toLowerCase()},ee=(e,t)=>e==="ListId"?k(t):t.trim(),R=e=>e==="all"?"And":"Or",U=(e,t)=>{const r=e.widen!==void 0&&!e.widen.inactive,a=e.clauses.map(i=>({field:i.field,value:i.value}));return{...r&&t?{anchorMessageId:t}:{},matchOperator:R(e.matchOperator),literalClauses:a}},Q=e=>e.anchorMessageId!==void 0||!e.literalClauses.some(t=>t.field==="HasWords"),j=e=>JSON.stringify({anchor:e.anchorMessageId??null,operator:e.matchOperator,clauses:e.literalClauses.map(t=>`${t.field} ${t.value}`)}),te=(e,t)=>{const r=U(e,t);return{...r.anchorMessageId?{anchorMessageId:r.anchorMessageId}:{},matchOperator:r.matchOperator,literalClauses:r.literalClauses,moveMailboxId:e.moveMailboxId,labelId:e.labelId,expiresAt:e.scope==="until"?O(e.until??""):void 0}},q=(e,t)=>e.error!==void 0&&e.errorSignature===t?{status:"error",reason:e.error}:e.count===void 0?{status:"loading"}:e.previewedSignature===t?{status:"ready",count:e.count}:{status:"ready",count:e.count,stale:!0},H=350,re=(e,t,r)=>{const a=b(F()),{mutateAsync:i}=a,n=j(t),[s,o]=m.useState(()=>({})),d=m.useRef(t);d.current=t;const l=m.useRef(n),c=Q(t);return m.useEffect(()=>{if(!e||!c||n===s.previewedSignature||n===s.errorSignature)return;const f=setTimeout(()=>{const u=n;l.current=u,i({path:{accountId:e},body:y({...d.current})}).then(p=>{l.current===u&&o({count:p.matchedCount,matchedIds:p.messageIds,previewedSignature:u})}).catch(p=>{l.current===u&&o(g=>({...g,error:p instanceof Error?p.message:"Couldn't count matches.",errorSignature:u}))})},H);return()=>clearTimeout(f)},[e,c,n,s.previewedSignature,s.errorSignature,i]),c?{count:q(s,n),matchedIds:s.previewedSignature===n?s.matchedIds??[]:[]}:{count:{status:"error",reason:D},matchedIds:[]}},A=e=>P({path:{accountId:e}}),se=e=>{const t=C({...L({path:{accountId:e??""}}),enabled:!!e});return{filters:t.data?.items??[],isPending:t.isPending,isError:t.isError,error:t.error,refetch:t.refetch}},ae=e=>{const t=M(),r=b({...N(),onSuccess:()=>{e&&t.invalidateQueries({queryKey:A(e)})}}),{mutate:a,mutateAsync:i}=r,n=m.useCallback((o,d,l)=>{e&&a({path:{accountId:e},body:S(o,d,l)})},[e,a]),s=m.useCallback(async(o,d,l)=>e?i({path:{accountId:e},body:S(o,d,l)}).then(()=>!0,()=>!1):!1,[e,i]);return{createFilter:n,createFilterAsync:s,isPending:r.isPending,isSuccess:r.isSuccess,isError:r.isError,error:r.error,reset:r.reset}},ne=e=>{const t=M(),r=b({...z(),onSuccess:()=>{e&&t.invalidateQueries({queryKey:A(e)})}}),{mutate:a}=r;return{deleteFilter:m.useCallback(n=>{e&&a({path:{accountId:e,filterId:n}})},[e,a]),isPending:r.isPending,deletingFilterId:r.isPending?r.variables?.path.filterId:void 0}};export{h as N,Z as S,Y as a,A as b,te as c,K as d,se as e,B as f,ne as g,y as h,ae as i,X as j,G as k,ee as n,V as o,O as p,U as r,re as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as L,bt as p,n,a7 as l,bu as d,r as u,bv as y,bw as c,bx as g}from"./index-
|
|
1
|
+
import{s as L,bt as p,n,a7 as l,bu as d,r as u,bv as y,bw as c,bx as g}from"./index-DAHF5TfK.js";const o=e=>y({path:{accountId:e}}),f=e=>{const s=L({...p({path:{accountId:e??""}}),enabled:!!e});return{labels:s.data?.items??[],isPending:s.isPending,isError:s.isError,error:s.error,refetch:s.refetch}},m=e=>{const s=n(),t=l({...d(),onSuccess:()=>{e&&s.invalidateQueries({queryKey:o(e)})}}),{mutateAsync:r}=t;return{createLabel:u.useCallback((a,i="Default")=>e?r({path:{accountId:e},body:{name:a,color:i}}):Promise.reject(new Error("No account")),[e,r]),isPending:t.isPending,isError:t.isError,error:t.error,reset:t.reset}},h=e=>{const s=n(),t=l({...c(),onSuccess:()=>{e&&s.invalidateQueries({queryKey:o(e)})}}),{mutate:r}=t;return{updateLabel:u.useCallback((a,i)=>{e&&r({path:{accountId:e,labelId:a},body:i})},[e,r]),isPending:t.isPending,updatingLabelId:t.isPending?t.variables?.path.labelId:void 0}},C=e=>{const s=n(),t=l({...g(),onSuccess:()=>{e&&s.invalidateQueries({queryKey:o(e)})}}),{mutate:r}=t;return{deleteLabel:u.useCallback(a=>{e&&r({path:{accountId:e,labelId:a}})},[e,r]),isPending:t.isPending,deletingLabelId:t.isPending?t.variables?.path.labelId:void 0}};export{f as a,h as b,C as c,m as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as s}from"./index-
|
|
1
|
+
import{r as s}from"./index-DAHF5TfK.js";const r=1024,c=`(min-width: ${r}px) and (not ((orientation: portrait) and (pointer: coarse)))`,d=e=>{const[o,n]=s.useState(()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(e).matches);return s.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const t=window.matchMedia(e);n(t.matches);const a=i=>n(i.matches);return t.addEventListener("change",a),()=>t.removeEventListener("change",a)},[e]),o},m=()=>d(c);export{c as D,d as a,m as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{G as M,bO as T,bP as O,w as f,r as i,bQ as P,m as h,j as W,bR as Y,bS as V,W as H,k as z,n as J,s as Z,bT as ee,bU as te}from"./index-
|
|
1
|
+
import{G as M,bO as T,bP as O,w as f,r as i,bQ as P,m as h,j as W,bR as Y,bS as V,W as H,k as z,n as J,s as Z,bT as ee,bU as te}from"./index-DAHF5TfK.js";import{u as se}from"./useMediaQuery-CEZ0yAjv.js";function re(e){const t=M({warn:e?.router===void 0}),s=e?.router||t;return T(s.stores.__store,O(e,s))}function ne(e){const t=M();return T(t.stores.location,O(e,t))}const S="/mail/brief",A="/mail/$mailboxId",v="/mail/outbox",L="/mail/flagged";function oe(e){for(const t of e){if(t.routeId===S)return{list:"brief"};if(t.routeId===L)return{list:"flagged"};if(t.routeId===v)return{list:"outbox"};if(t.routeId===A)return{list:"mailbox",mailboxId:t.params?.mailboxId}}}function Te(e){const t=e.split(/[?#]/)[0].split("/").filter(Boolean);if(t[0]!=="mail")return"";const s=t[1];return s?s==="brief"?S:s==="flagged"?L:s==="outbox"?v:ae(s):""}function Oe(e){if(typeof e!="object"||e===null)return"";const{q:t}=e;return typeof t=="string"?t:""}function ae(e){return`${A}:${e}`}function Pe(e,t){return e===t?!0:e.startsWith(`${t}/`)}function Se(e){const t=e.split(/[?#]/)[0].split("/").filter(Boolean);return t[0]==="mail"&&t.length>2}function g(){const e=re({select:s=>oe(s.matches)?.list}),t=f({from:"/mail/$mailboxId",shouldThrow:!1});return{list:e,mailboxId:t?.mailboxId}}const k=["intelligence","nav","shortcuts"],ie=["nav","shortcuts"],ue=e=>ie.includes(e),ce=P(k);function x(e){const t=new Set(e.split(",").map(s=>ce.safeParse(s)).filter(s=>s.success).map(s=>s.data));return k.filter(s=>t.has(s))}function w(e){return k.filter(t=>e.includes(t)).join(",")}function Ae(){const e=ne({select:t=>w(x(t.hash))});return i.useMemo(()=>x(e),[e])}const le=(e,t)=>!ue(e)&&t;function de(e){return(t="")=>w(x(t).filter(s=>le(s,e)))}function y(){const e=se();return i.useMemo(()=>de(e),[e])}function ve(){const e=h();return i.useCallback(t=>{e({search:!0,hash:w(t),replace:!0,hashScrollIntoView:!1})},[e])}const _="/mail/brief/compose/{-$outboxMessageId}",D="/mail/flagged/compose/{-$outboxMessageId}",B="/mail/outbox/compose/{-$outboxMessageId}",U="/mail/$mailboxId/compose/{-$outboxMessageId}";function F(){const e=f({from:_,shouldThrow:!1}),t=f({from:D,shouldThrow:!1}),s=f({from:B,shouldThrow:!1}),r=f({from:U,shouldThrow:!1});return e??t??s??r}function Le(){return F()!==void 0}function _e(){return F()?.outboxMessageId}function fe(e,t,s){return e==="flagged"?{to:D,params:{outboxMessageId:s}}:e==="outbox"?{to:B,params:{outboxMessageId:s}}:e==="mailbox"&&t?{to:U,params:{mailboxId:t,outboxMessageId:s}}:{to:_,params:{outboxMessageId:s}}}function C(){const e=h(),t=y(),{list:s,mailboxId:r}=g();return i.useCallback((n,o)=>{e({...fe(s,r,n),search:a=>a,hash:o?.keepPanels?!0:t,replace:o?.replace??!1})},[e,t,s,r])}function De(){const e=C();return i.useCallback(()=>e(void 0),[e])}function Be(){const e=C();return i.useCallback(t=>e(t),[e])}function Ue(){const e=C();return i.useCallback(t=>e(t,{replace:!0,keepPanels:!0}),[e])}function Fe(){const e=h(),t=y(),{list:s,mailboxId:r}=g();return i.useCallback(()=>{const n=a=>a,o=t;if(s==="flagged"){e({to:"/mail/flagged",search:n,hash:o});return}if(s==="outbox"){e({to:"/mail/outbox",search:n,hash:o});return}if(s==="mailbox"&&r){e({to:"/mail/$mailboxId",params:{mailboxId:r},search:n,hash:o});return}e({to:"/mail/brief",search:n,hash:o})},[e,t,s,r])}const me=Y(V);function Ne({fragment:e,...t}){const s=y();return W.jsx(me,{...t,hash:e??s})}const he=["reply","reply-all","forward"],pe=P(he),N="/mail/brief/$threadId/$messageId/$mode/{-$outboxMessageId}",K="/mail/flagged/$threadId/$messageId/$mode/{-$outboxMessageId}",Q="/mail/$mailboxId/$threadId/$messageId/$mode/{-$outboxMessageId}";function q(){const e=f({from:N,shouldThrow:!1}),t=f({from:K,shouldThrow:!1}),s=f({from:Q,shouldThrow:!1});return e??t??s}function $(){const e=q();return i.useMemo(()=>{if(!e)return;const t=pe.safeParse(e.mode);return t.success?{kind:"reply",mode:t.data,threadId:e.threadId,sourceMessageId:e.messageId,outboxMessageId:e.outboxMessageId}:{kind:"unknown",segment:e.mode}},[e])}function Ke(){return $()?.kind==="reply"}function G(e,t,s,r){return e==="flagged"?{to:K,params:{...s,outboxMessageId:r}}:e==="mailbox"&&t?{to:Q,params:{...s,mailboxId:t,outboxMessageId:r}}:{to:N,params:{...s,outboxMessageId:r}}}function ge(e,t){if(e?.kind==="reply"&&e.threadId===t.threadId&&e.sourceMessageId===t.messageId)return e.outboxMessageId}function Qe(){const e=h(),t=y(),{list:s,mailboxId:r}=g(),n=$();return i.useCallback(o=>{e({...G(s,r,o,ge(n,o)),search:a=>a,hash:t})},[e,t,s,r,n])}function qe(e,t,s){if(!(!t||!s))return r=>e({threadId:t,messageId:s,mode:r})}function Ge(){const e=h(),{list:t,mailboxId:s}=g(),r=$();return i.useCallback(n=>{r?.kind==="reply"&&e({...G(t,s,{threadId:r.threadId,messageId:r.sourceMessageId,mode:r.mode},n),search:o=>o,hash:!0,replace:!0})},[e,t,s,r])}function Xe(){const e=h(),t=y(),{list:s,mailboxId:r}=g(),n=q();return i.useCallback(()=>{if(!n)return;const o=c=>c,a=t,u={threadId:n.threadId,messageId:n.messageId};if(s==="flagged"){e({to:"/mail/flagged/$threadId/$messageId",params:u,search:o,hash:a});return}if(s==="mailbox"&&r){e({to:"/mail/$mailboxId/$threadId/$messageId",params:{...u,mailboxId:r},search:o,hash:a});return}e({to:"/mail/brief/$threadId/$messageId",params:u,search:o,hash:a})},[e,t,s,r,n])}const ye=e=>{const t=e.filter(n=>!n.isMultipart&&n.disposition!=="attachment"&&n.mediaType==="TEXT"&&n.contentUrl.length>0),s=t.find(n=>n.mediaSubtype.toUpperCase()==="HTML");if(s)return{kind:"html",contentUrl:s.contentUrl};const r=t.find(n=>n.mediaSubtype.toUpperCase()==="PLAIN");return r?{kind:"text",contentUrl:r.contentUrl}:null},R={all:["messages"],detail:e=>[...R.all,"detail",e],body:e=>[...R.detail(e),"body"]};class m extends Error{reason;status;retryAfterSeconds;constructor(t,s,r,n){super(s),this.name="BodyFetchError",this.reason=t,this.status=r,this.retryAfterSeconds=n}}const be=e=>{const t=Number.parseInt(e??"",10);return!Number.isFinite(t)||t<=0?1:Math.min(t,30)},Ie=8,xe="x-remit-403-reason",Re=(e,t)=>{const s=t?.trim()??"";return e===401?"auth":e===403?s.length>0?"auth":"body-missing":e===404?"body-missing":"generic"},ke=(e,t)=>(t??"").toLowerCase().startsWith("text/html")?/<div\s+id=["']root["']/i.test(e):!1,we=(e,t)=>{const s=(t??"").toLowerCase();return!!(e==="text"&&s.startsWith("text/html"))},Ce=async(e,t,s=async()=>null)=>{const r={},n=await s();n&&(r.Authorization=`Bearer ${n}`);const o=await te(e,{headers:r});if(o.status===202)throw new m("not-ready","Message body is still syncing",202,be(o.headers.get("Retry-After")));if(!o.ok){const c=o.headers.get(xe),b=Re(o.status,c);throw new m(b,`Failed to load message body (${o.status} ${o.statusText})`,o.status)}const a=o.headers.get("content-type");if(we(t,a))throw new m("content-type-mismatch",`Refusing to render message body — expected ${t}, got Content-Type ${a}`);const u=await o.text();if(ke(u,a))throw new m("spa-shell-leak","Refusing to render message body — response looks like the SPA shell (CloudFront 403/404 fallback leaked through to /content/*)");return u},$e=async(e,t)=>(t.isRetryAfterNotReady&&await e.refetchDescribeMessage(),e.fetchContent(t.contentUrl,t.kind)),je=({messageId:e,bodyParts:t,enabled:s=!0})=>{const r=t?ye(t):null,n=H(),{getToken:o}=z(),a=i.useRef(null),u=J(),c=i.useRef(!1),b=i.useRef(null),E=e&&r?`${e}:${r.contentUrl}`:null;b.current!==E&&(b.current=E,c.current=!1);const l=Z({queryKey:e?[...R.body(e),r?.contentUrl??null]:["messages","body","noop"],queryFn:()=>{if(!r)throw new Error("No renderable body part");if(!e)throw new Error("No messageId");const p=c.current;return c.current=!1,$e({fetchContent:(d,j)=>Ce(d,j,o),refetchDescribeMessage:()=>u.refetchQueries({queryKey:ee({path:{messageId:e}})})},{contentUrl:r.contentUrl,kind:r.kind,isRetryAfterNotReady:p})},enabled:s&&!!e&&!!r,staleTime:300*1e3,gcTime:1800*1e3,retry:(p,d)=>d instanceof m&&d.reason==="not-ready"?p<Ie:p<1,retryDelay:(p,d)=>d instanceof m&&d.reason==="not-ready"?(c.current=!0,(d.retryAfterSeconds??1)*1e3):1e3,meta:{softError:!0}}),I=l.isLoading&&!!r;i.useEffect(()=>{I&&(a.current=performance.now())},[I]),i.useEffect(()=>{l.isSuccess&&a.current!==null&&(n.recordTiming("message.body.load",Math.round(performance.now()-a.current)),a.current=null)},[l.isSuccess,n]);const X=l.data&&r?{kind:r.kind,body:l.data}:void 0;return{picked:r,data:X,isLoading:I,isError:l.isError,error:l.error,refetch:l.refetch}};export{m as B,Ne as N,ne as a,re as b,Oe as c,Ae as d,ve as e,Le as f,oe as g,Ke as h,ue as i,Pe as j,_e as k,Se as l,Te as m,Be as n,y as o,Qe as p,je as q,qe as r,Ue as s,Fe as t,De as u,Ge as v,Xe as w,Re as x,$ as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as E,e as q,b as j,B as D,r as i,ax as R,n as C,l as K,W as A,K as Q,J as $,L as z,N as B}from"./index-
|
|
1
|
+
import{j as E,e as q,b as j,B as D,r as i,ax as R,n as C,l as K,W as A,K as Q,J as $,L as z,N as B}from"./index-DAHF5TfK.js";import{C as G}from"./circle-check-big-Bm7MBirE.js";import{R as H,c as N}from"./search-token-index-Z4lRUm0T.js";function oe({state:e,onRefresh:t,label:s,errorMessage:a,hasUpdate:n,size:u="sm",className:c}){const o=e==="refreshing",f=e==="error",h=e==="success",g=f?E.jsx(q,{className:"size-4 text-danger"}):h?E.jsx(G,{className:"size-4 text-positive"}):E.jsx(H,{className:j("size-4",o&&"animate-spin")}),y=f?`${s} — failed: ${a??"try again"}`:o?`${s} — refreshing`:h?`${s} — up to date`:n?`${s} — new mail`:s;return E.jsxs("div",{className:"relative inline-flex",children:[E.jsx(D,{variant:"ghost",size:u,icon:g,onClick:t,disabled:o,"aria-label":y,"aria-busy":o||void 0,title:f?a:s,className:c}),e==="idle"&&n&&E.jsx("span",{"aria-hidden":"true",className:"absolute right-1 top-1 size-1.5 rounded-full bg-accent-2"})]})}const W=new Set(["discovering_mailboxes","syncing_inbox","syncing_others"]);function P(e){return!!e&&W.has(e)}const L=3e3,U=L*2,M={syncing:!1,resolved:!1,synced:0,total:0};function ie(e,t){const s=e.join(","),[a,n]=i.useState(!1),[u,c]=i.useState(!1);i.useEffect(()=>{n(!1),c(!1)},[s,t]),i.useEffect(()=>{if(!t)return;const r=setTimeout(()=>c(!0),U);return()=>clearTimeout(r)},[s,t]);const o=N({queries:e.map(r=>({...R({path:{accountId:r}}),enabled:t&&!a,refetchInterval:L,meta:{softError:!0}}))}),f=o.every(r=>r.isSuccess||r.isError),h=o.length===0||f||u;let g=!1,y=0,w=0;for(const r of o)if(P(r.data?.syncPhase)){g=!0;for(const l of r.data?.mailboxes??[])y+=l.messagesSynced,w+=l.messagesTotal}const S=t&&h&&!g;return i.useEffect(()=>{S&&n(!0)},[S]),!t||!h?M:{syncing:g,resolved:!0,synced:y,total:w}}const k=6e4,I=new Set(["sent","drafts","trash","archive"]),v=(e,t)=>{const s=new Map;for(const a of e){const n=t.get(a.mailboxId)?.role;n&&I.has(n)||s.set(a.mailboxId,a.messagesTotal)}return s},J=(e,t)=>{for(const[s,a]of t)if(a>(e.get(s)??0))return!0;return!1},_=i.createContext(null),X=()=>{const e=i.useContext(_);if(!e)throw new Error("useMailFreshness must be used inside <MailFreshnessProvider>");return e};function ce({accountIds:e,children:t}){const s=C(),{resultFolderIndex:a}=K(),n=i.useRef(new Map),u=i.useRef(new Set),[c,o]=i.useState(new Set),f=N({queries:e.map(r=>({...R({path:{accountId:r}}),refetchInterval:k,staleTime:k,meta:{softError:!0}}))}),h=f.map(r=>r.dataUpdatedAt).join(","),g=e.join(",");i.useEffect(()=>{let r=!1;const l=new Set(c);e.forEach((d,x)=>{const p=f[x]?.data;if(!p)return;const m=v(p.mailboxes??[],a);if(!u.current.has(d)){u.current.add(d),n.current.set(d,m);return}if(l.has(d))return;const T=n.current.get(d)??new Map;J(T,m)&&(l.add(d),r=!0)}),r&&o(l)},[g,h]);const y=i.useCallback(r=>r.some(l=>c.has(l)),[c]),w=i.useCallback(r=>{o(l=>{if(r.every(x=>!l.has(x)))return l;const d=new Set(l);for(const x of r)d.delete(x);return d});for(const l of r){const d=s.getQueryData(R({path:{accountId:l}}).queryKey);n.current.set(l,v(d?.mailboxes??[],a)),u.current.add(l)}},[s,a]),S=i.useMemo(()=>({hasNewMail:y,acknowledge:w}),[y,w]);return E.jsx(_.Provider,{value:S,children:t})}const V=2e3,Y=45e3,Z=e=>new Promise(t=>setTimeout(t,e)),b=e=>e instanceof Error&&e.message?e.message:"Something went wrong",ee=e=>{z(e,{softError:!0},"user")&&B(e)},F=e=>e.reduce((t,s)=>Math.max(t,s.lastSyncedAt??0),0),O=(e,t)=>e.fetchQuery({...R({path:{accountId:t}}),staleTime:0}),se=async(e,t,s,a)=>{let n=!1;for(;;){const u=await O(e,t).then(f=>({ok:!0,data:f})).catch(f=>({ok:!1,error:f}));if(!u.ok)return{accountId:t,message:b(u.error)};const{syncPhase:c,mailboxes:o}=u.data;if(P(c))n=!0;else if(n||F(o??[])>s)return c==="error"?{accountId:t,message:"Sync failed for this account"}:void 0;if(Date.now()>=a)return{accountId:t,message:"Refresh is taking longer than usual"};await Z(V)}},te=async(e,t,s,a)=>{const n=await O(e,s).then(o=>({ok:!0,maxLastSynced:F(o.mailboxes??[])})).catch(o=>({ok:!1,error:o}));if(!n.ok)return{accountId:s,enqueued:!1,ok:!1,message:b(n.error)};const u=await $({path:{accountId:s},throwOnError:!0}).then(()=>({ok:!0})).catch(o=>({ok:!1,error:o}));if(!u.ok)return ee(u.error),{accountId:s,enqueued:!1,ok:!1,message:b(u.error)};t.recordEvent("sync.triggered");const c=await se(e,s,n.maxLastSynced,a);return c?{accountId:s,enqueued:!0,ok:!1,message:c.message}:{accountId:s,enqueued:!0,ok:!0}},ue=(e,t={})=>{const s=C(),a=A(),{acknowledge:n}=X(),[u,c]=i.useState("idle"),[o,f]=i.useState(),h=i.useRef(0),g=i.useRef(e);g.current=e;const y=i.useRef(t);y.current=t,i.useEffect(()=>{if(u!=="success")return;const S=setTimeout(()=>c("idle"),2e3);return()=>clearTimeout(S)},[u]);const w=i.useCallback(()=>{const S=g.current;if(S.length===0){c("error"),f("Nothing to refresh yet");return}const r=++h.current;c("refreshing"),f(void 0),(async()=>{const l=Date.now()+Y,d=await Promise.all(S.map(m=>te(s,a,m,l)));if(h.current!==r)return;const x=d.filter(m=>m.enqueued).map(m=>m.accountId);for(const m of x)s.invalidateQueries({queryKey:Q({path:{accountId:m}})});x.length>0&&(y.current.onSettled?.(),n(x));const p=d.filter(m=>!m.ok);p.length===0?c("success"):(c("error"),f(p[0]?.message))})()},[n,s,a]);return{state:u,errorMessage:o,refresh:w}};export{ce as M,oe as R,ue as a,ie as b,P as i,X as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as v,l as x,r as I}from"./index-
|
|
1
|
+
import{m as v,l as x,r as I}from"./index-DAHF5TfK.js";import{b as p,f as b,h as g,c as Q}from"./useMessageBodyContent-DB08ZFCn.js";import{b as q}from"./search-view-Bw5aHOnp.js";function W(a){const t=v(),{searchInput:n,searchQuery:e}=x(),i=p({select:o=>Q(o.location.search)}),u=p({select:o=>o.location.pathname}),h=b(),f=g(),m=h||f,{to:s}=a,r="params"in a?a.params.mailboxId:void 0,l=r?`/mail/${r}`:s;I.useEffect(()=>{if(!q({searchInput:n,committedQuery:e,urlQuery:i,pathname:u,listPath:l}))return;const y=!!e&&i!==e&&!m,c=d=>({...d,q:e||void 0});if(!y){t({to:".",search:c,hash:!0,replace:!0});return}if(s==="/mail/$mailboxId"){if(!r)return;t({to:s,params:{mailboxId:r},search:c,hash:!0,replace:!0});return}t({to:s,search:c,hash:!0,replace:!0})},[n,e,i,t,s,r,l,u,m])}export{W as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{bY as V,r as g,j as a,b,I as Q,n as Y,a5 as q,a7 as X,a8 as Z,bT as J,b5 as ee,k as te,e as se,X as re,l as ne}from"./index-
|
|
1
|
+
import{bY as V,r as g,j as a,b,I as Q,n as Y,a5 as q,a7 as X,a8 as Z,bT as J,b5 as ee,k as te,e as se,X as re,l as ne}from"./index-DAHF5TfK.js";import{K as k}from"./kbd-B-DC1Fdv.js";import{B as ae,q as oe,b as ie}from"./useMessageBodyContent-DB08ZFCn.js";import{M as L}from"./enums-CCxx0t2v.js";import{i as ce}from"./search-scope-BISrow5X.js";const le=(e,t)=>{const r=e==="newsletter"||e==="marketing"||t;return{framed:r,isPlain:!r}},de=()=>`
|
|
2
2
|
/* Zero the UA default body margin and clamp the document to the iframe width so
|
|
3
3
|
wide author markup can't push the body (and the page) past the viewport. */
|
|
4
4
|
html, body {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as L,a5 as C,a7 as k,bn as I,bo as E,r as x,j as d,bp as h,bq as A,br as j,l as R,s as Q,bs as D}from"./index-
|
|
1
|
+
import{n as L,a5 as C,a7 as k,bn as I,bo as E,r as x,j as d,bp as h,bq as A,br as j,l as R,s as Q,bs as D}from"./index-DAHF5TfK.js";import{P as O}from"./attachment-file-C7mfrsYw.js";import{aj as P,ak as _,al as q,am as z}from"./MailListHeader-DjXU-UVW.js";import{a as N}from"./useLabels-B6J8xduK.js";import{M as U}from"./enums-CCxx0t2v.js";import{b as w}from"./useMessageBodyContent-DB08ZFCn.js";import{n as B}from"./search-query-Cr_ZXBCp.js";import{s as F}from"./search-scope-BISrow5X.js";import{u as G,p as K}from"./useSearchTokenContext-Ba_lhYQq.js";const V=t=>{const{mailboxId:a,messages:i}=t,l=L(),{pushError:c}=C(),{mutateAsync:n,isPending:s}=k({...E(),onError:(o,m)=>{c({title:m.body.action==="Remove"?"Couldn't remove label":"Couldn't apply label",detail:I(o),error:o})},onSettled:(o,m,u)=>{P(l,_(q(u.body.messageIds??[],i??[],a)))}});return{applyLabel:x.useCallback((o,m,u)=>{o.length!==0&&z(o,p=>n({body:{messageIds:p,labelId:m,action:u}}))},[n]),isPending:s}};function ne({accountId:t,mailboxId:a,messageIds:i}){const{labels:l}=N(t),{applyLabel:c}=V({mailboxId:a}),n=x.useMemo(()=>l.map(s=>({key:s.labelId,label:s.name,icon:d.jsx("span",{className:`size-2.5 rounded-full ${A(s.color)?h[s.color]:h.Default}`}),onSelect:()=>c(i,s.labelId,"Apply")})),[l,i,c]);return n.length===0?null:d.jsx(O,{triggerLabel:"Apply label to selected messages",triggerIcon:d.jsx(j,{className:"size-4 text-fg-subtle"}),triggerText:"Apply label",items:n,align:"start",nested:!0,touch:!1,triggerClassName:"min-h-11 w-full justify-start gap-3 px-4 py-2.5 text-sm font-normal text-fg"})}const $=20,H=new Set(Object.values(U)),J=t=>t!==void 0&&H.has(t)?t:void 0,W=t=>{if(t.some(a=>a.type==="isUnread"))return!1;if(t.some(a=>a.type==="isRead"))return!0};function ie({mailboxId:t,filterCategory:a}={}){const{searchQuery:i}=R(),l=G(),c=w({select:e=>e.matches}),n=B(i),{freeText:s,tokens:r}=K(n,l),o=s.length>0,m=r.find(e=>e.type==="category"),u=J(a)??m?.category,p=r.some(e=>e.type==="hasAttachment")?!0:void 0,b=r.some(e=>e.type==="isStarred")?!0:void 0,y=W(r),f=r.find(e=>e.type==="after"),g=r.find(e=>e.type==="before"),S=r.find(e=>e.type==="in"),M=F({matches:c,callerMailboxId:t,inTokenMailboxId:S?.mailboxId}),{data:T,isLoading:v}=Q({...D({query:{query:s,mailboxId:M,limit:$,...u!==void 0?{category:u}:{},...p!==void 0?{hasAttachment:p}:{},...b!==void 0?{hasStars:b}:{},...y!==void 0?{isRead:y}:{},...f?{sentDateFrom:f.epochSeconds}:{},...g?{sentDateTo:g.epochSeconds}:{}}}),enabled:o,staleTime:6e4});return{hits:T?.items??[],isLoading:o&&v}}export{ne as L,ie as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as g,a5 as p,s as f,Q as m,r,a7 as y,a8 as T,V as E,a9 as x}from"./index-
|
|
1
|
+
import{n as g,a5 as p,s as f,Q as m,r,a7 as y,a8 as T,V as E,a9 as x}from"./index-DAHF5TfK.js";const i={html:"",plainText:""},d=e=>{const u=g(),{pushError:o}=p(),{data:n}=f({...m(),staleTime:1/0}),l=r.useMemo(()=>{if(!e||!n)return i;const t=n.accounts.find(a=>a.accountId===e);return t?{html:t.signatureHtml??"",plainText:t.signaturePlainText??""}:i},[e,n]),s=y({...x(),onSuccess:()=>{u.invalidateQueries({queryKey:E()})},onError:t=>{o(T("Couldn't save signature","The signature wasn't saved.",t))}}),c=r.useCallback((t,a)=>{e&&s.mutate({path:{accountId:e},body:{signatureHtml:t,signaturePlainText:a}})},[e,s]);return{signature:l,setSignature:c,isSaving:s.isPending}};export{d as u};
|
package/index.html
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
} catch (_) {}
|
|
39
39
|
})();
|
|
40
40
|
</script>
|
|
41
|
-
<script type="module" crossorigin src="/assets/index-
|
|
41
|
+
<script type="module" crossorigin src="/assets/index-DAHF5TfK.js"></script>
|
|
42
42
|
<link rel="stylesheet" crossorigin href="/assets/index-Bn4mOVkF.css">
|
|
43
43
|
</head>
|
|
44
44
|
<body>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as a,af as Ke,S as Xe,bh as es,l as $,bb as ss,m as oe,r as o,s as ae,bi as ne,q as ts,bj as as,bk as ns,bl as os,e as Re,bm as rs,i as is}from"./index-BBlkR2lm.js";import{s as Te,a as ls,b as we,u as cs,p as ds,R as us}from"./useSearchTokenContext-DqJZZd-6.js";import{a4 as ve,E as ye,a5 as ms,a6 as fs,F as hs,a7 as Se,a8 as gs,a9 as xs,aa as ps,a3 as Is,ab as bs,ac as vs,ad as ys,M as Ss,ae as Cs,af as js,ag as Rs,e as Ts,w as ws,ah as Ms,s as ks,S as Fs,I as Ns,N as Ce,L as As,J as Bs,d as Os,X as Ls,Y as Es,Z as Me,_ as Ds,$ as ke,a0 as Ps}from"./MailListHeader-CqEQzbdu.js";import{u as qs,a as zs,R as Qs,i as Hs,b as _s}from"./useRefreshControl-DSz_548v.js";import{e as $s,c as Ws,R as Us}from"./search-token-index-jGvf0dJ0.js";import{a as Vs}from"./useLabels-C_Ccg2bp.js";import{u as Ys}from"./useMediaQuery-fCnkE4fe.js";import{u as Gs,L as Js}from"./useSemanticSearch-C_xD58fg.js";import{o as Zs,f as Ks,h as Xs,p as et,r as st}from"./useMessageBodyContent-1l9msTY_.js";function tt({sync:e}){return e?a.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",role:"status","aria-live":"polite",children:[a.jsx(Ke,{className:"size-8 animate-spin text-fg-subtle","aria-hidden":"true"}),a.jsx("p",{className:"text-sm font-medium text-fg",children:"Still syncing your mail"}),a.jsx("p",{className:"text-xs text-fg-subtle",children:at(e)})]}):a.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",children:[a.jsx(Xe,{className:"size-8 text-fg-subtle","aria-hidden":"true"}),a.jsx("p",{className:"text-sm font-medium text-fg",children:"You're caught up"}),a.jsx("p",{className:"text-xs text-fg-subtle",children:"Nothing needs attention."})]})}function at({synced:e,total:s}){return s>0?`${e.toLocaleString()} of ${s.toLocaleString()} messages downloaded. This list fills in as they arrive.`:"Downloading your messages. This list fills in as they arrive."}const Fe=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Ne="category",nt={unclassified:"uncategorized"},W=e=>ls(e).map(s=>s.raw),_=e=>e.join(" "),re=e=>{const s=we(e);if(s)return Fe.find(n=>n.name===s.name&&n.value===s.value.toLowerCase())?.id},ie=e=>{const s=we(e);if(!s||s.name!==Ne)return;const n=s.value.toLowerCase(),r=nt[n];if(r)return r;if(!(!es(n)||n==="all"))return n},Ae=e=>Fe.find(s=>s.id===e),Be=e=>Ae(e)!==void 0,ot=e=>{const s=new Set;for(const n of W(e)){const r=re(n);r&&s.add(r)}return s},rt=e=>{let s="all";for(const n of W(e)){const r=ie(n);r&&(s=r)}return s},it=(e,s)=>{const n=Ae(s);if(!n)return;const r=W(e),u=r.filter(l=>re(l)!==s);return u.length<r.length?_(u):_([...r,Te(n.name,n.value)])},lt=(e,s)=>{const n=W(e).filter(r=>!ie(r));return _(s==="all"?n:[...n,Te(Ne,s)])},ct=e=>_(W(e).filter(s=>!re(s)&&!ie(s))),Oe=e=>e.trim().length>0,dt=e=>{if(!Oe(e.query))return e.ownFilters;const s=new Set(ot(e.query));for(const n of e.ownFilters)Be(n)||s.add(n);return s},ut=e=>Oe(e.query)?rt(e.query):e.ownCategory,mt=(e,s)=>e.createdAt!==s.createdAt?e.createdAt-s.createdAt:e.accountId.localeCompare(s.accountId),ft=e=>[...e].sort(mt),ht=200,je=()=>a.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,s)=>a.jsxs("div",{className:"flex items-start gap-3 py-2 pl-5 pr-4 border-b border-line",children:[a.jsx("div",{className:"size-7 rounded-full bg-surface-sunken shrink-0 mt-0.5"}),a.jsxs("div",{className:"flex-1 space-y-1.5",children:[a.jsxs("div",{className:"flex justify-between gap-2",children:[a.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-28"}),a.jsx("div",{className:"h-3 bg-surface-sunken rounded w-12"})]}),a.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-48"}),a.jsx("div",{className:"h-3 bg-surface-sunken rounded w-full"})]})]},s))}),gt=({accountEmail:e})=>{const s=oe();return a.jsxs("div",{className:"flex items-center gap-2 px-row-inset py-2 border-b border-line bg-danger-soft/40 text-xs text-danger",children:[a.jsx(Re,{className:"size-3.5 shrink-0"}),a.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),a.jsx("button",{type:"button",onClick:()=>s({to:"/settings/accounts"}),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},xt=(e,s)=>{if(s.size===0)return{};const n=new Set,r=new Set;for(const l of e)s.has(l.id)&&(l.accountId&&n.add(l.accountId),l.mailboxId&&r.add(l.mailboxId));if(n.size>1)return{restriction:"spansAccounts",moveDisabledHint:"Move only works within one account — clear selection or pick messages from a single account"};const u=n.size===1?[...n][0]:void 0;return r.size>1?{accountId:u,restriction:"spansFolders",moveDisabledHint:`Move only works within one folder — this selection spans ${r.size} folders`}:{accountId:u,mailboxId:r.size===1?[...r][0]:void 0}};function pt({header:e,rows:s,wizard:n,children:r}){const{selectedIds:u,selectedCount:l,exitSelection:g,orderedIds:d,allSelected:f,toggleAllLoaded:S}=Rs(),p=o.useMemo(()=>xt(s,u),[s,u]),{junkMailboxId:I}=Ts(p.accountId),{labels:b}=Vs(p.accountId),N=o.useMemo(()=>Array.from(u),[u]),E=o.useMemo(()=>s.filter(x=>u.has(x.id)).map(x=>({id:x.id,sender:x.fromName,email:x.fromEmail,subject:x.subject,date:x.timeLabel})),[s,u]),m=ws(I,p.mailboxId),v=o.useMemo(()=>d.length>0?{checked:f,indeterminate:l>0&&!f,onChange:S}:void 0,[d.length,f,l,S]),A=p.moveDisabledHint?{tone:"warning",text:p.moveDisabledHint}:void 0,C=x=>a.jsx(Fs,{title:x.title,navSlot:x.navSlot,titleMeta:x.titleMeta,searchSlot:x.searchSlot,searchField:x.searchField,idleSlot:x.makeFilterSlot,count:l,onCancel:g,onDelete:()=>n.start("delete"),onMove:()=>n.start("move"),onOrganize:()=>n.start("organize"),onJunk:m?()=>n.start("junk"):void 0,onMarkRead:()=>n.start("markRead"),overflowSlot:p.accountId&&p.mailboxId&&l>0&&b.length>0?a.jsx(Js,{accountId:p.accountId,mailboxId:p.mailboxId,messageIds:N}):void 0,selectAll:v,notice:A});return a.jsx(Ms,{...e,selectionBar:C,paneOverlay:a.jsx(ks,{verb:n.verb,accountId:p.accountId,mailboxId:p.mailboxId,selection:E,selectionRestriction:p.restriction,onFinished:g}),children:r})}function It({accounts:e,selectedMessageId:s,onOpenThread:n,commandsRef:r,onTriageContextChange:u,onDeleteMessages:l}){const{searchQuery:g,searchInput:d,resultFolderIndex:f,onSearchChange:S}=$(),p=cs(),I=Ys(),b=$s(),N=ss(),E=oe(),m=o.useMemo(()=>ft(e.filter(t=>!t.muted?.value)),[e]),[v,A]=o.useState("all"),[C,x]=o.useState("all"),[U,D]=o.useState(new Set),[Z,j]=o.useState(!1),P=o.useCallback(t=>{D(i=>{const c=new Set(i);return c.has(t)?c.delete(t):c.add(t),c})},[]),V=o.useCallback(()=>D(new Set),[]),T=d.trim().length>0,R=o.useMemo(()=>dt({query:d,ownFilters:U}),[d,U]),w=o.useMemo(()=>ut({query:d,ownCategory:C}),[d,C]),B=o.useCallback(t=>{if(!T||!Be(t)){P(t);return}const i=it(d,t);i!==void 0&&S(i)},[T,d,S,P]),q=o.useCallback(t=>{if(!T){x(t);return}S(lt(d,t))},[T,d,S]),z=o.useCallback(()=>{x("all"),A("all"),V(),T&&S(ct(d))},[T,d,S,V]),{data:O,isLoading:Q,isError:h,refetch:L}=ae({...ne(),staleTime:6e4}),M=Ws({queries:m.map(t=>({...ts({path:{accountId:t.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),Y=o.useMemo(()=>{const t=new Map;for(let i=0;i<m.length;i++){const c=m[i].accountId,Ge=(M[i]?.data?.items??[]).reduce((Je,Ze)=>Je+(Ze.unseenCount??0),0);t.set(c,Ge)}return t},[m,M]),De=o.useMemo(()=>m.filter((t,i)=>{const c=M[i];return c?.isError?!as(c.error):!1}),[m,M]),{freeText:k,tokens:K}=ds(g.trim().toLowerCase(),p),{data:le,isFetching:Pe}=ae({...ne({query:{query:k,limit:ht}}),enabled:k.length>0,staleTime:3e4}),y=o.useMemo(()=>{const t=ve(O?.items??[]).map(ye);return(k?ms(t.filter(c=>fs(c,k)),ve(le?.items??[]).map(ye)):t).filter(c=>(v==="all"||c.accountId===v)&&hs(c,K))},[O,le,v,k,K]),{bodyRows:ce,briefSpamOffer:X}=o.useMemo(()=>{if(!k)return{bodyRows:y,briefSpamOffer:void 0};const t=y.map(F=>Se(F,f)),{spam:i}=gs(t);if(i.length===0)return{bodyRows:y,briefSpamOffer:void 0};const c=new Set(i.map(F=>F.id));return{bodyRows:y.filter(F=>!c.has(F.id)),briefSpamOffer:xs(t)}},[y,k,f]),de=o.useMemo(()=>ps(ce),[ce]),ue=o.useCallback((t,i)=>{const c=y.find(F=>F.id===t)?.threadId;c&&n?.({threadId:c,messageId:t},i)},[y,n]),qe=o.useCallback(t=>{const i=t.threadId??y.find(c=>c.id===t.id)?.threadId;i&&n?.({threadId:i,messageId:t.id})},[y,n]),ee=o.useMemo(()=>m.length<=1?[]:[{id:"all",label:"All",active:v==="all"},...m.map(t=>({id:t.accountId,label:t.email.split("@")[0]??t.email,count:Y.get(t.accountId),active:v===t.accountId}))],[m,Y,v]),H=o.useMemo(()=>e.filter(t=>t.muted?.value).length,[e]),ze=o.useMemo(()=>Array.from(Y.values()).reduce((t,i)=>t+i,0),[Y]),se=o.useMemo(()=>m.map(t=>t.accountId),[m]),{hasNewMail:me}=qs(),{state:fe,errorMessage:he,refresh:ge}=zs(se,{onSettled:()=>L()}),Qe=o.useMemo(()=>a.jsx(Qs,{state:fe,onRefresh:ge,label:"Refresh daily brief",errorMessage:he,hasUpdate:me(se)}),[fe,ge,he,me,se]),te=o.useMemo(()=>y.filter(t=>(w==="all"||t.category===w)&&ns(t,R)).map(t=>Se(t,f)),[y,w,R,f]),{hits:xe,isLoading:He}=Gs(),_e=o.useMemo(()=>{const t=new Map;for(const c of O?.items??[])t.set(c.messageId,c.threadId);const i=te.map(c=>t.get(c.id)).filter(c=>c!=null);return Is(xe,i,f)},[xe,te,O,f]),$e=o.useMemo(()=>{const t=bs(ee.map(i=>({id:i.id,label:i.label,count:i.count,active:i.active})));return{categories:t.categories,filters:t.filters,sources:t.sources,sourcesNote:H>0?`+${H} muted`:void 0,selectedCategory:w,activeFilters:R,expanded:Z,onExpandedChange:j,onSelectCategory:i=>q(i),onSelectSource:A,onToggleFilter:i=>B(i),onClear:z}},[ee,H,w,R,Z,B,q,z]),pe=de.length===0&&v==="all"&&k.length===0&&K.length===0,We=o.useMemo(()=>m.map(t=>t.accountId),[m]),Ue=o.useMemo(()=>m.some(t=>Hs(t.syncPhase)),[m]),G=_s(We,pe||Ue),Ie=a.jsxs("div",{className:"h-full overflow-y-auto",children:[a.jsx(je,{}),a.jsx(je,{})]}),be=!Q&&!h&&!pe,Ve=vs({tier:b,hasLiveInput:T,hasCommittedQuery:g.trim().length>0,bodyRendersCommittedResults:!0}),Ye=be?a.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[X&&a.jsx(ys,{count:X.count,onScopeToSpam:()=>E({to:"/mail/$mailboxId",params:{mailboxId:X.mailboxId},search:{q:g||void 0}})}),a.jsx("div",{className:"min-h-0 flex-1",children:a.jsx(os,{sections:de,briefCategory:w,Row:Ss,selectedThreadId:s,onSelectThread:ue,onSelectBriefCategory:q,sources:ee,sourcesNote:H>0?`+${H} muted`:void 0,onSelectSource:A,activeFilters:R,onToggleFilter:B,onClearFilters:z})})]}):Q?Ie:h?a.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 py-12 text-sm text-fg-muted",children:[a.jsx(Re,{className:"size-8 text-danger"}),a.jsx("p",{children:"Couldn't load your messages"}),a.jsxs("button",{type:"button",onClick:()=>L(),className:"flex items-center gap-1 text-accent underline text-xs",children:[a.jsx(Us,{className:"size-3.5"}),"Try again"]})]}):G.resolved?a.jsx(tt,{sync:G.syncing?{synced:G.synced,total:G.total}:void 0}):Ie;return a.jsx(rs,{hasSheet:be&&!Ve,children:a.jsx(Cs,{selectedMessageId:s,onOpen:ue,onDeleteMessages:l,onSelectionVerb:N.start,wizardOpen:N.isOpen,commandsRef:r,onTriageContextChange:u,children:a.jsx(pt,{wizard:N,header:{title:"Daily brief",unreadCount:ze,footer:I?a.jsx(js,{}):void 0,searchFilter:$e,searchResults:te,searchLoading:Q||Pe,relatedResults:_e,relatedLoading:He,onSelectSearchResult:qe,searchResultsInBody:!0,refreshControl:Qe},rows:y,children:a.jsxs("div",{className:"flex h-full flex-col",children:[De.map(t=>a.jsx(gt,{accountEmail:t.email,accountId:t.accountId},t.accountId)),a.jsx("div",{className:"min-h-0 flex-1",children:Ye})]})})})})}const Le=o.createContext(null);function J(){const e=o.useContext(Le);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function bt({thread:e,children:s}){const n=oe(),r=Zs(),{searchInput:u}=$(),l=e?.threadId,g=e?.messageId,{data:d}=ae({...ne(),staleTime:6e4}),f=o.useMemo(()=>d?.items??[],[d]),S=o.useMemo(()=>{if(l)return f.find(h=>h.messageId===g)??f.find(h=>h.threadId===l)},[f,l,g]),p=Ns(l,g),I=S??p,b=g??I?.messageId,N=o.useMemo(()=>{if(l)return{threadId:l,mailboxId:I?.mailboxId??"",subject:I?.subject,messageId:b,authenticity:I?.authenticity}},[l,I,b]),E=o.useCallback((h,L)=>{n({to:"/mail/brief/$threadId/$messageId",params:h,replace:L?.replace,search:M=>({...M,q:u||void 0}),hash:r})},[n,r,u]),m=o.useCallback(()=>{n({to:"/mail/brief",search:h=>h,hash:r})},[n,r]),v=o.useCallback(h=>{b&&h.includes(b)&&m()},[b,m]),A=Ce({thread:I,onAfterOptimisticRemove:v}),C=As(),{deleteMessages:x}=Bs({mailboxId:I?.mailboxId??"",messages:f,onAfterOptimisticRemove:v}),{toggleReadFor:U}=Os({mailboxId:I?.mailboxId??"",messages:f}),D=C.focusedMessageId,j=o.useMemo(()=>f.find(h=>h.messageId===D),[f,D])??I,P=Ce({thread:j}),V=Ks(),T=Xs(),R=et(),w=o.useMemo(()=>st(R,l,b),[R,l,b]),B=o.useMemo(()=>{if(j)return h=>R({threadId:j.threadId,messageId:j.messageId,mode:h})},[R,j]),{nextMessageId:q,previousMessageId:z}=Ls({context:C,orderedIds:C.orderedIds,selectedMessageId:b,enabled:!V&&!T,onClose:m,handlers:{reply:()=>B?.("reply"),replyAll:()=>B?.("reply-all"),forward:()=>B?.("forward"),delete:()=>{C.listCommandsRef.current?.requestVerb("delete")||P.deleteThread()},toggleStar:P.toggleStar,toggleRead:()=>{C.listCommandsRef.current?.requestVerb("markRead")||j&&U([j.messageId],!j.isRead)},goFlagged:()=>n({to:"/mail/flagged"}),goSettings:()=>n({to:"/settings"})}}),O=o.useCallback(h=>{if(!h)return;const L=f.find(M=>M.messageId===h);return L?{threadId:L.threadId,messageId:h}:void 0},[f]),Q={selectedMessageId:b,selectedThread:I,conversation:N,onOpenThread:E,onCloseThread:m,nextThread:O(q),previousThread:O(z),actions:A,onReply:w,triage:C,onDeleteMessages:x,handleDeselectIfRemoved:v};return a.jsx(Le.Provider,{value:Q,children:s})}function Ee(){const{selectedMessageId:e,onOpenThread:s,triage:n,onDeleteMessages:r}=J(),{accounts:u}=$();return a.jsx(It,{accounts:u,selectedMessageId:e,onOpenThread:s,commandsRef:n.listCommandsRef,onTriageContextChange:n.onTriageContextChange,onDeleteMessages:r})}function vt(){const{conversation:e,actions:s,onReply:n}=J(),{intelligenceOpen:r,onToggleIntelligence:u}=$(),l=is()?.showIntelligencePane??!1,g=!!e,d=l&&g;return a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(Ps,{hasThread:g,intelligenceOpen:d&&r,canToggleIntelligence:d,onToggleIntelligence:u,onReply:n?()=>n("reply"):void 0,onReplyAll:n?()=>n("reply-all"):void 0,onForward:n?()=>n("forward"):void 0,onDelete:g?s.deleteThread:void 0,onToggleStar:g?s.toggleStar:void 0,isStarred:s.isStarred,moveContext:g&&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}):a.jsx(us,{})})]})}function yt(){const{selectedThread:e,handleDeselectIfRemoved:s}=J(),{onToggleIntelligence:n}=$();return a.jsx(ke,{onClose:n,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:s})}function St(){const{selectedThread:e,conversation:s,onOpenThread:n,onCloseThread:r,nextThread:u,previousThread:l,handleDeselectIfRemoved:g}=J(),d=Es(s?.threadId??null);return s?a.jsxs(a.Fragment,{children:[a.jsx(Me,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:r,onOpenIntelligence:d.toggle,onSwipeNext:u?()=>n(u):void 0,onSwipePrevious:l?()=>n(l):void 0,mobileIntelligenceOpen:d.isOpen}),a.jsx(Ds,{isOpen:d.isOpen,onClose:d.close,ariaLabel:"Message details",side:"right",children:a.jsx(ke,{onClose:d.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,hideCloseButton:!0,onAfterOptimisticRemove:g})})]}):a.jsx("div",{className:"h-full",children:a.jsx(Ee,{})})}const At=Object.assign(bt,{List:Ee,Reading:vt,Intelligence:yt,Phone:St});export{At as B};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d4 as U,r as n,cq as X,l as D,bb as Y,aF as Z,aG as ee,j as r,m as te,i as se}from"./index-BBlkR2lm.js";import{u as ae,p as re,R as ne}from"./useSearchTokenContext-DqJZZd-6.js";import{E as oe,a6 as de,F as ie,as as le,a7 as ce,b as ue,M as ge,ae as he,at as me,ag as fe,s as Ie,I as pe,N as V,L as xe,J as Te,d as be,X as ye,Y as ve,Z as K,_ as Re,$ as W,a0 as Ce}from"./MailListHeader-CqEQzbdu.js";import{u as Se,b as je,a as we}from"./MailViewChrome-Ctw7cdnR.js";import{f as Fe}from"./ErrorState-C1M66eLl.js";import{u as Me}from"./useMediaQuery-fCnkE4fe.js";import{o as Pe,f as ke,h as Le,p as Oe,r as Ne}from"./useMessageBodyContent-1l9msTY_.js";const Ae=()=>X({query:{starred:!0,order:"desc"}});function _(){const{data:e,isLoading:t,isError:s,error:l,refetch:m,fetchNextPage:a,hasNextPage:c,isFetchingNextPage:d}=Se({queryKey:Ae(),queryFn:async({pageParam:I})=>{const{data:u}=await U({query:{starred:!0,order:"desc",continuationToken:I},throwOnError:!0});return u},initialPageParam:void 0,getNextPageParam:I=>I.continuationToken,staleTime:6e4});return{threads:n.useMemo(()=>(e?.pages??[]).flatMap(I=>I.items??[]),[e]),isLoading:t,isError:s,error:l,refetch:m,fetchNextPage:a,hasNextPage:c,isFetchingNextPage:d}}const Ee=e=>{const t=new Set;return e.filter(s=>t.has(s.threadId)?!1:(t.add(s.threadId),!0))},De={unread:e=>!e.isRead,attachment:e=>e.hasAttachment===!0};function Be({rows:e,verb:t}){const{selectedIds:s,exitSelection:l}=fe(),m=n.useMemo(()=>e.filter(a=>s.has(a.id)).map(a=>({id:a.id,sender:a.fromName,email:a.fromEmail,subject:a.subject,date:a.timeLabel})),[e,s]);return r.jsx(Ie,{verb:t,selection:m,selectionRestriction:"spansAccounts",onFinished:l})}function qe({selectedMessageId:e,onOpenThread:t,commandsRef:s,onTriageContextChange:l,onDeleteMessages:m}){const{searchQuery:a,resultFolderIndex:c}=D(),d=ae(),M=Me(),I=Y(),[u,f]=n.useState("all"),[R,P]=n.useState(new Set),y=n.useCallback(o=>{P(h=>{const p=new Set(h);return p.has(o)?p.delete(o):p.add(o),p})},[]),C=n.useCallback(()=>{f("all"),P(new Set)},[]),{threads:k,isLoading:T,isError:L,error:q,refetch:O,fetchNextPage:Q,hasNextPage:x,isFetchingNextPage:S}=_(),{freeText:v,tokens:N}=re(a.trim().toLowerCase(),d),g=n.useMemo(()=>{const o=Array.from(R).map(h=>De[h]).filter(h=>h!=null);return Ee(k).map(oe).filter(h=>(u==="all"||h.category===u)&&o.every(p=>p(h))&&(!v||de(h,v))&&ie(h,N))},[k,u,R,v,N]),j=n.useCallback((o,h)=>{const p=g.find(J=>J.id===o)?.threadId;p&&t?.({threadId:p,messageId:o},h)},[g,t]),w=n.useCallback(o=>{const h=o.threadId??g.find(p=>p.id===o.id)?.threadId;h&&t?.({threadId:h,messageId:o.id})},[g,t]),z=n.useMemo(()=>le(),[]),H=n.useMemo(()=>g.map(o=>ce(o,c)),[g,c]),A=n.useMemo(()=>g.filter(o=>!o.isRead).length,[g]),E=T?"loading":L?"error":g.length===0?"empty":"ready",i=n.useCallback(()=>{const o=Z(ee());window.open(o,"_blank","noopener,noreferrer")},[]),b=ue(),F=r.jsx("div",{className:"flex h-full min-h-0 flex-col",children:r.jsxs("div",{className:"flex-1 overflow-y-auto",children:[r.jsx("div",{className:"divide-y divide-line",children:g.map(o=>r.jsx(ge,{thread:o,active:o.id===e,onClick:()=>j(o.id)},o.id))}),x?r.jsx("button",{type:"button",className:"w-full py-3 text-sm text-muted hover:text-fg disabled:opacity-50",onClick:()=>Q(),disabled:S,children:S?"Loading…":"Load more"}):null]})});return r.jsx(je,{title:"Starred",unreadCount:A,preset:z,selectedCategory:u,activeFilters:R,onSelectCategory:f,onToggleFilter:y,onClearFilters:C,searchResults:H,searchLoading:T,onSelectSearchResult:w,searchResultsInBody:!0,children:r.jsxs(he,{selectedMessageId:e,onOpen:j,onDeleteMessages:m,onSelectionVerb:I.start,wizardOpen:I.isOpen,commandsRef:s,onTriageContextChange:l,children:[r.jsx(we,{listTitle:"Starred",sections:[{id:"flagged",threads:g}],flatList:!0,hideHeader:!0,listState:b.searchResults?"ready":E,searchQuery:v?a:void 0,errorMessage:L?Fe(q):void 0,onRetry:()=>O(),onReportError:i,selectedThreadId:e,onSelectThread:j,isDesktop:M,selectionBar:r.jsx(me,{title:"Starred"}),listBody:b.searchResults??(E==="ready"?F:void 0)}),r.jsx(Be,{rows:g,verb:I.verb})]})})}const $=n.createContext(null);function B(){const e=n.useContext($);if(!e)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return e}function ze({thread:e,children:t}){const s=te(),l=Pe(),{searchInput:m}=D(),a=e?.threadId,c=e?.messageId,{threads:d}=_(),M=n.useMemo(()=>{if(a)return d.find(i=>i.messageId===c)??d.find(i=>i.threadId===a)},[d,a,c]),I=pe(a,c),u=M??I,f=c??u?.messageId,R=n.useMemo(()=>{if(a)return{threadId:a,mailboxId:u?.mailboxId??"",subject:u?.subject,messageId:f,authenticity:u?.authenticity}},[a,u,f]),P=n.useCallback((i,b)=>{s({to:"/mail/flagged/$threadId/$messageId",params:i,replace:b?.replace,search:F=>({...F,q:m||void 0}),hash:l})},[s,l,m]),y=n.useCallback(()=>{s({to:"/mail/flagged",search:i=>i,hash:l})},[s,l]),C=n.useCallback(i=>{f&&i.includes(f)&&y()},[f,y]),k=V({thread:u,onAfterOptimisticRemove:C}),T=xe(),{deleteMessages:L}=Te({mailboxId:u?.mailboxId??"",messages:d,onAfterOptimisticRemove:C}),{toggleReadFor:q}=be({mailboxId:u?.mailboxId??"",messages:d}),O=T.focusedMessageId,x=n.useMemo(()=>d.find(i=>i.messageId===O),[d,O])??u,S=V({thread:x}),v=ke(),N=Le(),g=Oe(),j=n.useMemo(()=>Ne(g,a,f),[g,a,f]),w=n.useMemo(()=>{if(x)return i=>g({threadId:x.threadId,messageId:x.messageId,mode:i})},[g,x]),{nextMessageId:z,previousMessageId:H}=ye({context:T,orderedIds:T.orderedIds,selectedMessageId:f,enabled:!v&&!N,onClose:y,handlers:{reply:()=>w?.("reply"),replyAll:()=>w?.("reply-all"),forward:()=>w?.("forward"),delete:()=>{T.listCommandsRef.current?.requestVerb("delete")||S.deleteThread()},toggleStar:S.toggleStar,toggleRead:()=>{T.listCommandsRef.current?.requestVerb("markRead")||x&&q([x.messageId],!x.isRead)},goBrief:()=>s({to:"/mail/brief"}),goSettings:()=>s({to:"/settings"})}}),A=n.useCallback(i=>{if(!i)return;const b=d.find(F=>F.messageId===i);return b?{threadId:b.threadId,messageId:i}:void 0},[d]),E={selectedMessageId:f,selectedThread:u,conversation:R,onOpenThread:P,onCloseThread:y,nextThread:A(z),previousThread:A(H),actions:k,onReply:j,triage:T,onDeleteMessages:L,handleDeselectIfRemoved:C};return r.jsx($.Provider,{value:E,children:t})}function G(){const{selectedMessageId:e,onOpenThread:t,triage:s,onDeleteMessages:l}=B();return r.jsx(qe,{selectedMessageId:e,onOpenThread:t,commandsRef:s.listCommandsRef,onTriageContextChange:s.onTriageContextChange,onDeleteMessages:l})}function He(){const{conversation:e,actions:t,onReply:s}=B(),{intelligenceOpen:l,onToggleIntelligence:m}=D(),a=se()?.showIntelligencePane??!1,c=!!e,d=a&&c;return r.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[r.jsx(Ce,{hasThread:c,intelligenceOpen:d&&l,canToggleIntelligence:d,onToggleIntelligence:m,onReply:s?()=>s("reply"):void 0,onReplyAll:s?()=>s("reply-all"):void 0,onForward:s?()=>s("forward"):void 0,onDelete:c?t.deleteThread:void 0,onToggleStar:c?t.toggleStar:void 0,isStarred:t.isStarred,moveContext:c&&t.accountId&&t.mailboxId?{accountId:t.accountId,currentMailboxId:t.mailboxId,onMove:t.moveThread}:void 0}),r.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?r.jsx(K,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity}):r.jsx(ne,{})})]})}function Qe(){const{selectedThread:e,handleDeselectIfRemoved:t}=B(),{onToggleIntelligence:s}=D();return r.jsx(W,{onClose:s,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function Ve(){const{selectedThread:e,conversation:t,onCloseThread:s,onOpenThread:l,nextThread:m,previousThread:a,handleDeselectIfRemoved:c}=B(),d=ve(t?.threadId??null);return t?r.jsxs(r.Fragment,{children:[r.jsx(K,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:s,onOpenIntelligence:d.toggle,onSwipeNext:m?()=>l(m):void 0,onSwipePrevious:a?()=>l(a):void 0,mobileIntelligenceOpen:d.isOpen}),r.jsx(Re,{isOpen:d.isOpen,onClose:d.close,ariaLabel:"Message details",side:"right",children:r.jsx(W,{onClose:d.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,hideCloseButton:!0,onAfterOptimisticRemove:c})})]}):r.jsx("div",{className:"h-full",children:r.jsx(G,{})})}const Xe=Object.assign(ze,{List:G,Reading:He,Intelligence:Qe,Phone:Ve});export{Xe as F};
|