Inbox-BaUBfWPm.js 25 KB

1
  1. import{a as e,n as t,r as n}from"./react-dom-stZKkA6x.js";import{a as r,c as i,d as a,r as o,u as s}from"./theme-DjPzgo6g.js";import{G as c,i as l,kt as u,n as d,st as ee,t as f}from"./jsx-runtime-dm82oUI8.js";import{a as te,i as p,o as m,t as ne}from"./grid-BmaFEMOO.js";import{n as re,t as ie}from"./table-CSW7F8Qw.js";import{t as h}from"./badge-CT2dDAGA.js";import{a as ae,n as g,r as oe,t as se}from"./StatusPill-IFsKXy8H.js";import{t as ce}from"./input-number-5vwSxUlw.js";import{t as _}from"./descriptions-vs1os_w7.js";import{t as v}from"./form-CvEcrSb3.js";import{t as y}from"./input-0_Xo22Fl.js";import{t as b}from"./list-HagL8Wla.js";import{t as le}from"./modal-B8KcNGBa.js";import{t as x}from"./CopyOutlined-DMc5GYOD.js";import{t as ue}from"./DeleteOutlined-B1WEjJYP.js";import{t as de}from"./PlusOutlined-DWXMp6Ds.js";import{t as fe}from"./ReloadOutlined-C3S2BDne.js";import{t as pe}from"./SearchOutlined-C_VWNehW.js";import{_ as me,a as S,b as he,f as ge,h as _e,i as ve,m as ye,n as be,p as xe,r as C,s as w,t as Se}from"./index-BCIgegZI.js";import{t as T}from"./EmptyState-rI31ioMm.js";import{t as E}from"./CodeBlock--Yutv0IZ.js";import{n as D,t as Ce}from"./navigation-state-ixI_efPF.js";var O=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v-63H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v752zM320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 160h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z`}}]},name:`container`,theme:`outlined`}})),k=e(t()),we=e(O());function A(){return A=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},A.apply(this,arguments)}var Te=k.forwardRef((e,t)=>k.createElement(s,A({},e,{ref:t,icon:we.default}))),Ee=e(n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z`}}]},name:`file-text`,theme:`outlined`}}))());function j(){return j=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},j.apply(this,arguments)}var De=k.forwardRef((e,t)=>k.createElement(s,j({},e,{ref:t,icon:Ee.default}))),M=e(n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z`}}]},name:`folder`,theme:`outlined`}}))());function N(){return N=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},N.apply(this,arguments)}var Oe=k.forwardRef((e,t)=>k.createElement(s,N({},e,{ref:t,icon:M.default}))),P=f(),F=[`INBOX`,`Sent`,`Drafts`,`Trash`,`Junk`,`Archive`];function I(){let{message:e}=a.useApp(),t=ne.useBreakpoint(),n=Se(`(min-width: 1024px)`),{locale:s,t:f}=r(),{config:h}=be(),_=ge(),x=xe(),ue=ye(),[S,C]=_e(),[w]=v.useForm(),[E]=v.useForm(),[O,we]=(0,k.useState)([]),[A,Te]=(0,k.useState)([]),[Ee,j]=(0,k.useState)(R()),[De,M]=(0,k.useState)([]),[N,Oe]=(0,k.useState)(0),[F,I]=(0,k.useState)(null),[L,Fe]=(0,k.useState)(!0),[Le,z]=(0,k.useState)(!1),[B,Be]=(0,k.useState)(!1),[Ve,He]=(0,k.useState)(``),[Ue,We]=(0,k.useState)(``),[Ge,V]=(0,k.useState)(``),[Ke,H]=(0,k.useState)(``),[qe,Je]=(0,k.useState)(S.get(`q`)||``),[Ye,U]=(0,k.useState)(!1),[Xe,W]=(0,k.useState)(null),[G,Ze]=(0,k.useState)(null),Qe=(0,k.useRef)(null),K=S.get(`workspace`)===`routing`?`routing`:`messages`,q=Number(S.get(`mailboxId`)||0)||null,J=S.get(`folder`)||`INBOX`,Y=S.get(`read`)||`all`,$e=S.get(`q`)||``,et=Math.max(1,Number(S.get(`page`)||1)||1),X=Number(ue.messageId||0)||null,tt=Me(S.get(`tab`)),nt=A.find(e=>e.id===q)||null,Z=(0,k.useCallback)(async()=>{Fe(!0),He(``);try{let[e,t]=await Promise.all([o.domains(),o.inboundMailboxes()]);we(e.domains||[]),Te(t.mailboxes||[])}catch(e){He(e instanceof Error?e.message:f(`common.error`))}finally{Fe(!1)}},[f]);(0,k.useEffect)(()=>{Z()},[Z]),(0,k.useEffect)(()=>{if(!A.length||X&&(!S.has(`mailboxId`)||!S.has(`folder`))||q&&A.some(e=>e.id===q))return;let e=new URLSearchParams(S);e.set(`mailboxId`,String(A[0].id)),e.set(`folder`,`INBOX`),e.set(`page`,`1`),C(e,{replace:!0})},[A,X,S,q,C]);let Q=(0,k.useCallback)(async()=>{if(!q){j(R());return}try{let e=await o.inboundFolders(q);j(e.folders?.length?e.folders:R(nt||void 0))}catch{j(R(nt||void 0))}},[nt,q]);(0,k.useEffect)(()=>{Q()},[Q]);let $=(0,k.useCallback)(async()=>{if(!q||K!==`messages`){M([]),Oe(0);return}z(!0),We(``);try{let e=await o.inboundMessages({mailboxId:q,folder:J,page:et,pageSize:25,q:$e||void 0,read:Y===`read`?!0:Y===`unread`?!1:void 0});M(e.messages||[]),Oe(e.total??e.messages?.length??0)}catch(e){We(e instanceof Error?e.message:f(`common.error`))}finally{z(!1)}},[J,et,$e,Y,q,f,K]);(0,k.useEffect)(()=>{$()},[$]),(0,k.useEffect)(()=>{if(!X){I(null),V(``);return}let e=!0;return Be(!0),V(``),o.inboundMessage(X).then(async t=>{if(!e)return;let n=t.message;if(!n){V(f(`inbox.messageNotFound`));return}if(I(n),!n.read){if(await o.markInboundMessageRead(n.id,!0),!e)return;I({...n,read:!0}),M(e=>e.map(e=>e.id===n.id?{...e,read:!0}:e)),Q()}}).catch(t=>{e&&V(t instanceof Error?t.message:f(`inbox.detailLoadFailed`))}).finally(()=>{e&&Be(!1)}),()=>{e=!1}},[Q,X,f]),(0,k.useEffect)(()=>{if(!X||F?.id!==X||S.has(`mailboxId`)&&S.has(`folder`))return;let e=new URLSearchParams(S);e.set(`mailboxId`,String(F.mailboxId)),e.set(`folder`,F.folder||`INBOX`),C(e,{replace:!0})},[X,S,F,C]),(0,k.useEffect)(()=>{let e=Qe.current;!e||D(_.state)?.origin===`direct`||(Qe.current=null,x(e,{replace:!0}))},[_.key,_.state,x]);function rt(e){let t=new URLSearchParams(S);Object.entries(e).forEach(([e,n])=>{n===null||n===``?t.delete(e):t.set(e,String(n))}),C(t)}function it(e){let t=new URLSearchParams(S);e===`routing`?t.set(`workspace`,`routing`):t.delete(`workspace`);let n=t.toString();x(`/inbox${n?`?${n}`:``}`)}function at(e){let t=new URLSearchParams(S);t.set(`mailboxId`,String(e)),t.set(`folder`,`INBOX`),t.set(`page`,`1`);let n=t.toString();x(`/inbox${n?`?${n}`:``}`)}function ot(e){let t=new URLSearchParams(S);t.set(`folder`,e),t.set(`page`,`1`);let n=t.toString();x(`/inbox${n?`?${n}`:``}`)}function st(e){I(e);let t=S.toString(),n=`/inbox/messages/${e.id}${t?`?${t}`:``}`,r=D(_.state);if(r){x(n,{state:Ce(r.listPath,r.depth+1,r.origin)});return}if(X){x(n,{replace:!0});return}x(n,{state:Ce(`${_.pathname}${_.search}`,1)})}function ct(){let e=D(_.state);if(e?.origin===`list`){x(-e.depth);return}let t=F?.id===X?F:null,n=Ne(S,t);if(e?.origin===`direct`){Qe.current=n,x(-e.depth);return}x(n,{replace:!0})}function lt(e){let t=new URLSearchParams(S);e===`text`?t.delete(`tab`):t.set(`tab`,e);let n=D(_.state),r=F?.id===X?F:null,i=t.toString();x({pathname:_.pathname,search:i?`?${i}`:``},{state:Ce(n?.listPath||Ne(S,r),(n?.depth||0)+1,n?.origin||`direct`)})}async function ut(t){t&&(await navigator.clipboard.writeText(t),e.success(f(`common.copied`)))}function dt(){w.resetFields(),w.setFieldsValue({domain:O[0]?.domain,password:ze(),quotaMb:1024,keepForwarded:!0}),U(!0)}async function ft(){let t=await w.validateFields();H(`mailbox:create`);try{let n=await o.createInboundMailbox({address:`${t.localPart}@${t.domain}`,displayName:t.displayName,password:t.password,aliases:t.aliases,forwardTo:t.forwardTo,keepForwarded:t.keepForwarded,quotaMb:t.quotaMb});e.success(f(`actions.inboundMailboxCreated`)),U(!1),w.resetFields(),W(n.clientConfig||Re(n.mailbox,h,t.password)),await Z()}catch(t){e.error(t instanceof Error?t.message:f(`common.error`))}finally{H(``)}}function pt(e){Ze(e),E.setFieldsValue({catchAllAddress:e.catchAllAddress||``})}async function mt(){if(!G)return;let t=await E.validateFields();H(`catch-all:${G.id}`);try{let n=await o.patchDomain(G.id,{catchAllAddress:String(t.catchAllAddress||``).trim()});we(e=>e.map(e=>e.id===n.domain.id?n.domain:e)),Ze(null),e.success(f(`actions.domainSaved`))}catch(t){e.error(t instanceof Error?t.message:f(`common.error`))}finally{H(``)}}let ht=[{title:f(`inbox.mailboxAddress`),dataIndex:`address`,render:(e,t)=>(0,P.jsxs)(l,{direction:`vertical`,size:0,children:[(0,P.jsx)(d.Text,{strong:!0,children:e}),t.displayName?(0,P.jsx)(d.Text,{type:`secondary`,children:t.displayName}):null]})},{title:f(`common.status`),dataIndex:`status`,width:120,render:e=>(0,P.jsx)(se,{tone:e===`active`?`success`:`warning`,children:e})},{title:f(`inbox.forwardTo`),dataIndex:`forwardTo`,render:(e,t)=>e?.length?(0,P.jsxs)(l,{direction:`vertical`,size:2,children:[(0,P.jsx)(d.Text,{children:e.join(`, `)}),(0,P.jsx)(me,{children:t.keepForwarded?f(`inbox.keepForwarded`):f(`inbox.forwardOnly`)})]}):`—`},{title:f(`inbox.unread`),dataIndex:`unreadCount`,width:90},{title:f(`inbox.messageCount`),dataIndex:`messageCount`,width:100},{title:f(`common.actions`),width:230,render:(e,t)=>(0,P.jsxs)(l,{wrap:!0,children:[(0,P.jsx)(u,{icon:(0,P.jsx)(ve,{}),onClick:()=>W(Re(t,h)),children:f(`inbox.clientConfig`)}),(0,P.jsx)(u,{icon:(0,P.jsx)(i,{}),onClick:()=>x(`/integrations/webhooks?mailboxId=${t.id}`),children:f(`inbox.mailboxWebhooks`)})]})}],gt=[{title:f(`domains.domain`),dataIndex:`domain`,render:e=>(0,P.jsx)(d.Text,{strong:!0,children:e})},{title:f(`inbox.catchAllAddress`),dataIndex:`catchAllAddress`,render:e=>e?(0,P.jsx)(me,{color:e===`/dev/null`?`default`:`blue`,children:e}):(0,P.jsx)(me,{children:f(`inbox.catchAllDisabled`)})},{title:f(`common.actions`),width:130,render:(e,t)=>(0,P.jsx)(u,{icon:(0,P.jsx)(ve,{}),onClick:()=>pt(t),children:f(`common.edit`)})}];return L?(0,P.jsx)(g,{children:(0,P.jsx)(ee,{active:!0,paragraph:{rows:12}})}):(0,P.jsxs)(l,{direction:`vertical`,size:20,className:`full-width`,children:[(0,P.jsx)(oe,{title:f(`inbox.title`),subtitle:f(`inbox.subtitle`),extra:K===`routing`?(0,P.jsx)(u,{type:`primary`,icon:(0,P.jsx)(de,{}),disabled:!O.length,onClick:dt,style:{minHeight:44},children:f(`inbox.createMailbox`)}):null}),Ve?(0,P.jsx)(m,{type:`error`,showIcon:!0,message:Ve,action:(0,P.jsx)(u,{icon:(0,P.jsx)(fe,{}),onClick:()=>void Z(),children:f(`common.refresh`)})}):null,h?.submission?.inboundEnabled===!1?(0,P.jsx)(m,{type:`warning`,showIcon:!0,message:f(`inbox.inboundDisabled`)}):null,(0,P.jsx)(te,{activeKey:K,onChange:it,items:[{key:`messages`,label:(0,P.jsxs)(l,{children:[(0,P.jsx)(i,{}),s.startsWith(`en`)?`Mail`:`邮件`]})},{key:`routing`,label:(0,P.jsxs)(l,{children:[(0,P.jsx)(ve,{}),s.startsWith(`en`)?`Mailboxes & routing`:`邮箱与路由`]})}]}),K===`messages`?A.length?(0,P.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:n?`220px minmax(320px, 380px) minmax(0, 1fr)`:t.md?`220px minmax(0, 1fr)`:`minmax(0, 1fr)`,gap:16,minWidth:0},children:[t.md?(0,P.jsx)(ke,{mailboxes:A,selectedMailboxId:q,folders:Ee,activeFolder:J,onMailbox:at,onFolder:ot,locale:s}):null,(0,P.jsxs)(p,{styles:{body:{padding:0,minWidth:0}},children:[(0,P.jsxs)(`div`,{style:{padding:12,borderBottom:`1px solid #EAECF0`},children:[t.md?null:(0,P.jsxs)(l,{direction:`vertical`,size:8,className:`full-width`,style:{marginBottom:8},children:[(0,P.jsx)(c,{value:q||void 0,onChange:at,options:A.map(e=>({value:e.id,label:e.address})),className:`full-width`,"aria-label":f(`inbox.mailboxFilter`)}),(0,P.jsx)(c,{value:J,onChange:ot,options:Ee.map(e=>({value:e.name,label:`${Ie(e.name,s)} (${e.unreadCount})`})),className:`full-width`,"aria-label":s.startsWith(`en`)?`Folder`:`文件夹`})]}),(0,P.jsxs)(l.Compact,{block:!0,children:[(0,P.jsx)(y,{value:qe,allowClear:!0,prefix:(0,P.jsx)(pe,{}),placeholder:f(`inbox.searchPlaceholder`),onChange:e=>Je(e.target.value),onPressEnter:()=>rt({q:qe.trim(),page:1})}),(0,P.jsx)(u,{"aria-label":f(`common.refresh`),icon:(0,P.jsx)(fe,{}),loading:Le,onClick:()=>void $()})]}),(0,P.jsx)(c,{value:Y,onChange:e=>rt({read:e===`all`?null:e,page:1}),style:{width:`100%`,marginTop:8},"aria-label":s.startsWith(`en`)?`Read state`:`阅读状态`,options:[{value:`all`,label:s.startsWith(`en`)?`All mail`:`全部邮件`},{value:`unread`,label:f(`inbox.unread`)},{value:`read`,label:f(`inbox.read`)}]})]}),Ue?(0,P.jsx)(m,{type:`error`,showIcon:!0,message:Ue,action:(0,P.jsx)(u,{onClick:()=>void $(),children:f(`common.refresh`)})}):null,(0,P.jsx)(Ae,{items:De,loading:Le,activeId:X,onOpen:st,locale:s,t:f}),N>25?(0,P.jsx)(`div`,{style:{padding:12,display:`flex`,justifyContent:`center`},children:(0,P.jsx)(ae,{size:`small`,current:et,pageSize:25,total:N,showSizeChanger:!1,onChange:e=>rt({page:e})})}):null]}),n?(0,P.jsx)(p,{styles:{body:{padding:20,minWidth:0}},children:(0,P.jsx)(je,{message:F,loading:B,error:Ge,activeTab:tt,onTabChange:lt,onCopy:ut,t:f})}):null]}):(0,P.jsx)(T,{description:s.startsWith(`en`)?`No receiving mailbox has been created yet.`:`尚未创建收信邮箱。`,action:(0,P.jsx)(u,{icon:(0,P.jsx)(de,{}),disabled:!O.length,onClick:()=>{it(`routing`),dt()},children:f(`inbox.createMailbox`)})}):(0,P.jsxs)(l,{direction:`vertical`,size:20,className:`full-width`,children:[(0,P.jsx)(g,{title:f(`inbox.mailboxes`),extra:(0,P.jsx)(se,{tone:`neutral`,children:A.length}),children:A.length?t.md?(0,P.jsx)(ie,{rowKey:`id`,columns:ht,dataSource:A,scroll:{x:940}}):(0,P.jsx)(b,{dataSource:A,renderItem:e=>(0,P.jsx)(b.Item,{children:(0,P.jsx)(p,{size:`small`,className:`full-width`,title:e.address,children:(0,P.jsxs)(l,{direction:`vertical`,className:`full-width`,children:[(0,P.jsxs)(d.Text,{type:`secondary`,children:[e.messageCount,` `,f(`inbox.messageCount`),` · `,e.unreadCount,` `,f(`inbox.unread`)]}),(0,P.jsxs)(l,{wrap:!0,children:[(0,P.jsx)(u,{onClick:()=>W(Re(e,h)),children:f(`inbox.clientConfig`)}),(0,P.jsx)(u,{onClick:()=>x(`/integrations/webhooks?mailboxId=${e.id}`),children:f(`inbox.mailboxWebhooks`)})]})]})})})}):(0,P.jsx)(T,{description:f(`inbox.noDomain`),action:(0,P.jsx)(u,{icon:(0,P.jsx)(de,{}),disabled:!O.length,onClick:dt,children:f(`inbox.createMailbox`)})})}),(0,P.jsx)(g,{title:f(`inbox.domainRoutes`),extra:(0,P.jsx)(se,{tone:`neutral`,children:O.length}),children:O.length?t.md?(0,P.jsx)(ie,{rowKey:`id`,columns:gt,dataSource:O}):(0,P.jsx)(b,{dataSource:O,renderItem:e=>(0,P.jsx)(b.Item,{actions:[(0,P.jsx)(u,{onClick:()=>pt(e),children:f(`common.edit`)},`edit`)],children:(0,P.jsx)(b.Item.Meta,{title:e.domain,description:e.catchAllAddress||f(`inbox.catchAllDisabled`)})})}):(0,P.jsx)(T,{description:f(`inbox.noDomain`),action:(0,P.jsx)(u,{onClick:()=>x(`/domains?create=1`),children:f(`common.addDomain`)})})})]}),n?null:(0,P.jsx)(he,{title:f(`inbox.messageDetail`),width:t.md?680:`100%`,open:!!X,onClose:ct,children:(0,P.jsx)(je,{message:F,loading:B,error:Ge,activeTab:tt,onTabChange:lt,onCopy:ut,t:f})}),(0,P.jsx)(he,{title:f(`inbox.createMailbox`),width:560,open:Ye,onClose:()=>U(!1),destroyOnHidden:!0,footer:(0,P.jsxs)(l,{style:{display:`flex`,justifyContent:`flex-end`},children:[(0,P.jsx)(u,{onClick:()=>U(!1),children:f(`common.cancel`)}),(0,P.jsx)(u,{type:`primary`,loading:Ke===`mailbox:create`,onClick:()=>void ft(),children:f(`inbox.createMailbox`)})]}),children:O.length?(0,P.jsxs)(v,{form:w,layout:`vertical`,children:[(0,P.jsxs)(l.Compact,{block:!0,children:[(0,P.jsx)(v.Item,{name:`localPart`,label:f(`inbox.localPart`),rules:[{required:!0,message:f(`inbox.localPartRequired`)},{pattern:/^[^@\s]+$/,message:f(`inbox.localPartInvalid`)}],style:{flex:1},children:(0,P.jsx)(y,{autoComplete:`off`})}),(0,P.jsx)(v.Item,{name:`domain`,label:f(`domains.domain`),rules:[{required:!0,message:f(`inbox.domainRequired`)}],style:{minWidth:220},children:(0,P.jsx)(c,{options:O.map(e=>({value:e.domain,label:`@${e.domain}`}))})})]}),(0,P.jsx)(v.Item,{name:`displayName`,label:f(`inbox.displayName`),children:(0,P.jsx)(y,{})}),(0,P.jsx)(v.Item,{name:`password`,label:f(`inbox.password`),rules:[{required:!0,message:f(`inbox.passwordRequired`)},{min:8,message:f(`inbox.passwordMin`)}],children:(0,P.jsx)(y.Password,{autoComplete:`new-password`})}),(0,P.jsx)(u,{onClick:()=>w.setFieldValue(`password`,ze()),children:f(`inbox.generatePassword`)}),(0,P.jsx)(v.Item,{name:`quotaMb`,label:`${f(`inbox.quotaMb`)} (MB)`,style:{marginTop:20},children:(0,P.jsx)(ce,{min:1,className:`full-width`})}),(0,P.jsx)(v.Item,{name:`aliases`,label:f(`inbox.aliases`),extra:f(`inbox.aliasesExtra`),children:(0,P.jsx)(y.TextArea,{rows:3})}),(0,P.jsx)(v.Item,{name:`forwardTo`,label:f(`inbox.forwardTo`),extra:f(`inbox.forwardToExtra`),children:(0,P.jsx)(y.TextArea,{rows:3})}),(0,P.jsx)(v.Item,{name:`keepForwarded`,valuePropName:`checked`,children:(0,P.jsx)(re,{children:f(`inbox.keepForwarded`)})})]}):(0,P.jsx)(m,{type:`warning`,showIcon:!0,message:f(`inbox.noDomain`)})}),(0,P.jsx)(le,{title:f(`inbox.catchAllTitle`),open:!!G,confirmLoading:Ke.startsWith(`catch-all:`),onCancel:()=>Ze(null),onOk:()=>void mt(),children:(0,P.jsx)(v,{form:E,layout:`vertical`,children:(0,P.jsx)(v.Item,{name:`catchAllAddress`,label:f(`inbox.catchAllAddress`),extra:f(`inbox.catchAllExtra`),children:(0,P.jsx)(y,{placeholder:`catchall@example.com / /dev/null`})})})}),(0,P.jsx)(le,{title:f(`inbox.clientConfig`),open:!!Xe,width:720,footer:(0,P.jsx)(u,{type:`primary`,onClick:()=>W(null),children:f(`common.confirm`)}),onCancel:()=>W(null),children:Xe?(0,P.jsx)(Pe,{config:Xe,onCopy:ut,t:f}):null})]})}function ke({mailboxes:e,selectedMailboxId:t,folders:n,activeFolder:r,onMailbox:i,onFolder:a,locale:o}){return(0,P.jsxs)(p,{styles:{body:{padding:8}},children:[(0,P.jsx)(c,{value:t||void 0,onChange:i,options:e.map(e=>({value:e.id,label:e.address})),className:`full-width`,style:{marginBottom:12}}),(0,P.jsx)(l,{direction:`vertical`,size:2,className:`full-width`,children:n.map(e=>(0,P.jsxs)(u,{type:r===e.name?`primary`:`text`,icon:Le(e.name),onClick:()=>a(e.name),style:{width:`100%`,minHeight:44,display:`flex`,alignItems:`center`,justifyContent:`flex-start`},children:[(0,P.jsx)(`span`,{style:{flex:1,textAlign:`left`},children:Ie(e.name,o)}),e.unreadCount?(0,P.jsx)(h,{count:e.unreadCount,size:`small`}):(0,P.jsx)(d.Text,{type:`secondary`,children:e.messageCount})]},e.name))})]})}function Ae({items:e,loading:t,activeId:n,onOpen:r,locale:i,t:a}){return t?(0,P.jsx)(`div`,{style:{padding:16},children:(0,P.jsx)(ee,{active:!0,paragraph:{rows:8}})}):e.length?(0,P.jsx)(b,{dataSource:e,split:!0,renderItem:e=>(0,P.jsx)(b.Item,{style:{padding:0},children:(0,P.jsx)(`button`,{type:`button`,"aria-label":`${e.subject||a(`inbox.noSubject`)} · ${e.sender}`,onClick:()=>r(e),style:{width:`100%`,minHeight:88,padding:`12px 16px`,border:0,textAlign:`left`,background:n===e.id?`#EEF2FF`:e.read?`#FFFFFF`:`#F8FAFF`,cursor:`pointer`},children:(0,P.jsxs)(l,{direction:`vertical`,size:4,style:{width:`100%`},children:[(0,P.jsxs)(l,{style:{width:`100%`,justifyContent:`space-between`},children:[(0,P.jsx)(d.Text,{strong:!e.read,ellipsis:!0,style:{maxWidth:`65%`},children:e.sender||`—`}),(0,P.jsx)(d.Text,{type:`secondary`,style:{fontSize:12},children:B(e.receivedAt)})]}),(0,P.jsx)(d.Text,{strong:!e.read,ellipsis:!0,children:e.subject||a(`inbox.noSubject`)}),(0,P.jsx)(d.Text,{type:`secondary`,ellipsis:!0,children:e.preview||`—`})]})})})}):(0,P.jsx)(T,{description:i.startsWith(`en`)?`No messages match this folder and filter.`:`当前文件夹和筛选条件下没有邮件。`})}function je({message:e,loading:t,error:n,activeTab:r,onTabChange:i,onCopy:a,t:o}){return t?(0,P.jsx)(ee,{active:!0,paragraph:{rows:12}}):n?(0,P.jsx)(m,{type:`error`,showIcon:!0,message:n}):e?(0,P.jsxs)(l,{direction:`vertical`,size:20,className:`full-width`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(d.Title,{level:4,style:{marginBottom:4},children:e.subject||o(`inbox.noSubject`)}),(0,P.jsx)(d.Text,{type:`secondary`,children:Be(e.receivedAt)})]}),(0,P.jsxs)(_,{column:1,size:`small`,children:[(0,P.jsx)(_.Item,{label:o(`inbox.sender`),children:e.sender||`—`}),(0,P.jsx)(_.Item,{label:o(`inbox.recipients`),children:e.recipients.join(`, `)||`—`}),(0,P.jsx)(_.Item,{label:o(`logs.messageId`),children:(0,P.jsx)(d.Text,{code:!0,copyable:{onCopy:()=>a(e.messageId)},children:e.messageId||`—`})})]}),(0,P.jsx)(te,{activeKey:r,onChange:e=>i(Me(e)),items:[{key:`text`,label:o(`inbox.textBody`),children:e.textBody?(0,P.jsx)(`pre`,{className:`inbox-message-body`,children:e.textBody}):(0,P.jsx)(T,{description:o(`inbox.noTextBody`)})},{key:`html`,label:o(`inbox.htmlBody`),children:e.htmlBody?(0,P.jsx)(E,{value:e.htmlBody,onCopy:a}):(0,P.jsx)(T,{description:o(`inbox.noHtmlBody`)})},{key:`raw`,label:o(`inbox.rawMessage`),children:e.rawMessage?(0,P.jsx)(E,{value:e.rawMessage,onCopy:a}):(0,P.jsx)(T,{description:o(`inbox.noRawMessage`)})}]})]}):(0,P.jsx)(T,{description:o(`inbox.messageDetail`)})}function Me(e){return e===`html`||e===`raw`?e:`text`}function Ne(e,t){let n=new URLSearchParams(e);n.delete(`tab`),t&&(!n.has(`mailboxId`)||!n.has(`folder`))&&(n.set(`mailboxId`,String(t.mailboxId)),n.set(`folder`,t.folder||`INBOX`));let r=n.toString();return`/inbox${r?`?${r}`:``}`}function Pe({config:e,onCopy:t,t:n}){let r=[{key:`imap`,label:n(`inbox.incomingConfig`),value:e.incoming},...e.pop3?[{key:`pop3`,label:n(`inbox.pop3Config`),value:e.pop3}]:[],{key:`smtp`,label:n(`inbox.outgoingConfig`),value:e.outgoing}];return(0,P.jsxs)(l,{direction:`vertical`,size:16,className:`full-width`,children:[(0,P.jsx)(m,{type:`info`,showIcon:!0,message:n(`inbox.clientConfigHelpSummary`)}),(0,P.jsxs)(_,{bordered:!0,column:1,size:`small`,children:[(0,P.jsx)(_.Item,{label:n(`inbox.configUsername`),children:L(e.username,t)}),(0,P.jsx)(_.Item,{label:n(`inbox.configPassword`),children:e.password?L(e.password,t):(0,P.jsx)(d.Text,{type:`secondary`,children:n(`inbox.passwordNotShown`)})})]}),(0,P.jsx)(te,{items:r.map(e=>({key:e.key,label:e.label,children:(0,P.jsxs)(_,{bordered:!0,column:1,size:`small`,children:[(0,P.jsx)(_.Item,{label:n(`inbox.configHost`),children:L(e.value.host,t)}),(0,P.jsx)(_.Item,{label:n(`inbox.configPort`),children:L(e.value.port,t)}),(0,P.jsx)(_.Item,{label:n(`inbox.configSecurity`),children:e.value.security}),(0,P.jsx)(_.Item,{label:n(`inbox.configAuthMethod`),children:e.value.authMethod})]})}))})]})}function L(e,t){return(0,P.jsxs)(l,{children:[(0,P.jsx)(d.Text,{code:!0,children:e}),(0,P.jsx)(u,{"aria-label":`Copy`,icon:(0,P.jsx)(x,{}),onClick:()=>void t(String(e))})]})}function R(e){return F.map(t=>({name:t,specialUse:Fe(t),messageCount:t===`INBOX`&&e?.messageCount||0,unreadCount:t===`INBOX`&&e?.unreadCount||0}))}function Fe(e){return{INBOX:null,Sent:`\\Sent`,Drafts:`\\Drafts`,Trash:`\\Trash`,Junk:`\\Junk`,Archive:`\\Archive`}[e]??null}function Ie(e,t){return t.startsWith(`en`)?e:{INBOX:`收件箱`,Sent:`已发送`,Drafts:`草稿`,Trash:`已删除`,Junk:`垃圾邮件`,Archive:`归档`}[e]||e}function Le(e){return e===`INBOX`?(0,P.jsx)(w,{}):e===`Sent`?(0,P.jsx)(S,{}):e===`Drafts`?(0,P.jsx)(De,{}):e===`Trash`?(0,P.jsx)(ue,{}):e===`Junk`?(0,P.jsx)(C,{}):e===`Archive`?(0,P.jsx)(Te,{}):(0,P.jsx)(Oe,{})}function Re(e,t,n=``){let r=z(t?.submission?.ports||[],[587,465]),i=z(t?.mailAccess?.imap.ports||[],[993,143]),a=z(t?.mailAccess?.pop3.ports||[],[995,110]),o=t?.mailAccess?.host||t?.submission?.host||t?.mailHostname||e.domain;return{username:e.address,password:n,incoming:{protocol:`IMAP`,host:o,port:i?.port||143,security:i?.protocol||`IMAP + STARTTLS`,authMethod:`Normal password`,username:e.address,password:n},pop3:{protocol:`POP3`,host:o,port:a?.port||110,security:a?.protocol||`POP3 + STLS`,authMethod:`Normal password`,username:e.address,password:n},outgoing:{protocol:`SMTP`,host:t?.submission?.host||t?.mailHostname||e.domain,port:r?.port||587,security:r?.protocol||`SMTP + STARTTLS`,authMethod:`Normal password`,username:e.address,password:n}}}function z(e,t){for(let n of t){let t=e.find(e=>e.port===n);if(t)return t}return e[0]||null}function ze(){let e=new Uint8Array(14);return globalThis.crypto.getRandomValues(e),Array.from(e,e=>(e%36).toString(36)).join(``)}function B(e){let t=new Date(e),n=new Date;return t.toDateString()===n.toDateString()?t.toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}):t.toLocaleDateString()}function Be(e){return e?new Date(e).toLocaleString():`—`}export{I as default};