@remit/web-client-dist 0.0.323 → 0.0.325
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-BX0Ts8eK.js +1 -0
- package/assets/{ErrorState-DZM_kyxb.js → ErrorState-BczXHsEF.js} +1 -1
- package/assets/FlaggedPane-Dt_iIYmt.js +1 -0
- package/assets/MailListHeader-BdAHPksi.js +52 -0
- package/assets/{MailViewChrome-ClVgpPFO.js → MailViewChrome-fy62FAjL.js} +1 -1
- package/assets/MailboxPane-U7vV6ftH.js +1 -0
- package/assets/{NavMenuButton-D-esVAha.js → NavMenuButton-BPba0-Bs.js} +1 -1
- package/assets/OnboardingWizard-B8Q-LYx6.js +1 -0
- package/assets/{OutboxPane-HUY9JhOn.js → OutboxPane-7b3N6IIo.js} +1 -1
- package/assets/_mailboxId-Be32_Fkl.js +1 -0
- package/assets/_messageId-CMKPHNSP.js +1 -0
- package/assets/_messageId-Co6i3yAO.js +1 -0
- package/assets/_outboxMessageId-DJdiizxk.js +1 -0
- package/assets/_threadId-DDJseBJS.js +1 -0
- package/assets/_threadId-qAapyx6s.js +1 -0
- package/assets/{account-form-helpers-Bsx48lx1.js → account-form-helpers-Dy_qYZBf.js} +1 -1
- package/assets/accounts-CHlRsNpU.js +1 -0
- package/assets/{advanced-BuaLHou0.js → advanced-BAXLq_6J.js} +1 -1
- package/assets/{appearance-BQ0Dg1ei.js → appearance-BVBH78Qj.js} +1 -1
- package/assets/{avatar-DdSaEl5o.js → avatar-Cmct93tu.js} +1 -1
- package/assets/{bottom-sheet-DmAG_FCk.js → bottom-sheet-Div7q8za.js} +1 -1
- package/assets/brief-NFFuYb2Y.js +1 -0
- package/assets/{brief-D_aKiQy5.js → brief-ztU-V5Jr.js} +1 -1
- package/assets/{browser-ponyfill-DZK7BleO.js → browser-ponyfill-CltT4veR.js} +2 -2
- package/assets/{circle-check-DZneB6gk.js → circle-check-CqOKm1jQ.js} +1 -1
- package/assets/{circle-check-big-DT6yugdt.js → circle-check-big-C1QO6sWU.js} +1 -1
- package/assets/{circle-help-BJ-e95sd.js → circle-help-DtLG-dD-.js} +1 -1
- package/assets/{clock-CQOmlok1.js → clock-C_nmZOAr.js} +1 -1
- package/assets/{confirm-dialog-DKl9zp18.js → confirm-dialog-D_L2OQTt.js} +1 -1
- package/assets/{download-LYnnm2y0.js → download-CUYIOGeY.js} +1 -1
- package/assets/{filters-Df3eZiR5.js → filters-CihDvHy0.js} +1 -1
- package/assets/flagged-D2-nECko.js +1 -0
- package/assets/{flagged-Czys2fpG.js → flagged-DJtQwJRJ.js} +1 -1
- package/assets/folders-CuQtFJNd.js +1 -0
- package/assets/index-BZNymLz7.js +1 -0
- package/assets/index-CB14yMy_.js +1 -0
- package/assets/index-Co6i3yAO.js +1 -0
- package/assets/{index-CNoNYU4b.js → index-ComwGxPk.js} +65 -65
- package/assets/index-DHWRCxPH.js +1 -0
- package/assets/index-Dd9u_oFv.js +1 -0
- package/assets/index-EJnMy0RH.js +1 -0
- package/assets/index-UDuEAHny.js +1 -0
- package/assets/{index-B9v7X7iy.css → index-rGtSoq8U.css} +1 -1
- package/assets/{kbd-BrhLdlau.js → kbd-BRJLjcIX.js} +1 -1
- package/assets/{labels-CaG9l1EM.js → labels-D8TMS0RV.js} +1 -1
- package/assets/mail-1ta1TRDs.js +1 -0
- package/assets/{menu-Bo_ZQ3dZ.js → menu-C8-I96Zt.js} +1 -1
- package/assets/move-options-WgyTD7l9.js +1 -0
- package/assets/{nav-link-BCGmsThK.js → nav-link-DRXYLG2N.js} +1 -1
- package/assets/onboarding-mDqYUvKo.js +1 -0
- package/assets/outbox-BkghU3zE.js +1 -0
- package/assets/{pencil-CPDJ8KvT.js → pencil-Dbryb2G4.js} +1 -1
- package/assets/{rich-text-DMA7APe6.js → rich-text-BtOJxUml.js} +1 -1
- package/assets/{rotate-ccw-Dc0Ronfg.js → rotate-ccw-CqFFuTll.js} +1 -1
- package/assets/{row-actions-ExiBwpBF.js → row-actions-BMjwPo6d.js} +1 -1
- package/assets/search-scope-CtUcfBl6.js +1 -0
- package/assets/{search-token-index-BTQUgi2G.js → search-token-index-D0pBouL9.js} +1 -1
- package/assets/search-view-BjfUA02J.js +1 -0
- package/assets/{senders-MC2FrOMF.js → senders-CSIdLfBV.js} +1 -1
- package/assets/settings-B885opIA.js +1 -0
- package/assets/{settings-screen-x0E-yYQb.js → settings-screen-CKYaXpTP.js} +1 -1
- package/assets/{shield-check-CA34sFyn.js → shield-check-zfqCjw0j.js} +1 -1
- package/assets/{suggested-vips-DWT9IWLZ.js → suggested-vips-B0qK0um_.js} +1 -1
- package/assets/{useDebouncedValue-CQf4QpzS.js → useDebouncedValue-DtSfQRAl.js} +1 -1
- package/assets/{useFilters-CaSSUNWE.js → useFilters-CgqWzSsw.js} +1 -1
- package/assets/useLabels-w33B4HcN.js +1 -0
- package/assets/{useMediaQuery-CAv9qAps.js → useMediaQuery-DB_QCXpp.js} +1 -1
- package/assets/{useRefreshControl-B41i_Tqe.js → useRefreshControl-DQcQYMVi.js} +1 -1
- package/assets/{useSearchMirror--YnVEyRo.js → useSearchMirror-DcdqXC7B.js} +1 -1
- package/assets/{useSearchTokenContext-DIryp5er.js → useSearchTokenContext-DxeXQ6z3.js} +1 -1
- package/assets/useSignature-iMCmNOo-.js +1 -0
- package/assets/useThreadRow-DvG5ipyv.js +1 -0
- package/index.html +2 -2
- package/package.json +1 -1
- package/assets/BriefPane-BJxOwp8m.js +0 -1
- package/assets/FlaggedPane-CT_N453X.js +0 -1
- package/assets/MailListHeader-CaZUuANM.js +0 -52
- package/assets/MailboxPane-Cpo0ICDX.js +0 -1
- package/assets/OnboardingWizard-Dv0CNLJu.js +0 -1
- package/assets/_mailboxId-BHSTiA2e.js +0 -1
- package/assets/_messageId-BNu6TlV_.js +0 -1
- package/assets/_outboxMessageId-D2tWCsPG.js +0 -1
- package/assets/_threadId-JHkXbYFV.js +0 -1
- package/assets/accounts-CBdVBnhy.js +0 -1
- package/assets/brief-IOLPzmXc.js +0 -1
- package/assets/flagged-Nt9qilw4.js +0 -1
- package/assets/folders-CPk7FXDY.js +0 -1
- package/assets/index-BNu6TlV_.js +0 -1
- package/assets/index-BXK1iByh.js +0 -1
- package/assets/index-Bd4SvJ27.js +0 -1
- package/assets/index-ByG6CDPW.js +0 -1
- package/assets/index-D4cNcmeL.js +0 -1
- package/assets/index-DtQuG32K.js +0 -1
- package/assets/mail-CUfL3Goi.js +0 -1
- package/assets/move-options-Cg4YrriV.js +0 -1
- package/assets/onboarding-BPGOK63U.js +0 -1
- package/assets/outbox-pF0wQVQO.js +0 -1
- package/assets/search-scope-Ds_ghZOi.js +0 -1
- package/assets/search-view-CXPbecDB.js +0 -1
- package/assets/settings-B8a8GsFB.js +0 -1
- package/assets/useLabels-DKpzozgD.js +0 -1
- package/assets/useSemanticSearch-DDwHlaH_.js +0 -1
- package/assets/useSignature-C0EjJ_Wk.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as E,e as
|
|
1
|
+
import{j as E,e as q,b as j,B as D,r as i,v as C,aG as R,s as P,o as K,a2 as Q,Q as A,P as G,R as $,U as z}from"./index-ComwGxPk.js";import{C as B}from"./circle-check-big-C1QO6sWU.js";import{R as H}from"./search-token-index-D0pBouL9.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(B,{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 U=new Set(["discovering_mailboxes","syncing_inbox","syncing_others"]);function N(e){return!!e&&U.has(e)}const _=3e3,W=_*2,v={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),W);return()=>clearTimeout(r)},[s,t]);const o=C({queries:e.map(r=>({...R({path:{accountId:r}}),enabled:t&&!a,refetchInterval:_,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(N(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?v:{syncing:g,resolved:!0,synced:y,total:w}}const M=6e4,I=new Set(["sent","drafts","trash","archive"]),k=(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},X=(e,t)=>{for(const[s,a]of t)if(a>(e.get(s)??0))return!0;return!1},F=i.createContext(null),J=()=>{const e=i.useContext(F);if(!e)throw new Error("useMailFreshness must be used inside <MailFreshnessProvider>");return e};function ce({accountIds:e,children:t}){const s=P(),{resultFolderIndex:a}=K(),n=i.useRef(new Map),u=i.useRef(new Set),[c,o]=i.useState(new Set),f=C({queries:e.map(r=>({...R({path:{accountId:r}}),refetchInterval:M,staleTime:M,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=k(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;X(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,k(d?.mailboxes??[],a)),u.current.add(l)}},[s,a]),S=i.useMemo(()=>({hasNewMail:y,acknowledge:w}),[y,w]);return E.jsx(F.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=>{$(e,{softError:!0})&&z(e)},L=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(N(c))n=!0;else if(n||L(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:L(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 G({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=P(),a=Q(),{acknowledge:n}=J(),[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:A({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,N as i,J as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{p as h,o as y,W as v,r as p}from"./index-ComwGxPk.js";import{u as x}from"./search-scope-CtUcfBl6.js";import{b as I}from"./search-view-BjfUA02J.js";function q(o){const a=h(),{searchInput:c,searchQuery:e}=y(),{q:i=""}=v({from:"/mail"}),n=x({select:m=>m.location.pathname}),s=p.useRef(i);s.current=i;const{to:r}=o,t="params"in o?o.params.mailboxId:void 0,l=t?`/mail/${t}`:r;p.useEffect(()=>{if(!I({searchInput:c,committedQuery:e,urlQuery:s.current,pathname:n,listPath:l}))return;const d=!!e&&s.current!==e,u=f=>({...f,q:e||void 0,...d?{selectedMessageId:void 0,selectedThreadId:void 0,selectedMailboxId:void 0}:{}});if(!d){a({to:".",search:u,replace:!0});return}if(r==="/mail/$mailboxId"){if(!t)return;a({to:r,params:{mailboxId:t},search:u,replace:!0});return}a({to:r,search:u,replace:!0})},[c,e,a,r,t,l,n])}export{q as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{c4 as X,r as f,j as a,b as B,I as Y,a2 as Z,n as P,s as W,x as J,cs as H,cr as ee,ae as te,ag as se,ah as re,bb as ne,e as ae,X as oe,K as C,o as ie}from"./index-ComwGxPk.js";import{K as L}from"./kbd-BRJLjcIX.js";import{M as Q}from"./enums-CCxx0t2v.js";import{u as ce,i as le}from"./search-scope-CtUcfBl6.js";const de=(e,t)=>{const r=e==="newsletter"||e==="marketing"||t;return{framed:r,isPlain:!r}},ue=()=>`
|
|
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 {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as c,ae as p,x as f,Z as m,r,ag as y,ah as T,a1 as x,ai as E}from"./index-ComwGxPk.js";const i={html:"",plainText:""},C=e=>{const u=c(),{pushError:o}=p(),{data:n}=f({...m(),staleTime:1/0}),g=r.useMemo(()=>{if(!e||!n)return i;const t=n.accounts.find(s=>s.accountId===e);return t?{html:t.signatureHtml??"",plainText:t.signaturePlainText??""}:i},[e,n]),a=y({...E(),onSuccess:()=>{u.invalidateQueries({queryKey:x()})},onError:t=>{o(T("Couldn't save signature","The signature wasn't saved.",t))}}),l=r.useCallback((t,s)=>{e&&a.mutate({path:{accountId:e},body:{signatureHtml:t,signaturePlainText:s}})},[e,a]);return{signature:g,setSignature:l,isSaving:a.isPending}};export{C as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as C,ae as I,ag as E,bE as k,bF as A,r as x,j as p,bG as f,bH as R,bI as j,o as O,x as S,bJ as D,bK as Q}from"./index-ComwGxPk.js";import{aq as _,ar as q,as as w,at as z,au as N}from"./MailListHeader-BdAHPksi.js";import{a as P}from"./useLabels-w33B4HcN.js";import{M as B}from"./enums-CCxx0t2v.js";import{u as F,s as G}from"./search-scope-CtUcfBl6.js";import{n as U}from"./search-query-Cr_ZXBCp.js";import{u as K,p as H}from"./useSearchTokenContext-DxeXQ6z3.js";const J=e=>{const{mailboxId:s,messages:i}=e,o=C(),{pushError:l}=I(),{mutateAsync:n,isPending:a}=E({...A(),onError:(r,u)=>{l({title:u.body.action==="Remove"?"Couldn't remove label":"Couldn't apply label",detail:k(r),error:r})},onSettled:(r,u,d)=>{_(o,q(w(d.body.messageIds??[],i??[],s)))}});return{applyLabel:x.useCallback((r,u,d)=>{r.length!==0&&z(r,m=>n({body:{messageIds:m,labelId:u,action:d}}))},[n]),isPending:a}};function ne({accountId:e,mailboxId:s,messageIds:i}){const{labels:o}=P(e),{applyLabel:l}=J({mailboxId:s}),n=x.useMemo(()=>o.map(a=>({key:a.labelId,label:a.name,icon:p.jsx("span",{className:`size-2.5 rounded-full ${R(a.color)?f[a.color]:f.Default}`}),onSelect:()=>l(i,a.labelId,"Apply")})),[o,i,l]);return n.length===0?null:p.jsx(N,{triggerLabel:"Apply label to selected messages",triggerIcon:p.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 V=20,$=new Set(Object.values(B)),W=e=>e!==void 0&&$.has(e)?e:void 0,X=e=>{if(e.some(s=>s.type==="isUnread"))return!1;if(e.some(s=>s.type==="isRead"))return!0};function re({mailboxId:e,filterCategory:s}={}){const{searchQuery:i}=O(),o=K(),l=F({select:t=>t.matches}),n=U(i),{freeText:a,tokens:c}=H(n,o),r=a.length>0,u=c.find(t=>t.type==="category"),d=W(s)??u?.category,m=c.some(t=>t.type==="hasAttachment")?!0:void 0,b=c.some(t=>t.type==="isStarred")?!0:void 0,y=X(c),g=c.find(t=>t.type==="after"),h=c.find(t=>t.type==="before"),T=c.find(t=>t.type==="in"),v=G({matches:l,callerMailboxId:e,inTokenMailboxId:T?.mailboxId}),{data:M,isLoading:L}=S({...D({query:{query:a,mailboxId:v,limit:V,...d!==void 0?{category:d}:{},...m!==void 0?{hasAttachment:m}:{},...b!==void 0?{hasStars:b}:{},...y!==void 0?{isRead:y}:{},...g?{sentDateFrom:g.epochSeconds}:{},...h?{sentDateTo:h.epochSeconds}:{}}}),enabled:r,staleTime:6e4});return{hits:M?.items??[],isLoading:r&&L}}const ie=(e,s)=>{const{data:i}=S({...Q({path:{threadId:e??""}}),enabled:!!e}),o=i?.items??[],l=s?o.find(a=>a.messageId===s):void 0,n=o.length>0?o[o.length-1]:void 0;return l??n};export{ne as L,re as a,ie as u};
|
package/index.html
CHANGED
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
} catch (_) {}
|
|
39
39
|
})();
|
|
40
40
|
</script>
|
|
41
|
-
<script type="module" crossorigin src="/assets/index-
|
|
42
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
41
|
+
<script type="module" crossorigin src="/assets/index-ComwGxPk.js"></script>
|
|
42
|
+
<link rel="stylesheet" crossorigin href="/assets/index-rGtSoq8U.css">
|
|
43
43
|
</head>
|
|
44
44
|
<body>
|
|
45
45
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as a,al as Ke,S as Xe,bx as et,n as F,be as tt,o as ae,r as n,w as G,by as se,t as st,v as at,bz as ot,bA as nt,bq as rt,e as Te,bv as it,bB as lt,i as ct}from"./index-CNoNYU4b.js";import{s as Re,a as dt,b as we,u as ut,p as mt,R as ft}from"./useSearchTokenContext-DIryp5er.js";import{ah as ve,F as ye,ai as ht,a3 as gt,G as xt,a5 as Se,aj as pt,ak as It,al as bt,a2 as vt,am as yt,an as St,ao as Ct,M as jt,a6 as Tt,af as Rt,a8 as wt,f as Mt,w as kt,ag as At,s as Nt,S as Bt,N as Ce,L as Ft,H as Ot,e as Lt,X as Dt,Y as Me,Z as Et,_ as ke,$ as qt}from"./MailListHeader-CaZUuANM.js";import{u as Pt,a as zt,R as Ht,i as _t,b as Qt}from"./useRefreshControl-B41i_Tqe.js";import{a as $t}from"./useLabels-DKpzozgD.js";import{d as Wt,R as Gt}from"./search-token-index-BTQUgi2G.js";import{u as Ut}from"./useMediaQuery-CAv9qAps.js";import{u as Vt,L as Yt}from"./useSemanticSearch-DDwHlaH_.js";function Jt({sync:e}){return e?a.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",role:"status","aria-live":"polite",children:[a.jsx(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:Zt(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 Zt({synced:e,total:t}){return t>0?`${e.toLocaleString()} of ${t.toLocaleString()} messages downloaded. This list fills in as they arrive.`:"Downloading your messages. This list fills in as they arrive."}const Ae=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Ne="category",Kt={unclassified:"uncategorized"},q=e=>dt(e).map(t=>t.raw),E=e=>e.join(" "),oe=e=>{const t=we(e);if(t)return Ae.find(o=>o.name===t.name&&o.value===t.value.toLowerCase())?.id},ne=e=>{const t=we(e);if(!t||t.name!==Ne)return;const o=t.value.toLowerCase(),r=Kt[o];if(r)return r;if(!(!et(o)||o==="all"))return o},Be=e=>Ae.find(t=>t.id===e),Fe=e=>Be(e)!==void 0,Xt=e=>{const t=new Set;for(const o of q(e)){const r=oe(o);r&&t.add(r)}return t},es=e=>{let t="all";for(const o of q(e)){const r=ne(o);r&&(t=r)}return t},ts=(e,t)=>{const o=Be(t);if(!o)return;const r=q(e),c=r.filter(i=>oe(i)!==t);return c.length<r.length?E(c):E([...r,Re(o.name,o.value)])},ss=(e,t)=>{const o=q(e).filter(r=>!ne(r));return E(t==="all"?o:[...o,Re(Ne,t)])},as=e=>E(q(e).filter(t=>!oe(t)&&!ne(t))),Oe=e=>e.trim().length>0,os=e=>{if(!Oe(e.query))return e.ownFilters;const t=new Set(Xt(e.query));for(const o of e.ownFilters)Fe(o)||t.add(o);return t},ns=e=>Oe(e.query)?es(e.query):e.ownCategory,rs=(e,t)=>e.createdAt!==t.createdAt?e.createdAt-t.createdAt:e.accountId.localeCompare(t.accountId),is=e=>[...e].sort(rs),ls=200,je=()=>a.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,t)=>a.jsxs("div",{className:"flex items-start gap-3 py-2 pl-5 pr-4 border-b border-line",children:[a.jsx("div",{className:"size-7 rounded-full bg-surface-sunken shrink-0 mt-0.5"}),a.jsxs("div",{className:"flex-1 space-y-1.5",children:[a.jsxs("div",{className:"flex justify-between gap-2",children:[a.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-28"}),a.jsx("div",{className:"h-3 bg-surface-sunken rounded w-12"})]}),a.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-48"}),a.jsx("div",{className:"h-3 bg-surface-sunken rounded w-full"})]})]},t))}),cs=({accountEmail:e})=>{const t=ae();return a.jsxs("div",{className:"flex items-center gap-2 px-row-inset py-2 border-b border-line bg-danger-soft/40 text-xs text-danger",children:[a.jsx(Te,{className:"size-3.5 shrink-0"}),a.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),a.jsx("button",{type:"button",onClick:()=>t({to:"/settings/accounts"}),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},ds=(e,t)=>{if(t.size===0)return{};const o=new Set,r=new Set;for(const i of e)t.has(i.id)&&(i.accountId&&o.add(i.accountId),i.mailboxId&&r.add(i.mailboxId));if(o.size>1)return{moveDisabledHint:"Move only works within one account — clear selection or pick messages from a single account"};const c=o.size===1?[...o][0]:void 0;return r.size>1?{accountId:c,moveDisabledHint:`Move only works within one folder — this selection spans ${r.size} folders`}:{accountId:c,mailboxId:r.size===1?[...r][0]:void 0}};function us({header:e,rows:t,wizard:o,children:r}){const{selectedIds:c,selectedCount:i,exitSelection:x,orderedIds:u,allSelected:p,toggleAllLoaded:y}=wt(),m=n.useMemo(()=>ds(t,c),[t,c]),{junkMailboxId:S}=Mt(m.accountId),{labels:O}=$t(m.accountId),M=n.useMemo(()=>Array.from(c),[c]),j=n.useMemo(()=>t.filter(g=>c.has(g.id)).map(g=>({id:g.id,sender:g.fromName,email:g.fromEmail,subject:g.subject,date:g.timeLabel})),[t,c]),h=kt(S,m.mailboxId),I=n.useMemo(()=>u.length>0?{checked:p,indeterminate:i>0&&!p,onChange:y}:void 0,[u.length,p,i,y]),b=m.moveDisabledHint?{tone:"warning",text:m.moveDisabledHint}:void 0,B=g=>a.jsx(Bt,{title:g.title,navSlot:g.navSlot,titleMeta:g.titleMeta,searchSlot:g.searchSlot,searchField:g.searchField,idleSlot:g.makeFilterSlot,count:i,onCancel:x,onDelete:()=>o.start("delete"),onMove:()=>o.start("move"),onOrganize:()=>o.start("organize"),onJunk:h?()=>o.start("junk"):void 0,onMarkRead:()=>o.start("markRead"),overflowSlot:m.accountId&&m.mailboxId&&i>0&&O.length>0?a.jsx(Yt,{accountId:m.accountId,mailboxId:m.mailboxId,messageIds:M}):void 0,selectAll:I,notice:b});return a.jsx(At,{...e,selectionBar:B,paneOverlay:a.jsx(Nt,{verb:o.verb,accountId:m.accountId,mailboxId:m.mailboxId,selection:j,crossAccount:m.moveDisabledHint!==void 0,onFinished:x}),children:r})}function ms({accounts:e,selectedMessageId:t,onOpenThread:o,commandsRef:r,onTriageContextChange:c,onDeleteMessages:i}){const{searchQuery:x,searchInput:u,resultFolderIndex:p,onSearchChange:y}=F(),m=ut(),S=Ut(),O=Wt(),M=tt(),j=ae(),h=n.useMemo(()=>is(e.filter(s=>!s.muted?.value)),[e]),[I,b]=n.useState("all"),[B,g]=n.useState("all"),[L,V]=n.useState(new Set),[k,P]=n.useState(!1),z=n.useCallback(s=>{V(l=>{const d=new Set(l);return d.has(s)?d.delete(s):d.add(s),d})},[]),H=n.useCallback(()=>V(new Set),[]),C=u.trim().length>0,A=n.useMemo(()=>os({query:u,ownFilters:L}),[u,L]),f=n.useMemo(()=>ns({query:u,ownCategory:B}),[u,B]),T=n.useCallback(s=>{if(!C||!Fe(s)){z(s);return}const l=ts(u,s);l!==void 0&&y(l)},[C,u,y,z]),N=n.useCallback(s=>{if(!C){g(s);return}y(ss(u,s))},[C,u,y]),Y=n.useCallback(()=>{g("all"),b("all"),H(),C&&y(as(u))},[C,u,y,H]),{data:_,isLoading:J,isError:re,refetch:ie}=G({...se(),staleTime:6e4}),Q=st({queries:h.map(s=>({...at({path:{accountId:s.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),$=n.useMemo(()=>{const s=new Map;for(let l=0;l<h.length;l++){const d=h[l].accountId,Ye=(Q[l]?.data?.items??[]).reduce((Je,Ze)=>Je+(Ze.unseenCount??0),0);s.set(d,Ye)}return s},[h,Q]),Ee=n.useMemo(()=>h.filter((s,l)=>{const d=Q[l];return d?.isError?!ot(d.error):!1}),[h,Q]),{freeText:R,tokens:Z}=mt(x.trim().toLowerCase(),m),{data:le,isFetching:qe}=G({...se({query:{query:R,limit:ls}}),enabled:R.length>0,staleTime:3e4}),v=n.useMemo(()=>{const s=ve(_?.items??[]).map(ye);return(R?ht(s.filter(d=>gt(d,R)),ve(le?.items??[]).map(ye)):s).filter(d=>(I==="all"||d.accountId===I)&&xt(d,Z))},[_,le,I,R,Z]),{bodyRows:ce,briefSpamOffer:K}=n.useMemo(()=>{if(!R)return{bodyRows:v,briefSpamOffer:void 0};const s=v.map(w=>Se(w,p)),{spam:l}=pt(s);if(l.length===0)return{bodyRows:v,briefSpamOffer:void 0};const d=new Set(l.map(w=>w.id));return{bodyRows:v.filter(w=>!d.has(w.id)),briefSpamOffer:It(s)}},[v,R,p]),de=n.useMemo(()=>bt(ce),[ce]),ue=n.useCallback((s,l)=>{const d=v.find(w=>w.id===s)?.threadId;d&&o?.({threadId:d,messageId:s},l)},[v,o]),Pe=n.useCallback(s=>{const l=s.threadId??v.find(d=>d.id===s.id)?.threadId;l&&o?.({threadId:l,messageId:s.id})},[v,o]),X=n.useMemo(()=>h.length<=1?[]:[{id:"all",label:"All",active:I==="all"},...h.map(s=>({id:s.accountId,label:s.email.split("@")[0]??s.email,count:$.get(s.accountId),active:I===s.accountId}))],[h,$,I]),D=n.useMemo(()=>e.filter(s=>s.muted?.value).length,[e]),ze=n.useMemo(()=>Array.from($.values()).reduce((s,l)=>s+l,0),[$]),ee=n.useMemo(()=>h.map(s=>s.accountId),[h]),{hasNewMail:me}=Pt(),{state:fe,errorMessage:he,refresh:ge}=zt(ee,{onSettled:()=>ie()}),He=n.useMemo(()=>a.jsx(Ht,{state:fe,onRefresh:ge,label:"Refresh daily brief",errorMessage:he,hasUpdate:me(ee)}),[fe,ge,he,me,ee]),te=n.useMemo(()=>v.filter(s=>(f==="all"||s.category===f)&&nt(s,A)).map(s=>Se(s,p)),[v,f,A,p]),{hits:xe,isLoading:_e}=Vt(),Qe=n.useMemo(()=>{const s=new Map;for(const d of _?.items??[])s.set(d.messageId,d.threadId);const l=te.map(d=>s.get(d.id)).filter(d=>d!=null);return vt(xe,l,p)},[xe,te,_,p]),$e=n.useMemo(()=>{const s=yt(X.map(l=>({id:l.id,label:l.label,count:l.count,active:l.active})));return{categories:s.categories,filters:s.filters,sources:s.sources,sourcesNote:D>0?`+${D} muted`:void 0,selectedCategory:f,activeFilters:A,expanded:k,onExpandedChange:P,onSelectCategory:l=>N(l),onSelectSource:b,onToggleFilter:l=>T(l),onClear:Y}},[X,D,f,A,k,T,N,Y]),pe=de.length===0&&I==="all"&&R.length===0&&Z.length===0,We=n.useMemo(()=>h.map(s=>s.accountId),[h]),Ge=n.useMemo(()=>h.some(s=>_t(s.syncPhase)),[h]),W=Qt(We,pe||Ge),Ie=a.jsxs("div",{className:"h-full overflow-y-auto",children:[a.jsx(je,{}),a.jsx(je,{})]}),be=!J&&!re&&!pe,Ue=St({tier:O,hasLiveInput:C,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(Ct,{count:K.count,onScopeToSpam:()=>j({to:"/mail/$mailboxId",params:{mailboxId:K.mailboxId},search:{q:x||void 0,selectedMessageId:void 0,selectedThreadId:void 0}})}),a.jsx("div",{className:"min-h-0 flex-1",children:a.jsx(rt,{sections:de,briefCategory:f,Row:jt,selectedThreadId:t,onSelectThread:ue,onSelectBriefCategory:N,sources:X,sourcesNote:D>0?`+${D} muted`:void 0,onSelectSource:b,activeFilters:A,onToggleFilter:T,onClearFilters:Y})})]}):J?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(Te,{className:"size-8 text-danger"}),a.jsx("p",{children:"Couldn't load your messages"}),a.jsxs("button",{type:"button",onClick:()=>ie(),className:"flex items-center gap-1 text-accent underline text-xs",children:[a.jsx(Gt,{className:"size-3.5"}),"Try again"]})]}):W.resolved?a.jsx(Jt,{sync:W.syncing?{synced:W.synced,total:W.total}:void 0}):Ie;return a.jsx(it,{hasSheet:be&&!Ue,children:a.jsx(Tt,{selectedMessageId:t,onOpen:ue,onDeleteMessages:i,onSelectionVerb:M.start,wizardOpen:M.isOpen,commandsRef:r,onTriageContextChange:c,children:a.jsx(us,{wizard:M,header:{title:"Daily brief",unreadCount:ze,footer:S?a.jsx(Rt,{}):void 0,searchFilter:$e,searchResults:te,searchLoading:J||qe,relatedResults:Qe,relatedLoading:_e,onSelectSearchResult:Pe,searchResultsInBody:!0,refreshControl:He},rows:v,children:a.jsxs("div",{className:"flex h-full flex-col",children:[Ee.map(s=>a.jsx(cs,{accountEmail:s.email,accountId:s.accountId},s.accountId)),a.jsx("div",{className:"min-h-0 flex-1",children:Ve})]})})})})}const fs=(e,t)=>{const{data:o}=G({...lt({path:{threadId:e??""}}),enabled:!!e}),r=o?.items??[],c=t?r.find(x=>x.messageId===t):void 0,i=r.length>0?r[r.length-1]:void 0;return c??i},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 hs({thread:e,children:t}){const o=ae(),{searchInput:r}=F(),c=e?.threadId,i=e?.messageId,{data:x}=G({...se(),staleTime:6e4}),u=n.useMemo(()=>x?.items??[],[x]),p=n.useMemo(()=>{if(c)return u.find(f=>f.messageId===i)??u.find(f=>f.threadId===c)},[u,c,i]),y=fs(c,i),m=p??y,S=i??m?.messageId,O=n.useMemo(()=>{if(c)return{threadId:c,mailboxId:m?.mailboxId??"",subject:m?.subject,messageId:S,authenticity:m?.authenticity}},[c,m,S]),M=n.useCallback((f,T)=>{o({to:"/mail/brief/$threadId/$messageId",params:f,replace:T?.replace,search:N=>({...N,q:r||void 0})})},[o,r]),j=n.useCallback(()=>{o({to:"/mail/brief",search:f=>f})},[o]),h=n.useCallback(f=>{S&&f.includes(S)&&j()},[S,j]),I=Ce({thread:m,onAfterOptimisticRemove:h}),b=Ft(),{deleteMessages:B}=Ot({mailboxId:m?.mailboxId??"",messages:u,onAfterOptimisticRemove:h}),{toggleReadFor:g}=Lt({mailboxId:m?.mailboxId??"",messages:u}),L=b.focusedMessageId,k=n.useMemo(()=>u.find(f=>f.messageId===L),[u,L])??m,P=Ce({thread:k}),{nextMessageId:z,previousMessageId:H}=Dt({context:b,orderedIds:b.orderedIds,selectedMessageId:S,onClose:j,handlers:{reply:()=>I.requestCompose("reply"),replyAll:()=>I.requestCompose("reply_all"),forward:()=>I.requestCompose("forward"),delete:()=>{b.listCommandsRef.current?.requestVerb("delete")||P.deleteThread()},toggleStar:P.toggleStar,toggleRead:()=>{b.listCommandsRef.current?.requestVerb("markRead")||k&&g([k.messageId],!k.isRead)},goFlagged:()=>o({to:"/mail/flagged"}),goSettings:()=>o({to:"/settings"})}}),C=n.useCallback(f=>{if(!f)return;const T=u.find(N=>N.messageId===f);return T?{threadId:T.threadId,messageId:f}:void 0},[u]),A={selectedMessageId:S,selectedThread:m,conversation:O,onOpenThread:M,onCloseThread:j,nextThread:C(z),previousThread:C(H),actions:I,triage:b,onDeleteMessages:B,handleDeselectIfRemoved:h};return a.jsx(Le.Provider,{value:A,children:t})}function De(){const{selectedMessageId:e,onOpenThread:t,triage:o,onDeleteMessages:r}=U(),{accounts:c}=F();return a.jsx(ms,{accounts:c,selectedMessageId:e,onOpenThread:t,commandsRef:o.listCommandsRef,onTriageContextChange:o.onTriageContextChange,onDeleteMessages:r})}function gs(){const{conversation:e,actions:t}=U(),{intelligenceOpen:o,onToggleIntelligence:r}=F(),c=ct()?.showIntelligencePane??!1,i=!!e,x=c&&i;return a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(qt,{hasThread:i,intelligenceOpen:x&&o,canToggleIntelligence:x,onToggleIntelligence:r,onReply:i?()=>t.requestCompose("reply"):void 0,onReplyAll:i?()=>t.requestCompose("reply_all"):void 0,onForward:i?()=>t.requestCompose("forward"):void 0,onDelete:i?t.deleteThread:void 0,onToggleStar:i?t.toggleStar:void 0,isStarred:t.isStarred,moveContext:i&&t.accountId&&t.mailboxId?{accountId:t.accountId,currentMailboxId:t.mailboxId,onMove:t.moveThread}:void 0}),a.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?a.jsx(Me,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,composeRequest:t.composeRequest,onComposeClose:t.clearComposeRequest}):a.jsx(ft,{})})]})}function xs(){const{selectedThread:e,handleDeselectIfRemoved:t}=U(),{onToggleIntelligence:o}=F();return a.jsx(ke,{onClose:o,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function ps(){const{selectedThread:e,conversation:t,onOpenThread:o,onCloseThread:r,nextThread:c,previousThread:i,handleDeselectIfRemoved:x}=U(),{intelligenceOpen:u,onToggleIntelligence:p}=F();return t?a.jsxs(a.Fragment,{children:[a.jsx(Me,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:r,onOpenIntelligence:p,onSwipeNext:c?()=>o(c):void 0,onSwipePrevious:i?()=>o(i):void 0,mobileIntelligenceOpen:u}),a.jsx(Et,{isOpen:u,onClose:p,ariaLabel:"Message details",side:"right",children:a.jsx(ke,{onClose:p,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,hideCloseButton:!0,onAfterOptimisticRemove:x})})]}):a.jsx("div",{className:"h-full",children:a.jsx(De,{})})}const Rs=Object.assign(hs,{List:De,Reading:gs,Intelligence:xs,Phone:ps});export{Rs as B};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{bm as G,r as i,bn as U,n as j,be as X,bg as Y,bh as Z,j as a,o as $,i as J}from"./index-CNoNYU4b.js";import{u as ee,p as te,R as se}from"./useSearchTokenContext-DIryp5er.js";import{F as ae,a3 as oe,G as re,a4 as ne,a5 as ie,d as le,M as de,a6 as ce,a7 as ue,a8 as ge,s as he,N as O,L as me,H as fe,e as xe,X as pe,Y as A,Z as Ie,_ as E,$ as be}from"./MailListHeader-CaZUuANM.js";import{u as Te,b as Ce,a as ve}from"./MailViewChrome-ClVgpPFO.js";import{f as ye}from"./ErrorState-DZM_kyxb.js";import{u as Re}from"./useMediaQuery-CAv9qAps.js";const Se=()=>U({query:{starred:!0,order:"desc"}});function B(){const{data:e,isLoading:t,isError:s,error:n,refetch:l,fetchNextPage:o,hasNextPage:c,isFetchingNextPage:g}=Te({queryKey:Se(),queryFn:async({pageParam:d})=>{const{data:m}=await G({query:{starred:!0,order:"desc",continuationToken:d},throwOnError:!0});return m},initialPageParam:void 0,getNextPageParam:d=>d.continuationToken,staleTime:6e4});return{threads:i.useMemo(()=>(e?.pages??[]).flatMap(d=>d.items??[]),[e]),isLoading:t,isError:s,error:n,refetch:l,fetchNextPage:o,hasNextPage:c,isFetchingNextPage:g}}const je=e=>{const t=new Set;return e.filter(s=>t.has(s.threadId)?!1:(t.add(s.threadId),!0))},Fe={unread:e=>!e.isRead,attachment:e=>e.hasAttachment===!0};function we({rows:e,verb:t}){const{selectedIds:s,exitSelection:n}=ge(),l=i.useMemo(()=>e.filter(o=>s.has(o.id)).map(o=>({id:o.id,sender:o.fromName,email:o.fromEmail,subject:o.subject,date:o.timeLabel})),[e,s]);return a.jsx(he,{verb:t,selection:l,crossAccount:!0,onFinished:n})}function Pe({selectedMessageId:e,onSelectMessage:t,commandsRef:s,onTriageContextChange:n,onDeleteMessages:l}){const{searchQuery:o,resultFolderIndex:c}=j(),g=ee(),x=Re(),d=X(),[m,T]=i.useState("all"),[p,w]=i.useState(new Set),I=i.useCallback(r=>{w(u=>{const b=new Set(u);return b.has(r)?b.delete(r):b.add(r),b})},[]),C=i.useCallback(()=>{T("all"),w(new Set)},[]),{threads:v,isLoading:y,isError:R,error:h,refetch:P,fetchNextPage:M,hasNextPage:z,isFetchingNextPage:L}=B(),{freeText:S,tokens:k}=te(o.trim().toLowerCase(),g),f=i.useMemo(()=>{const r=Array.from(p).map(u=>Fe[u]).filter(u=>u!=null);return je(v).map(ae).filter(u=>(m==="all"||u.category===m)&&r.every(b=>b(u))&&(!S||oe(u,S))&&re(u,k))},[v,m,p,S,k]),Q=i.useMemo(()=>ne(),[]),V=i.useMemo(()=>f.map(r=>ie(r,c)),[f,c]),_=i.useMemo(()=>f.filter(r=>!r.isRead).length,[f]),N=y?"loading":R?"error":f.length===0?"empty":"ready",K=i.useCallback(()=>{const r=Y(Z());window.open(r,"_blank","noopener,noreferrer")},[]),q=le(),W=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:f.map(r=>a.jsx(de,{thread:r,active:r.id===e,onClick:()=>t?.(r.id)},r.id))}),z?a.jsx("button",{type:"button",className:"w-full py-3 text-sm text-muted hover:text-fg disabled:opacity-50",onClick:()=>M(),disabled:L,children:L?"Loading…":"Load more"}):null]})});return a.jsx(Ce,{title:"Starred",unreadCount:_,preset:Q,selectedCategory:m,activeFilters:p,onSelectCategory:T,onToggleFilter:I,onClearFilters:C,searchResults:V,searchLoading:y,onSelectSearchResult:r=>t?.(r.id),searchResultsInBody:!0,children:a.jsxs(ce,{selectedMessageId:e,onOpen:(r,u)=>t?.(r,u),onDeleteMessages:l,onSelectionVerb:d.start,wizardOpen:d.isOpen,commandsRef:s,onTriageContextChange:n,children:[a.jsx(ve,{listTitle:"Starred",sections:[{id:"flagged",threads:f}],flatList:!0,hideHeader:!0,listState:q.searchResults?"ready":N,searchQuery:S?o:void 0,errorMessage:R?ye(h):void 0,onRetry:()=>P(),onReportError:K,selectedThreadId:e,onSelectThread:t,isDesktop:x,selectionBar:a.jsx(ue,{title:"Starred"}),listBody:q.searchResults??(N==="ready"?W:void 0)}),a.jsx(we,{rows:f,verb:d.verb})]})})}const D=i.createContext(null);function F(){const e=i.useContext(D);if(!e)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return e}function Me({selectedMessageId:e,children:t}){const s=$(),{threads:n}=B(),l=i.useMemo(()=>{if(e)return n.find(h=>h.messageId===e)},[n,e]),o=i.useCallback((h,P)=>{s({to:"/mail/flagged",search:M=>({...M,selectedMessageId:h}),replace:P?.replace})},[s]),c=i.useCallback(()=>{s({to:"/mail/flagged",search:h=>({...h,selectedMessageId:void 0})})},[s]),g=i.useCallback(h=>{e&&h.includes(e)&&c()},[e,c]),x=O({thread:l,onAfterOptimisticRemove:g}),d=me(),{deleteMessages:m}=fe({mailboxId:l?.mailboxId??"",messages:n,onAfterOptimisticRemove:g}),{toggleReadFor:T}=xe({mailboxId:l?.mailboxId??"",messages:n}),p=d.focusedMessageId,I=i.useMemo(()=>n.find(h=>h.messageId===p),[n,p])??l,C=O({thread:I}),{nextMessageId:v,previousMessageId:y}=pe({context:d,orderedIds:d.orderedIds,selectedMessageId:e,onClose:c,handlers:{reply:()=>x.requestCompose("reply"),replyAll:()=>x.requestCompose("reply_all"),forward:()=>x.requestCompose("forward"),delete:()=>{d.listCommandsRef.current?.requestVerb("delete")||C.deleteThread()},toggleStar:C.toggleStar,toggleRead:()=>{d.listCommandsRef.current?.requestVerb("markRead")||I&&T([I.messageId],!I.isRead)},goBrief:()=>s({to:"/mail/brief"}),goSettings:()=>s({to:"/settings"})}}),R={selectedMessageId:e,selectedThread:l,onSelectMessage:o,onCloseThread:c,actions:x,triage:d,onDeleteMessages:m,nextMessageId:v,previousMessageId:y,handleDeselectIfRemoved:g};return a.jsx(D.Provider,{value:R,children:t})}function H(){const{selectedMessageId:e,onSelectMessage:t,triage:s,onDeleteMessages:n}=F();return a.jsx(Pe,{selectedMessageId:e,onSelectMessage:t,commandsRef:s.listCommandsRef,onTriageContextChange:s.onTriageContextChange,onDeleteMessages:n})}function Le(){const{selectedThread:e,actions:t}=F(),{intelligenceOpen:s,onToggleIntelligence:n}=j(),l=J()?.showIntelligencePane??!1,o=!!e,c=l&&o;return a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(be,{hasThread:o,intelligenceOpen:c&&s,canToggleIntelligence:c,onToggleIntelligence:n,onReply:o?()=>t.requestCompose("reply"):void 0,onReplyAll:o?()=>t.requestCompose("reply_all"):void 0,onForward:o?()=>t.requestCompose("forward"):void 0,onDelete:o?t.deleteThread:void 0,onToggleStar:o?t.toggleStar:void 0,isStarred:t.isStarred,moveContext:o&&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(A,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,authenticity:e.authenticity,composeRequest:t.composeRequest,onComposeClose:t.clearComposeRequest}):a.jsx(se,{})})]})}function ke(){const{selectedThread:e,handleDeselectIfRemoved:t}=F(),{onToggleIntelligence:s}=j();return a.jsx(E,{onClose:s,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function Ne(){const{selectedThread:e,onCloseThread:t,onSelectMessage:s,nextMessageId:n,previousMessageId:l,handleDeselectIfRemoved:o}=F(),{intelligenceOpen:c,onToggleIntelligence:g}=j();return e?a.jsxs(a.Fragment,{children:[a.jsx(A,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,authenticity:e.authenticity,onBack:t,onOpenIntelligence:g,onSwipeNext:n?()=>s(n):void 0,onSwipePrevious:l?()=>s(l):void 0,mobileIntelligenceOpen:c}),a.jsx(Ie,{isOpen:c,onClose:g,ariaLabel:"Message details",side:"right",children:a.jsx(E,{onClose:g,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,hideCloseButton:!0,onAfterOptimisticRemove:o})})]}):a.jsx("div",{className:"h-full",children:a.jsx(H,{})})}const He=Object.assign(Me,{List:H,Reading:Le,Intelligence:ke,Phone:Ne});export{He as F};
|