ghost 6.18.0 → 6.18.2
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/components/tryghost-i18n-6.18.2.tgz +0 -0
- package/components/{tryghost-parse-email-address-6.18.0.tgz → tryghost-parse-email-address-6.18.2.tgz} +0 -0
- package/core/built/admin/assets/{PolarAngleAxis-Dod0DwfL.js → PolarAngleAxis-DALH8FDm.js} +1 -1
- package/core/built/admin/assets/{_baseAssignValue-DnkbkowM.js → _baseAssignValue-D_UsvJRN.js} +1 -1
- package/core/built/admin/assets/{a-large-small-C5mgFBRg.js → a-large-small-DVyx4GMu.js} +1 -1
- package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +2 -2
- package/core/built/admin/assets/admin-x-settings/{code-editor-view-C9yQgDwn.mjs → code-editor-view-DBrulgE8.mjs} +12 -12
- package/core/built/admin/assets/admin-x-settings/{index-jzFpi950.mjs → index-CsGHbqSU.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-DGoxlHIt.mjs → index-Cypgljb3.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-Cb0MgPGv.mjs → index-DgGwb1L-.mjs} +1390 -1381
- package/core/built/admin/assets/admin-x-settings/{modals-CCI0FGRh.mjs → modals-rdo7i0D3.mjs} +11122 -10465
- package/core/built/admin/assets/{at-sign-Bz-SU-S_.js → at-sign-CGNkBrZS.js} +1 -1
- package/core/built/admin/assets/{audience-DmVdEmIe.js → audience-CJHVR7kD.js} +1 -1
- package/core/built/admin/assets/{avatar-flipboard-C7sxDVEM.js → avatar-flipboard-jqr9Aapd.js} +1 -1
- package/core/built/admin/assets/{bluesky-sharing-DJniSF6N.js → bluesky-sharing-C2749SVt.js} +1 -1
- package/core/built/admin/assets/{chart-mYz3IJwm.js → chart-BAQCVPCH.js} +1 -1
- package/core/built/admin/assets/{chunk.524.d2c4d1c78e72685d04c9.js → chunk.524.428356d01feabbc7b932.js} +7 -7
- package/core/built/admin/assets/{chunk.582.a3333324fa5a373a6148.js → chunk.582.b8b41ba720f49d724992.js} +9 -9
- package/core/built/admin/assets/{code-editor-view-BIQWFJ01.js → code-editor-view-YNhJ1w71.js} +1 -1
- package/core/built/admin/assets/{comments-B_-hdjc6.js → comments-CPd_iCc3.js} +1 -1
- package/core/built/admin/assets/{copy-Bpq3uhnh.js → copy-CNsHZEFR.js} +1 -1
- package/core/built/admin/assets/{data-list-BYNMbRIq.js → data-list-Dn5MkmyD.js} +1 -1
- package/core/built/admin/assets/{deleted-feed-item-B_AwUKZy.js → deleted-feed-item-Dmm_clMl.js} +1 -1
- package/core/built/admin/assets/{edit-profile-DZo2ZcOu.js → edit-profile-BLSdtROQ.js} +1 -1
- package/core/built/admin/assets/{empty-indicator-Bn5wG9-T.js → empty-indicator-C2Z0dddU.js} +1 -1
- package/core/built/admin/assets/{en-D4zIrMLN.js → en-DuTkaMAI.js} +1 -1
- package/core/built/admin/assets/{feed-Bgq4RarU.js → feed-B4Xp4C2J.js} +1 -1
- package/core/built/admin/assets/{filters-CpVwu1Gk.js → filters-gnOx5Z45.js} +1 -1
- package/core/built/admin/assets/{gh-chart-Br7NXn_b.js → gh-chart-B2aWYkGg.js} +1 -1
- package/core/built/admin/assets/{ghost-98a3c5fd6235ebd344594f491cb6d17b.js → ghost-29f8f3c80e41126ba5e3c52ad5727e8a.js} +176 -176
- package/core/built/admin/assets/ghost-transistor-BXCFhTPG.png +0 -0
- package/core/built/admin/assets/{growth-CiPDnWxJ.js → growth-BysawIWe.js} +1 -1
- package/core/built/admin/assets/{hash-Bc1e38oH.js → hash-j3sh-UI3.js} +1 -1
- package/core/built/admin/assets/{inbox-BcZNBNhk.js → inbox-1cUdr8Mm.js} +1 -1
- package/core/built/admin/assets/index-B2yksBz4.js +13 -0
- package/core/built/admin/assets/{index-CMTzNTew.js → index-B8G0f0hb.js} +3 -3
- package/core/built/admin/assets/{index-DU3bv9jz.js → index-BVoBTlp_.js} +1 -1
- package/core/built/admin/assets/{index-ETsoQLbU.js → index-BgrwCpgw.js} +1 -1
- package/core/built/admin/assets/{index-Bm5ZeLtt.js → index-BhY_SbGB.js} +1 -1
- package/core/built/admin/assets/index-CkAUXgAi.js +1 -0
- package/core/built/admin/assets/index-Cl_EPbQ2.js +1 -0
- package/core/built/admin/assets/{index-B_7QsC5T.js → index-D8CXbJm4.js} +1 -1
- package/core/built/admin/assets/index-DGBK5k9H.js +1 -0
- package/core/built/admin/assets/{index-D212VvOz.js → index-DKAlEWM4.js} +1 -1
- package/core/built/admin/assets/index-D_sGUCda.css +1 -0
- package/core/built/admin/assets/{index-BFEx_ouC.js → index-DarAAzVH.js} +1 -1
- package/core/built/admin/assets/{index-Brg4tecQ.js → index-Dz8eTtOq.js} +1 -1
- package/core/built/admin/assets/{index-Cn32t_gv.js → index-I9n711UW.js} +1 -1
- package/core/built/admin/assets/{index-CsidX7Si.js → index-WjY3mGep.js} +2 -2
- package/core/built/admin/assets/{index-Dv13wKfX.js → index-mhojl7aD.js} +1 -1
- package/core/built/admin/assets/{koenig-lexical-DZUWzN0P.js → koenig-lexical-coiS9dIC.js} +1 -1
- package/core/built/admin/assets/{kpi-card-DENsK2xK.js → kpi-card-BEFHo2gr.js} +1 -1
- package/core/built/admin/assets/{kpis-CDrs2iS1.js → kpis-D-gz-lUk.js} +1 -1
- package/core/built/admin/assets/{label-BznQtEEo.js → label-BvlHzzcJ.js} +1 -1
- package/core/built/admin/assets/{links-lpAC3T1p.js → links-tdJvBrsT.js} +1 -1
- package/core/built/admin/assets/list-filter-DPE4Xj2T.js +6 -0
- package/core/built/admin/assets/{lucide-react-CBigk-fq.js → lucide-react-ClQ3Iy7l.js} +1448 -1453
- package/core/built/admin/assets/{main-layout-_SYQRjIl.js → main-layout-DY96wK-_.js} +1 -1
- package/core/built/admin/assets/{message-square-text-cV8O_qKq.js → message-square-text-Dd1XS5-H.js} +1 -1
- package/core/built/admin/assets/{minus-NvnQTlW7.js → minus-CyEc3BE5.js} +1 -1
- package/core/built/admin/assets/modals-C06GcVIm.js +77 -0
- package/core/built/admin/assets/moderation-B0fdmlig.js +1 -0
- package/core/built/admin/assets/newsletter-Byg3ARa5.js +1 -0
- package/core/built/admin/assets/{newsletters-BexdXUhn.js → newsletters-DbH39vgA.js} +1 -1
- package/core/built/admin/assets/{note-DuaUGOeZ.js → note-Cwy-rIAF.js} +1 -1
- package/core/built/admin/assets/overview-CVMLGrVt.js +1 -0
- package/core/built/admin/assets/{pagemenu-CZyroidv.js → pagemenu-CkzsZrHC.js} +1 -1
- package/core/built/admin/assets/{post-analytics-DLK2SOSQ.js → post-analytics-aA-nG9Fq.js} +1 -1
- package/core/built/admin/assets/{post-analytics-context-CF7C67-0.js → post-analytics-context-BLkup0Xh.js} +1 -1
- package/core/built/admin/assets/{post-analytics-header-7GtJCx0W.js → post-analytics-header-D9srAPT5.js} +1 -1
- package/core/built/admin/assets/{post-share-modal-D8R7DUZP.js → post-share-modal-CkvJtrRw.js} +1 -1
- package/core/built/admin/assets/{posts-CL9UDYoW.js → posts-DDkuYoN7.js} +1 -1
- package/core/built/admin/assets/{repeat-DgH39UKE.js → repeat-B-SL0yPM.js} +1 -1
- package/core/built/admin/assets/{reply-DAaNxiy8.js → reply-BdCPoUQ9.js} +1 -1
- package/core/built/admin/assets/{select-Cor2wFXT.js → select-C7aNW8QS.js} +1 -1
- package/core/built/admin/assets/{settings-xRx917Gj.js → settings-Bzy1GNfD.js} +1 -1
- package/core/built/admin/assets/{settings-BeumESEN.js → settings-D-dhma2e.js} +23 -23
- package/core/built/admin/assets/{sort-button-BNW3i4Lb.js → sort-button-Dv8vjh13.js} +1 -1
- package/core/built/admin/assets/{source-icon-DvDuzw73.js → source-icon-DTz4isLK.js} +1 -1
- package/core/built/admin/assets/{sprout-C3cc0c-K.js → sprout-BwLQTzMf.js} +1 -1
- package/core/built/admin/assets/{square-tZp0_n7e.js → square-YF1YE9ex.js} +1 -1
- package/core/built/admin/assets/{stats-2Jelnn-Q.js → stats-C5ad0fgQ.js} +1 -1
- package/core/built/admin/assets/{stats-view-CESy8ELH.js → stats-view-BvkxPYNX.js} +1 -1
- package/core/built/admin/assets/{step-1-DrqdolAh.js → step-1-D7_s-D99.js} +1 -1
- package/core/built/admin/assets/{step-2-DmEpKck5.js → step-2-B94Yf7FF.js} +1 -1
- package/core/built/admin/assets/{step-3-Bus-0o0n.js → step-3-DswXYYf4.js} +1 -1
- package/core/built/admin/assets/{table-BQUcKHfm.js → table-D30IXfUP.js} +1 -1
- package/core/built/admin/assets/{tabs-BmdL0X4U.js → tabs-CjNdfW0y.js} +1 -1
- package/core/built/admin/assets/{tags-EchqlZUJ.js → tags-B0ux9_dT.js} +1 -1
- package/core/built/admin/assets/{tags-CLxXZlOO.js → tags-PGeGAafJ.js} +1 -1
- package/core/built/admin/assets/{tiers-nCGyTly9.js → tiers-BaXK0JoI.js} +1 -1
- package/core/built/admin/assets/{toggle-group-CM5uf7J1.js → toggle-group-DdY8HF3Y.js} +1 -1
- package/core/built/admin/assets/{topic-filter-LTRvZ8aU.js → topic-filter-Boh22uGD.js} +1 -1
- package/core/built/admin/assets/{trash-u5BxolyH.js → trash-D7ZWrnDq.js} +1 -1
- package/core/built/admin/assets/{url-helpers-D41fEt51.js → url-helpers-mt6MBIi0.js} +1 -1
- package/core/built/admin/assets/{use-growth-stats-BJ0O9ewi.js → use-growth-stats-Bg0nE0WG.js} +1 -1
- package/core/built/admin/assets/{use-infinite-virtual-scroll-APZWciOk.js → use-infinite-virtual-scroll-DoeI5IY-.js} +1 -1
- package/core/built/admin/assets/{use-simple-pagination-DVRHeaAR.js → use-simple-pagination-BJzBULR3.js} +1 -1
- package/core/built/admin/assets/{user-round-check-B6j98D6d.js → user-round-check-BLc3L-ei.js} +1 -1
- package/core/built/admin/assets/{wallet-cards-KmOh29LP.js → wallet-cards-xX4QZik7.js} +1 -1
- package/core/built/admin/assets/web-DQ2qBymm.js +1 -0
- package/core/built/admin/index.html +5 -5
- package/core/server/lib/image/cached-image-size-from-url.js +37 -25
- package/core/server/lib/lexical.js +1 -0
- package/core/server/lib/mobiledoc.js +1 -0
- package/core/server/services/email-service/email-renderer.js +6 -2
- package/core/server/services/email-service/email-service-wrapper.js +2 -2
- package/core/server/services/koenig/node-renderers/call-to-action-renderer.js +2 -2
- package/core/server/services/koenig/node-renderers/gallery-renderer.js +3 -3
- package/core/server/services/koenig/node-renderers/image-renderer.js +3 -3
- package/core/server/services/koenig/render-utils/is-content-image.js +18 -0
- package/core/server/services/koenig/render-utils/srcset-attribute.js +4 -4
- package/core/server/services/member-welcome-emails/service.js +77 -4
- package/core/server/services/members/members-api/controllers/router-controller.js +21 -36
- package/core/server/services/members/members-api/repositories/member-repository.js +8 -1
- package/core/server/services/offers/offer-bookshelf-repository.js +3 -3
- package/core/shared/config/defaults.json +1 -1
- package/core/shared/labs.js +2 -1
- package/package.json +5 -5
- package/components/tryghost-i18n-6.18.0.tgz +0 -0
- package/core/built/admin/assets/index-BBrewxpF.css +0 -1
- package/core/built/admin/assets/index-BpcL7RmI.js +0 -13
- package/core/built/admin/assets/index-CTfJflJ2.js +0 -1
- package/core/built/admin/assets/index-D67LJ_H4.js +0 -1
- package/core/built/admin/assets/index-ZYDRMgcT.js +0 -1
- package/core/built/admin/assets/modals-XRSkribf.js +0 -77
- package/core/built/admin/assets/moderation-BQp1GEWG.js +0 -1
- package/core/built/admin/assets/newsletter-foM6KNNV.js +0 -1
- package/core/built/admin/assets/overview-DgKBNqyc.js +0 -1
- package/core/built/admin/assets/web-Cclotbnz.js +0 -1
- package/core/server/services/koenig/render-utils/is-local-content-image.js +0 -9
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{G as T,I as F,J as _,K as E,r as d,M as V,N as H,b as R,j as e,L as W,O as $,Q as k,R as b,T as j,P as G,U as v,h as J,A as K,S as o,B as i,V as c}from"./index-CMTzNTew.js";import{T as O,a as Q,b as w,c as f}from"./tabs-BmdL0X4U.js";import"./index-D212VvOz.js";import"./lucide-react-CBigk-fq.js";import"./a-large-small-C5mgFBRg.js";import"./wallet-cards-KmOh29LP.js";import"./at-sign-Bz-SU-S_.js";import"./message-square-text-cV8O_qKq.js";import"./copy-Bpq3uhnh.js";import"./hash-Bc1e38oH.js";import"./inbox-BcZNBNhk.js";import"./minus-NvnQTlW7.js";import"./tags-CLxXZlOO.js";import"./square-tZp0_n7e.js";import"./user-round-check-B6j98D6d.js";import"./repeat-DgH39UKE.js";import"./reply-DAaNxiy8.js";import"./sprout-C3cc0c-K.js";import"./trash-u5BxolyH.js";const he=()=>{const{data:N,isLoading:l}=T("index"),{data:g,isLoading:n}=F("index"),m=l?Array(5).fill({apId:"",name:"",handle:"",avatarUrl:""}):N?.pages.flatMap(s=>s.accounts)??[],u=n?Array(5).fill({apId:"",name:""}):g?.pages.flatMap(s=>s.domains)??[],U=_("index"),I=E("index"),[M,x]=d.useState(new Set),B=V("index"),D=H("index"),[S,h]=d.useState(new Set),[p,r]=d.useState(null),y=R(),A=s=>{x(t=>{const a=new Set([...t]);return a.add(s.apId),a}),I.mutate(s),c.success("User unblocked")},L=s=>{x(t=>{const a=new Set([...t]);return a.delete(s.apId),a}),U.mutate(s),c.success("User blocked")},C=s=>{h(t=>{const a=new Set([...t]);return a.add(s.url),a}),D.mutate({url:s.url}),c.success("Domain unblocked")},P=s=>{h(t=>{const a=new Set([...t]);return a.delete(s.url),a}),B.mutate({url:s.url}),c.success("Domain blocked")};return e.jsx(W,{children:e.jsxs("div",{className:"mx-auto max-w-[620px] py-[min(4vh,48px)]",children:[e.jsx("div",{className:"flex items-center justify-between gap-8",children:e.jsx($,{children:"Moderation"})}),e.jsx("div",{className:"mt-6",children:e.jsxs(O,{defaultValue:"blocked_users",variant:"underline",children:[e.jsxs(Q,{children:[e.jsx(w,{value:"blocked_users",children:"Blocked users"}),e.jsx(w,{value:"blocked_domains",children:"Blocked domains"})]}),e.jsx(f,{className:"mt-2",value:"blocked_users",children:!l&&m.length===0?e.jsxs(k,{children:[e.jsx(b,{children:e.jsx(j,{})}),e.jsx("div",{className:"mt-2 flex max-w-[400px] flex-col items-center gap-1 text-center",children:e.jsx("p",{children:"When you block someone, they won't be able to follow you or interact with your content on the social web."})})]}):m.map((s,t)=>e.jsx(G,{actor:s,isCurrentUser:!0,children:e.jsx("div",{children:e.jsxs(v,{onClick:l?void 0:()=>J(s.handle,y),children:[e.jsx(K,{author:{icon:{url:s.avatarUrl},name:s.name,handle:s.handle}}),e.jsxs("div",{className:"flex min-w-0 flex-col",children:[e.jsx("span",{className:"block truncate font-semibold text-black dark:text-white",children:l?e.jsx(o,{className:"w-24"}):s.name}),e.jsx("span",{className:"block truncate text-sm text-gray-600",children:l?e.jsx(o,{className:"w-40"}):s.handle})]}),M.has(s.apId)?e.jsx(i,{className:"ml-auto min-w-[90px] text-red hover:!bg-red/5 hover:text-red-400",variant:"outline",onClick:a=>{a.stopPropagation(),L(s)},children:"Block"}):l?e.jsx("div",{className:"ml-auto w-16",children:e.jsx(o,{})}):e.jsx(i,{className:"ml-auto min-w-[90px]",variant:"destructive",onClick:a=>{a.stopPropagation(),A(s)},onMouseEnter:()=>r(s.apId),onMouseLeave:()=>r(null),children:p===s.apId?"Unblock":"Blocked"})]})})},s.apId?s.apId:`loading-${t}`))}),e.jsx(f,{className:"mt-[11px]",value:"blocked_domains",children:!n&&u.length===0?e.jsxs(k,{children:[e.jsx(b,{children:e.jsx(j,{})}),e.jsx("div",{className:"mt-2 flex max-w-[400px] flex-col items-center gap-1 text-center",children:e.jsx("p",{children:"When you block a domain, all users from that domain won't be able to follow you or interact with your content."})})]}):u.map((s,t)=>e.jsxs(v,{children:[e.jsx("div",{className:"flex min-w-0 flex-col",children:e.jsx("span",{className:"block truncate font-semibold text-black dark:text-white",children:n?e.jsx(o,{className:"w-48"}):new URL(s.url).hostname})}),S.has(s.url)?e.jsx(i,{className:"ml-auto min-w-[90px] text-red hover:!bg-red/5 hover:text-red-400",variant:"outline",onClick:()=>P(s),children:"Block"}):n?e.jsx("div",{className:"ml-auto w-16",children:e.jsx(o,{})}):e.jsx(i,{className:"ml-auto min-w-[90px]",variant:"destructive",onClick:()=>C(s),onMouseEnter:()=>r(s.url),onMouseLeave:()=>r(null),children:p===s.url?"Unblock":"Blocked"})]},s.url?s.url:`loading-${t}`))})]})})]})})};export{he as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ae as Re,r,u as Se,aP as re,j as e,ai as N,aS as ne,aR as K,bE as le,cv as ee,bv as _e,bx as Fe,cw as Te,cx as Ae,cy as $e,B as q,aU as ze,aQ as Ee,aj as E,c8 as Me,C as De}from"./index-CMTzNTew.js";import{C as Q,a as Y,b as J,f as X,c as _,g as ce}from"./pagemenu-CZyroidv.js";import{u as oe,S as de,a as me,b as pe,c as ue}from"./use-simple-pagination-DVRHeaAR.js";import{T as Ie,a as Ue,b as se}from"./tabs-BmdL0X4U.js";import{e as Be,f as Ve,g as Oe}from"./lucide-react-CBigk-fq.js";import{a as We,P as Ge}from"./wallet-cards-KmOh29LP.js";import{K as U,d as B,a as V,b as O,c as W}from"./kpi-card-DENsK2xK.js";import{P as He,a as Ke}from"./post-analytics-header-7GtJCx0W.js";import{D as qe,a as Qe,b as Ye,c as Je,d as Xe,e as Ze,f as es,g as ss}from"./data-list-BYNMbRIq.js";import{a as ts,u as as,p as is,g as G,N as H}from"./links-lpAC3T1p.js";import{u as rs}from"./post-analytics-context-CF7C67-0.js";import{h as ns}from"./post-helpers-gInwAwEv.js";import{f as ls,g as cs}from"./stats-2Jelnn-Q.js";import{g as te}from"./posts-CL9UDYoW.js";import"./index-D212VvOz.js";import"./a-large-small-C5mgFBRg.js";import"./at-sign-Bz-SU-S_.js";import"./message-square-text-cV8O_qKq.js";import"./copy-Bpq3uhnh.js";import"./hash-Bc1e38oH.js";import"./inbox-BcZNBNhk.js";import"./minus-NvnQTlW7.js";import"./tags-CLxXZlOO.js";import"./square-tZp0_n7e.js";import"./user-round-check-B6j98D6d.js";import"./repeat-DgH39UKE.js";import"./reply-DAaNxiy8.js";import"./sprout-C3cc0c-K.js";import"./trash-u5BxolyH.js";import"./post-share-modal-D8R7DUZP.js";import"./chart-mYz3IJwm.js";import"./_baseAssignValue-DnkbkowM.js";import"./PolarAngleAxis-Dod0DwfL.js";const os="FeedbackResponseType",ds=Re({dataType:os,path:s=>`/feedback/${s}/`}),ms=(s,a)=>{const{data:c,isLoading:o,error:x}=ds(s,{searchParams:{limit:"50",...a!==void 0?{score:a.toString()}:{}}});return{feedback:r.useMemo(()=>c?.feedback?c.feedback:[],[c]),isLoading:o,error:x}},ps=({feedbackStats:s})=>{const{postId:a}=Se(),c=re(),[o,x]=r.useState("positive"),n=9,f=o==="positive"?1:0,{feedback:F,isLoading:L}=ms(a||"",f),{totalPages:k,paginatedData:i,nextPage:v,previousPage:R,hasNextPage:C,hasPreviousPage:l}=oe({data:F,itemsPerPage:n}),g=L;return e.jsxs(Q,{children:[e.jsxs(Y,{className:"pb-5",children:[e.jsx(J,{children:"Feedback"}),e.jsx(X,{children:"What did your readers think?"})]}),s.totalFeedback>0?e.jsxs(_,{className:"pb-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx(Ie,{className:"pb-3",defaultValue:"positive",value:o,variant:"button",onValueChange:d=>x(d),children:e.jsxs(Ue,{className:"gap-1",children:[e.jsx(se,{className:"h-7",value:"positive",children:e.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[e.jsx(Be,{size:14,strokeWidth:1.25}),e.jsx("span",{className:"hidden font-medium sm:!visible sm:!inline",children:"More like this"}),e.jsx("span",{className:"font-semibold tracking-tight",children:N(s.positiveFeedback/s.totalFeedback)})]})}),e.jsx(se,{className:"h-7",value:"negative",children:e.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[e.jsx(Ve,{size:14,strokeWidth:1.25}),e.jsx("span",{className:"hidden font-medium sm:!visible sm:!inline",children:"Less like this"}),e.jsx("span",{className:"font-semibold tracking-tight",children:N(s.negativeFeedback/s.totalFeedback)})]})})]})}),e.jsx(ne,{className:"mb-3 mr-2 lg:hidden xl:!visible xl:!block",children:"Date"})]}),e.jsx(K,{}),g?e.jsx(le,{className:"mt-3",lines:3}):i&&i.length>0?e.jsx("div",{className:"flex w-full flex-col py-3",children:i.map(d=>e.jsxs("div",{className:"flex h-10 w-full items-center justify-between gap-3 rounded-sm border-none px-2 text-sm hover:cursor-pointer hover:bg-accent",onClick:()=>{c(`/members/${d.member.id}`,{crossApp:!0})},children:[e.jsxs("div",{className:"flex items-center gap-2 font-medium",children:[e.jsxs(_e,{className:"size-7",children:[d.member?.avatar_image&&e.jsx("img",{className:"absolute aspect-square size-full",src:d.member?.avatar_image}),e.jsx(Fe,{className:"text-white",style:{backgroundColor:`${Ae(ee(d.member),75,55)}`},children:Te(d.member)})]}),ee(d.member)]}),e.jsx("div",{className:"whitespace-nowrap text-muted-foreground",children:$e(d.created_at)})]},d.id))}):e.jsx("div",{className:"flex h-full items-center justify-center py-8 text-center text-sm text-muted-foreground",children:e.jsxs("div",{children:["No ",o==="positive"?"positive":"negative"," feedback yet"]})})]}):e.jsxs(_,{className:"flex grow flex-col items-center justify-center text-center text-sm text-muted-foreground",children:[e.jsx("div",{children:"No members have given feedback yet"}),e.jsx("div",{children:"When someone does, you'll see their response here."})]}),s.totalFeedback>0&&e.jsx(ce,{className:"grow-0",children:e.jsxs("div",{className:"flex w-full items-center justify-between gap-3",children:[e.jsxs(q,{variant:"outline",onClick:()=>{const d=`(feedback.post_id:'${a}'+feedback.score:1)`,m=`(feedback.post_id:'${a}'+feedback.score:0)`,y=`${encodeURIComponent(d)}&post=${a}`,h=`${encodeURIComponent(m)}&post=${a}`;c(`/members?filter=${o==="positive"?y:h}`,{crossApp:!0})},children:["View all",e.jsx(We,{})]}),k>1&&e.jsx(de,{className:"pb-0",children:e.jsxs(me,{children:[e.jsx(pe,{disabled:!l,onClick:R}),e.jsx(ue,{disabled:!C,onClick:v})]})})]})})]})},us=()=>{const{mutateAsync:s,isLoading:a}=ts();return{editLinks:s,isEditLinksLoading:a}},xs=s=>{const{data:a,isLoading:c}=te(s),{data:o,isLoading:x}=te(s,{searchParams:{include:"count.positive_feedback,count.negative_feedback"}}),n=r.useMemo(()=>a?.posts[0],[a]),f=r.useMemo(()=>o?.posts[0],[o]),F=r.useMemo(()=>n?{sent:n.email?.email_count||0,opened:n.email?.opened_count||0,clicked:n.count?.clicks||0,openedRate:n.email?.opened_count?n.email.opened_count/n.email.email_count:0,clickedRate:n.count?.clicks&&n.email?.email_count?n.count.clicks/n.email.email_count:0}:{sent:0,opened:0,clicked:0,openedRate:0,clickedRate:0},[n]),L=r.useMemo(()=>{if(!f?.count)return{positiveFeedback:0,negativeFeedback:0,totalFeedback:0};const p=f.count.positive_feedback||0,w=f.count.negative_feedback||0,j=p+w;return{positiveFeedback:p,negativeFeedback:w,totalFeedback:j}},[f]),k=r.useMemo(()=>n?.newsletter?.id,[n]),{data:i,isLoading:v}=ls({searchParams:k?{newsletter_id:k}:{},enabled:!!k}),R=r.useMemo(()=>i?.stats?i.stats.map(p=>p.post_id):[],[i]),{data:C,isLoading:l}=cs({searchParams:k&&R.length>0?{newsletter_id:k,post_ids:R.join(",")}:{},enabled:!!k&&R.length>0}),g=r.useMemo(()=>{if(!i?.stats)return;const p=i.stats,w=C?.stats||[],j=new Map;w.forEach(b=>{j.set(b.post_id,b)});const S=p.map(b=>{const z=j.get(b.post_id);return{...b,total_clicks:z?.total_clicks||0,click_rate:z?.click_rate||0}});return{...i,stats:S}},[i,C]),d=v||l,{data:m,isLoading:y,refetch:h}=as({searchParams:{filter:`post_id:'${s}'`}}),T=r.useMemo(()=>{if(!g||!g.stats)return{openRate:0,clickRate:0};const p=g.stats;if(p.length===0)return{openRate:0,clickRate:0};const w=p.reduce((S,b)=>S+(b.open_rate||0),0),j=p.reduce((S,b)=>S+(b.click_rate||0),0);return{openRate:Number((w/p.length).toFixed(2)),clickRate:Number((j/p.length).toFixed(2))}},[g]),M=r.useMemo(()=>is(m),[m]),D=r.useMemo(()=>({openedRate:T.openRate,clickedRate:T.clickRate}),[T]);return{post:n,stats:F,feedbackStats:L,averageStats:D,topLinks:M,refetchTopLinks:h,isLoading:c||x||d||y}},gs=({breakpoints:s={sm:1080,md:1280,lg:1360}}={})=>{const[a,c]=r.useState("md");return r.useEffect(()=>{const o=()=>{const x=window.innerWidth;x<s.sm?c("sm"):x<s.md?c("md"):c("lg")};return o(),window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)},[s]),{chartSize:a,isSmall:a==="sm",isMedium:a==="md",isLarge:a==="lg"}},ae=()=>e.jsx("div",{className:"absolute -right-4 top-1/2 z-10 hidden size-8 -translate-y-1/2 items-center justify-center rounded-full border bg-background text-muted-foreground md:!visible md:!flex",children:e.jsx(De,{className:"ml-0.5",size:16,strokeWidth:1.5})}),ie=({dataColor:s,value:a,avgValue:c})=>e.jsxs("div",{className:"absolute left-1/2 top-6 z-50 flex w-[200px] -translate-x-1/2 flex-col items-stretch gap-1.5 rounded-md bg-background px-4 py-2 text-sm opacity-0 shadow-md transition-all group-hover/block:top-3 group-hover/block:opacity-100",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[e.jsx("div",{className:"size-2 rounded-full bg-chart-blue opacity-50",style:{backgroundColor:s}}),"This newsletter"]}),e.jsx("div",{className:"text-right font-mono",children:a})]}),e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[e.jsx("div",{className:"size-2 rounded-full bg-chart-gray opacity-80"}),"Average"]}),e.jsx("div",{className:"text-right font-mono",children:c})]})]}),Qs=()=>{const s=re(),[a,c]=r.useState(null),[o,x]=r.useState(""),n=r.useRef(null),f=r.useRef(null),F=10,{chartSize:L}=gs(),{appSettings:k}=ze(),{emailTrackClicks:i,emailTrackOpens:v}=k?.analytics||{},{post:R,isPostLoading:C,postId:l}=rs(),g=R,d=ns(g);r.useEffect(()=>{!C&&!d&&s(`/posts/analytics/${l}`)},[s,l,C,d]);const{stats:m,averageStats:y,topLinks:h,isLoading:T,refetchTopLinks:M}=xs(l),{editLinks:D}=us(),p=r.useMemo(()=>{if(!g?.count)return{positiveFeedback:0,negativeFeedback:0,totalFeedback:0};const t=g.count.positive_feedback||0,u=g.count.negative_feedback||0,P=t+u;return{positiveFeedback:t,negativeFeedback:u,totalFeedback:P}},[g]),w=r.useMemo(()=>g?.newsletter?.feedback_enabled===!0,[g]),j=r.useMemo(()=>p.totalFeedback>0?!0:w,[p.totalFeedback,w]),S=t=>{const u=G(h,t);u&&(c(t),x(u.link.to))},b=()=>{if(!a)return;const t=G(h,a);if(!t)return;const u=o.trim();if(u===""||u===t.link.to){c(null),x("");return}D({originalUrl:t.link.originalTo,editedUrl:o,postId:l},{onSuccess:()=>{c(null),x(""),M()}})},{totalPages:z,paginatedData:xe,nextPage:ge,previousPage:he,hasNextPage:be,hasPreviousPage:fe}=oe({data:h,itemsPerPage:F});r.useEffect(()=>{if(a&&n.current){n.current.focus();const t=G(h,a),u=P=>{f.current&&!f.current.contains(P.target)&&o===t?.link.to&&(c(null),x(""))};return document.addEventListener("mousedown",u),()=>{document.removeEventListener("mousedown",u)}}},[a,o,h]);const I=T||C,ke=[{datatype:"Sent",value:1,fill:"url(#gradientPurple)",color:"hsl(var(--chart-purple))"}],ve={percentage:{label:"O"},Average:{label:"Average"},"This newsletter":{label:"This newsletter"}},je=[{datatype:"Average",value:y.openedRate,fill:"url(#gradientGray)",color:"hsl(var(--chart-gray))"},{datatype:"This newsletter",value:m.openedRate,fill:"url(#gradientBlue)",color:"hsl(var(--chart-blue))"}],Ne={percentage:{label:"Opened"},Average:{label:"Average"},"This newsletter":{label:"This newsletter"}},we=[{datatype:"Average",value:y.clickedRate,fill:"url(#gradientGray)",color:"hsl(var(--chart-gray))"},{datatype:"This newsletter",value:m.clickedRate,fill:"url(#gradientTeal)",color:"hsl(var(--chart-teal))"}],Ce={percentage:{label:"Clicked"},Average:{label:"Average"},"This newsletter":{label:"This newsletter"}};let A="grid-cols-3",$="aspect-[16/10] w-full max-w-[320px] sm:aspect-[2/1] md:aspect-[10/14] md:max-w-none lg:aspect-square";return(!i||!v)&&(A="grid-cols-2",$="aspect-[16/10] w-full max-w-[320px] sm:aspect-[2/1] md:aspect-square md:max-w-none lg:aspect-[15/10]"),!i&&!v&&(A="grid-cols-1",$="aspect-square w-full sm:aspect-[16/10] md:max-w-[320px] md:max-h-[320px] lg:aspect-[12/10]"),e.jsxs(e.Fragment,{children:[e.jsx(He,{currentTab:"Newsletter"}),e.jsx(Ke,{children:e.jsxs("div",{className:`grid grid-cols-1 gap-6 ${j&&i&&"lg:grid-cols-2"}`,children:[e.jsxs(Q,{className:j&&i?"lg:col-span-2":"",children:[e.jsxs(Y,{className:"hidden",children:[e.jsx(J,{children:"Newsletters"}),e.jsx(X,{children:"How did this post perform"})]}),I?e.jsx(_,{className:"h-[25vw] p-6",children:e.jsx(Ee,{})}):e.jsxs(_,{className:"p-0",children:[e.jsxs("div",{className:`grid ${A} items-stretch border-b`,children:[e.jsxs(U,{className:"group relative isolate grow p-3 md:px-6 md:py-5",children:[e.jsx(B,{onClick:()=>{const t=new URLSearchParams({filterParam:`emails.post_id:${l}`,postAnalytics:l});s(`/members?${t.toString()}`,{crossApp:!0})},children:"View members →"}),e.jsxs(V,{onClick:()=>{const t=new URLSearchParams({filterParam:`emails.post_id:${l}`,postAnalytics:l});s(`/members?${t.toString()}`,{crossApp:!0})},children:[e.jsx("div",{className:"ml-0.5 size-[9px] rounded-full bg-chart-purple !text-sm opacity-50 lg:text-base"}),"Sent"]}),e.jsx(O,{children:e.jsx(W,{className:"text-xl leading-none sm:text-2xl md:text-[2.6rem]",children:E(m.sent)})})]}),v&&e.jsxs(U,{className:"p-3 md:px-6 md:py-5",children:[e.jsx(B,{onClick:()=>{const t=new URLSearchParams({filterParam:`opened_emails.post_id:${l}`,postAnalytics:l});s(`/members?${t.toString()}`,{crossApp:!0})},children:"View members →"}),e.jsxs(V,{onClick:()=>{const t=new URLSearchParams({filterParam:`opened_emails.post_id:${l}`,postAnalytics:l});s(`/members?${t.toString()}`,{crossApp:!0})},children:[e.jsx("div",{className:"ml-0.5 size-[9px] rounded-full bg-chart-blue !text-sm opacity-50 lg:text-base"}),"Opened"]}),e.jsx(O,{children:e.jsx(W,{className:"text-xl leading-none sm:text-2xl md:text-[2.6rem]",children:E(m.opened)})})]}),i&&e.jsxs(U,{className:"group relative isolate grow p-3 md:px-6 md:py-5",children:[e.jsx(B,{onClick:()=>{const t=new URLSearchParams({filterParam:`clicked_links.post_id:${l}`,postAnalytics:l});s(`/members?${t.toString()}`,{crossApp:!0})},children:"View members →"}),e.jsxs(V,{onClick:()=>{const t=new URLSearchParams({filterParam:`clicked_links.post_id:${l}`,postAnalytics:l});s(`/members?${t.toString()}`,{crossApp:!0})},children:[e.jsx("div",{className:"ml-0.5 size-[9px] rounded-full bg-chart-teal !text-sm opacity-50 lg:text-base"}),"Clicked"]}),e.jsx(O,{children:e.jsx(W,{className:"text-xl leading-none sm:text-2xl md:text-[2.6rem]",children:E(m.clicked)})})]})]}),e.jsxs("div",{className:`$ mx-auto grid grid-cols-1 items-center justify-center gap-4 transition-all md:gap-0 ${A==="grid-cols-2"&&"md:grid-cols-2"} ${A==="grid-cols-3"&&"md:grid-cols-3"}`,children:[e.jsxs("div",{className:`relative border-r-0 px-6 ${(v||i)&&"md:border-r"}`,children:[e.jsx(H,{className:$,config:ve,data:ke,percentageLabel:"Sent",percentageValue:N(1),size:L,tooltip:!1}),(v||i)&&e.jsx(ae,{})]}),v&&e.jsxs("div",{className:`group/block relative border-r-0 px-6 transition-all hover:bg-muted/25 ${i&&"md:border-r"}`,children:[e.jsx(ie,{avgValue:N(y.openedRate),dataColor:"hsl(var(--chart-blue))",value:N(m.openedRate)}),e.jsx(H,{className:$,config:Ne,data:je,percentageLabel:"Open rate",percentageValue:N(m.openedRate),size:L,tooltip:!1}),i&&e.jsx(ae,{})]}),i&&e.jsxs("div",{className:"group/block relative px-6 transition-all hover:bg-muted/25",children:[e.jsx(ie,{avgValue:N(y.clickedRate),dataColor:"hsl(var(--chart-teal))",value:N(m.clickedRate)}),e.jsx(H,{className:$,config:Ce,data:we,percentageLabel:"Click rate",percentageValue:N(m.clickedRate),size:L,tooltip:!1})]})]})]})]}),j&&e.jsx(ps,{feedbackStats:p}),i&&e.jsxs(Q,{className:"group/datalist overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between p-6",children:[e.jsxs(Y,{className:"p-0",children:[e.jsx(J,{children:"Newsletter clicks"}),e.jsx(X,{children:"Which links resonated with your readers"})]}),e.jsx(ne,{className:"mr-2",children:"Members"})]}),I?e.jsxs(_,{className:"p-6 pt-0",children:[e.jsx(K,{}),e.jsx(le,{className:"mt-6"})]}):e.jsxs(_,{className:"pb-0",children:[e.jsx(K,{}),h.length>0?e.jsx(qe,{className:"",children:e.jsx(Qe,{children:xe?.map(t=>{const u=m.clicked>0?t.count/m.clicked:0,P=t.link.link_id,Z=t.link.title,ye=t.link.to,Pe=t.link.edited;return e.jsxs(Ye,{children:[a!==P&&e.jsx(Je,{style:{width:`${u?Math.round(u*100):0}%`}}),e.jsx(Xe,{className:"w-full",children:a===P?e.jsxs("div",{ref:f,className:"flex w-full items-center gap-2",children:[e.jsx(Me,{ref:n,className:"z-50 h-7 w-full border-border bg-background text-sm",value:o,onChange:Le=>x(Le.target.value)}),e.jsx(q,{size:"sm",onClick:b,children:"Update"})]}):e.jsxs(e.Fragment,{children:[e.jsx(q,{className:"mr-2 shrink-0 bg-background",size:"sm",variant:"outline",onClick:()=>S(P),children:e.jsx(Ge,{})}),e.jsx("a",{className:"block truncate font-medium hover:underline",href:ye,rel:"noreferrer",target:"_blank",title:Z,children:Z}),Pe&&e.jsx("span",{className:"ml-1 text-gray-500",children:"(edited)"})]})}),e.jsxs(Ze,{children:[e.jsx(es,{children:E(t.count||0)}),e.jsx(ss,{children:N(u)})]})]},P)})})}):e.jsx("div",{className:"py-20 text-center text-sm text-gray-700",children:"You have no links in your post."})]}),!I&&h.length>1&&e.jsx(ce,{children:e.jsxs("div",{className:"flex w-full items-start justify-between gap-3",children:[e.jsxs("div",{className:"mt-2 flex items-start gap-2 pl-4 text-sm text-green",children:[e.jsx(Oe,{size:20,strokeWidth:1.5}),"Sent a broken link? You can update it!"]}),z>1&&e.jsx(de,{className:"pb-0",children:e.jsxs(me,{children:[e.jsx(pe,{disabled:!fe,onClick:he}),e.jsx(ue,{disabled:!be,onClick:ge})]})})]})})]})]})})]})};export{Qs as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as Q,aP as D,r as h,j as e,B as I,aQ as M,ai as y,aR as _,aS as Y,ab as te,aj as f,aT as H,aU as re,aV as ie,af as le,ag as F,aW as oe,S as U}from"./index-CMTzNTew.js";import{K as w,a as k,b as C,c as L}from"./kpi-card-DENsK2xK.js";import{C as A,a as P,b as V,c as N,K as S,d as T,e as R,u as q}from"./pagemenu-CZyroidv.js";import{D as ne,a as ce,b as de,c as me,d as pe,e as he,f as xe,g as ue}from"./data-list-BYNMbRIq.js";import{u as ge,p as je,N as fe,c as ve}from"./links-lpAC3T1p.js";import{M as be}from"./wallet-cards-KmOh29LP.js";import{P as Ne,a as ye}from"./post-analytics-header-7GtJCx0W.js";import{S as we,K as ke}from"./kpis-CDrs2iS1.js";import{E as Ce}from"./empty-indicator-Bn5wG9-T.js";import{G as Le}from"./gh-chart-Br7NXn_b.js";import{u as J,S as _e}from"./post-analytics-context-CF7C67-0.js";import{u as Se,c as Te}from"./growth-CiPDnWxJ.js";import{h as Re,i as De}from"./post-helpers-gInwAwEv.js";import{S as Ie}from"./sprout-C3cc0c-K.js";import"./chart-mYz3IJwm.js";import"./_baseAssignValue-DnkbkowM.js";import"./PolarAngleAxis-Dod0DwfL.js";import"./post-share-modal-D8R7DUZP.js";import"./posts-CL9UDYoW.js";import"./trash-u5BxolyH.js";import"./source-icon-DvDuzw73.js";import"./source-utils-B1S3ZHA2.js";import"./lucide-react-CBigk-fq.js";import"./a-large-small-C5mgFBRg.js";import"./at-sign-Bz-SU-S_.js";import"./message-square-text-cV8O_qKq.js";import"./copy-Bpq3uhnh.js";import"./hash-Bc1e38oH.js";import"./inbox-BcZNBNhk.js";import"./minus-NvnQTlW7.js";import"./tags-CLxXZlOO.js";import"./square-tZp0_n7e.js";import"./user-round-check-B6j98D6d.js";import"./repeat-DgH39UKE.js";import"./reply-DAaNxiy8.js";import"./tabs-BmdL0X4U.js";import"./index-D212VvOz.js";import"./table-BQUcKHfm.js";import"./currency-fEUUCkj0.js";import"./stats-2Jelnn-Q.js";const Me=({post:o,isNewsletterStatsLoading:n,isWebShown:x})=>{const{postId:s}=Q(),a=D(),t=h.useMemo(()=>{const l=o.email?.opened_count||0,r=o.email?.email_count||0,p=o.count?.clicks||0;return{opened:l,clicked:p,openedRate:r>0?l/r:0,clickedRate:r>0?p/r:0,sent:r}},[o]),{data:m}=ge({searchParams:{filter:`post_id:'${s}'`}}),u=h.useMemo(()=>je(m),[m]),g=[{datatype:"Clicked",value:t.clickedRate,fill:"url(#gradientTeal)",color:"hsl(var(--chart-teal))"},{datatype:"Opened",value:t.openedRate,fill:"url(#gradientBlue)",color:"hsl(var(--chart-blue))"}],c={percentage:{label:"Opened"},Average:{label:"Clicked"},"This newsletter":{label:"Opened"}},i=o.email_only||!x;return e.jsxs(A,{className:`group/datalist overflow-hidden ${i&&"col-span-2"}`,children:[e.jsxs("div",{className:"relative flex items-center justify-between gap-6",children:[e.jsx(P,{children:e.jsxs(V,{className:"flex items-center gap-1.5 text-lg",children:[e.jsx(be,{size:16,strokeWidth:1.5}),"Newsletter performance"]})}),e.jsx(I,{className:"absolute right-6 translate-x-10 opacity-0 transition-all duration-300 group-hover/datalist:translate-x-0 group-hover/datalist:opacity-100",size:"sm",variant:"outline",onClick:()=>{a(`/posts/analytics/${s}/newsletter`)},children:"View more"})]}),n?e.jsx(N,{children:e.jsx("div",{className:"mx-auto flex min-h-[250px] items-center justify-center xl:size-full",children:e.jsx(M,{})})}):e.jsxs(N,{className:`${i&&"grid grid-cols-2"}`,children:[e.jsxs("div",{className:`${i&&"border-r pr-6"}`,children:[e.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[e.jsx(S,{className:"group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0",children:e.jsxs("div",{className:"flex grow flex-col gap-1.5 border-none pb-0",children:[e.jsx(T,{color:"hsl(var(--chart-blue))",children:"Open rate"}),e.jsx(R,{value:y(t.openedRate)})]})}),e.jsx(S,{className:"group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0",children:e.jsxs("div",{className:"flex grow flex-col gap-1.5 border-none pb-0",children:[e.jsx(T,{color:"hsl(var(--chart-teal))",children:"Click rate"}),e.jsx(R,{value:y(t.clickedRate)})]})})]}),!i&&e.jsx(_,{}),e.jsx("div",{className:"mx-auto my-6 h-[240px]",children:e.jsx(fe,{className:"pointer-events-none aspect-square h-[240px]",config:c,data:g,tooltip:!1})})]}),e.jsxs("div",{className:`${i&&"pl-6"}`,children:[!i&&e.jsx(_,{}),e.jsxs("div",{className:i?"":"pt-3",children:[e.jsxs("div",{className:`flex items-center justify-between gap-3 ${i?"pb-3":"py-3"}`,children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Top clicked links in this email"}),e.jsx(Y,{children:"Members"})]}),u.length>0?e.jsx(ne,{className:"",children:e.jsx(ce,{children:u.slice(0,i?10:5).map(l=>{const r=t.clicked>0?l.count/t.clicked:0;return e.jsxs(de,{children:[e.jsx(me,{style:{width:`${r?Math.round(r*100):0}%`}}),e.jsx(pe,{children:e.jsxs("div",{className:"flex items-center space-x-2 overflow-hidden",children:[e.jsx(te,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),e.jsx("a",{className:"block truncate font-medium hover:underline",href:l.link.to,rel:"noreferrer",target:"_blank",title:l.link.to,children:ve(l.link.to,!0)})]})}),e.jsxs(he,{children:[e.jsx(xe,{children:f(l.count||0)}),e.jsx(ue,{children:y(r)})]})]},l.link.link_id)})})}):e.jsx("div",{className:"py-20 text-center text-sm text-gray-700",children:"You have no links in your post."})]})]})]})]})},Ae=({chartData:o,range:n,isLoading:x,visitors:s,sourcesData:a,isNewsletterShown:t=!0})=>{const{postId:m}=Q(),u=D(),{data:g}=J(),c=g?.url,i=g?.icon,l=h.useMemo(()=>a?a.reduce((r,p)=>r+Number(p.visits||0),0):0,[a]);return e.jsx(e.Fragment,{children:e.jsxs(A,{className:`group/datalist overflow-hidden ${!t&&"col-span-2"}`,"data-testid":"web-performance",children:[e.jsxs("div",{className:"relative flex items-center justify-between gap-6",children:[e.jsx(P,{children:e.jsxs(V,{className:"flex items-center gap-1.5 text-lg",children:[e.jsx(H,{size:16,strokeWidth:1.5}),"Web performance"]})}),e.jsx(I,{className:"absolute right-6 translate-x-10 opacity-0 transition-all duration-300 group-hover/datalist:translate-x-0 group-hover/datalist:opacity-100",size:"sm",variant:"outline",onClick:()=>{u(`/posts/analytics/${m}/web`)},children:"View more"})]}),e.jsxs(N,{children:[e.jsxs("div",{children:[e.jsx(S,{className:"group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0","data-testid":"unique-visitors",children:e.jsxs("div",{className:"flex grow flex-col gap-1.5 border-none pb-0",children:[e.jsx(T,{color:"hsl(var(--chart-blue))",children:"Unique visitors"}),e.jsx(R,{value:f(s)})]})}),e.jsx(_,{}),e.jsx("div",{className:"max-h-[288px] py-6 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500",children:x?e.jsx("div",{className:"flex h-[16vw] min-h-[240px] items-center justify-center",children:e.jsx(M,{})}):e.jsx(Le,{className:"aspect-auto h-[240px] w-full",color:"hsl(var(--chart-blue))",data:o||[],id:"visitors",range:n,syncId:"overview-charts"})})]}),t&&e.jsxs("div",{className:t?"border-t pt-3":"-mt-3",children:[e.jsx("div",{children:e.jsxs("div",{className:"flex items-center justify-between gap-3 py-3",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"How readers found this post"}),e.jsx(Y,{children:"Visitors"})]})}),a&&a.length>0?e.jsx(we,{data:a,range:n,siteIcon:i,siteUrl:c,tableOnly:!0,topSourcesLimit:5,totalVisitors:l}):e.jsx(Ce,{className:"h-full py-10",description:"Once someone visits this post, sources will show here",title:"No visitors since you published this post",children:e.jsx(H,{strokeWidth:1.5})})]})]})]})})},Ns=()=>{const o=D(),{statsConfig:n,isLoading:x,post:s,isPostLoading:a,postId:t}=J(),{totals:m,isLoading:u,currencySymbol:g}=Se(t),{appSettings:c}=re(),{emailTrackClicks:i,emailTrackOpens:l}=c?.analytics||{},r=h.useMemo(()=>s?.published_at?ie(s.published_at):_e.ALL_TIME.value,[s?.published_at]),{startDate:p,endDate:E,timezone:K}=le(r),O=h.useMemo(()=>{const d={site_uuid:n?.id||"",date_from:F(p),date_to:F(E),timezone:K,post_uuid:""};return!a&&s?.uuid?{...d,post_uuid:s.uuid}:d},[a,s,n?.id,p,E,K]),{data:v,loading:z}=q({endpoint:"api_kpis",statsConfig:n||{id:""},params:O}),X=h.useMemo(()=>v?.length?v.reduce((d,j)=>{const G=Number(j.visits);return d+(isNaN(G)?0:G)},0):0,[v]),b=ke.visits,Z=oe(v||[],r,b.dataKey,"sum")?.map(d=>{const j=Number(d[b.dataKey]);return{date:String(d.date),value:j,formattedValue:b.formatter(j),label:b.label}}),{data:ee,loading:se}=q({endpoint:"api_top_sources",statsConfig:n||{id:""},params:O}),$=x||u||a||z,ae=a||x||z,W=Re(s)&&l&&i,B=!s?.email_only&&c?.analytics.webAnalytics;return h.useEffect(()=>{!a&&s&&De(s)&&!c?.analytics.webAnalytics&&o(`/posts/analytics/${t}/growth`)},[a,s,c?.analytics.webAnalytics,o,t]),a?e.jsx(M,{}):e.jsxs(e.Fragment,{children:[e.jsx(Ne,{currentTab:"Overview"}),e.jsx(ye,{children:e.jsxs("div",{className:"flex flex-col gap-6 lg:grid lg:grid-cols-2",children:[B&&e.jsx(Ae,{chartData:Z,isLoading:ae||$||se,isNewsletterShown:W,range:r,sourcesData:ee,visitors:X}),W&&e.jsx(Me,{isNewsletterStatsLoading:a,isWebShown:B,post:s}),e.jsxs(A,{className:"group col-span-2 overflow-hidden p-0","data-testid":"growth",children:[e.jsxs("div",{className:"relative flex items-center justify-between gap-6",children:[e.jsx(P,{children:e.jsxs(V,{className:"flex items-center gap-1.5 text-lg",children:[e.jsx(Ie,{size:16,strokeWidth:1.5}),"Growth"]})}),e.jsx(I,{className:"absolute right-6 translate-x-10 opacity-0 transition-all duration-200 group-hover:translate-x-0 group-hover:opacity-100",size:"sm",variant:"outline",onClick:()=>{o(`/posts/analytics/${t}/growth`)},children:"View more"})]}),e.jsx(N,{className:"flex flex-col gap-6 px-0 md:grid md:grid-cols-3 md:items-stretch md:gap-0",children:$?Array.from({length:3},(d,j)=>e.jsxs("div",{className:"h-[98px] gap-1 border-r px-6 py-5 last:border-r-0",children:[e.jsx(U,{className:"w-2/3"}),e.jsx(U,{className:"h-7 w-12"})]},j)):e.jsxs(e.Fragment,{children:[e.jsxs(w,{className:"grow gap-1 py-0",children:[e.jsx(k,{children:"Free members"}),e.jsx(C,{children:e.jsx(L,{className:"text-[2.2rem]",children:f(m?.free_members||0)})})]}),c?.paidMembersEnabled&&e.jsxs(e.Fragment,{children:[e.jsxs(w,{className:"grow gap-1 py-0",children:[e.jsx(k,{children:"Paid members"}),e.jsx(C,{children:e.jsx(L,{className:"text-[2.2rem]",children:f(m?.paid_members||0)})})]}),e.jsxs(w,{className:"grow gap-1 py-0",children:[e.jsx(k,{children:"MRR impact"}),e.jsx(C,{children:e.jsxs(L,{className:"text-[2.2rem]",children:[g,f(Te(m?.mrr||0))]})})]})]})]})})]})]})})]})};export{Ns as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as t,aS as be,aR as xe,by as Se,bz as je,B as oe,bA as _e,bB as Ce,bC as Ne,bD as ve,ch as Le,aj as ye,ai as Te,aU as Ee,r as l,ci as Fe,aT as J,bK as Oe,af as ne,ag as $,cj as ke,bG as De,aP as Ae,u as Ie,aV as Me,aQ as Pe}from"./index-CMTzNTew.js";import{S as we,a as Ue,b as Ve,c as Re,d as Be,e as ze,f as Ke}from"./select-Cor2wFXT.js";import{u as H,S as ie,a as re,A as Z,b as z,c as q,U as le}from"./post-analytics-context-CF7C67-0.js";import{a as $e,F as Ge,b as He}from"./message-square-text-cV8O_qKq.js";import{g as We,a as Qe,S as Ye,b as qe}from"./kpis-CDrs2iS1.js";import{F as Xe,c as W,e as ce}from"./en-D4zIrMLN.js";import{C as ue,a as Je,b as Ze,f as et,c as de,g as tt,u as K,j as ee}from"./pagemenu-CZyroidv.js";import{D as st,h as at,i as te,a as ot,b as nt,c as it,d as rt,e as lt,f as ct,g as ut}from"./data-list-BYNMbRIq.js";import{a as dt,U as mt}from"./wallet-cards-KmOh29LP.js";import{P as pt,a as ht}from"./post-analytics-header-7GtJCx0W.js";import{F as gt,c as ft}from"./filters-CpVwu1Gk.js";import{b as bt,c as xt,F as St,d as jt,S as _t,T as Ct}from"./lucide-react-CBigk-fq.js";import{E as Nt}from"./empty-indicator-Bn5wG9-T.js";import"./posts-CL9UDYoW.js";import"./source-icon-DvDuzw73.js";import"./source-utils-B1S3ZHA2.js";import"./gh-chart-Br7NXn_b.js";import"./chart-mYz3IJwm.js";import"./_baseAssignValue-DnkbkowM.js";import"./tabs-BmdL0X4U.js";import"./index-D212VvOz.js";import"./post-share-modal-D8R7DUZP.js";import"./post-helpers-gInwAwEv.js";import"./trash-u5BxolyH.js";import"./sprout-C3cc0c-K.js";import"./a-large-small-C5mgFBRg.js";import"./at-sign-Bz-SU-S_.js";import"./copy-Bpq3uhnh.js";import"./hash-Bc1e38oH.js";import"./inbox-BcZNBNhk.js";import"./minus-NvnQTlW7.js";import"./tags-CLxXZlOO.js";import"./square-tZp0_n7e.js";import"./user-round-check-B6j98D6d.js";import"./repeat-DgH39UKE.js";import"./reply-DAaNxiy8.js";const se=()=>{const{range:e,setRange:s}=H();return t.jsxs(we,{value:`${e}`,onValueChange:a=>{s(Number(a))},children:[t.jsxs(Ue,{className:"w-auto",children:[t.jsx($e,{className:"mr-2",size:16,strokeWidth:1.5}),t.jsx(Ve,{placeholder:"Select a period"})]}),t.jsx(Re,{align:"end",children:t.jsxs(Be,{children:[t.jsx(ze,{children:"Period"}),Object.values(ie).map(a=>t.jsx(Ke,{value:`${a.value}`,children:a.name},a.value))]})})]})};W.registerLocale(ce);const vt=e=>re[e]||W.getName(e,"en")||"Unknown",Lt=e=>{const s={"UNITED STATES":"US","UNITED STATES OF AMERICA":"US",USA:"US","UNITED KINGDOM":"GB",UK:"GB","GREAT BRITAIN":"GB",NETHERLANDS:"NL"},a=e.toUpperCase();return s[a]||(e.length>2?e.substring(0,2):e)},ae=({tableHeader:e,data:s,onLocationClick:a})=>t.jsxs(st,{children:[e&&t.jsxs(at,{children:[t.jsx(te,{children:"Country"}),t.jsx(te,{children:"Visitors"})]}),t.jsx(ot,{children:s.map(i=>{const o=vt(`${i.location}`),r=a&&i.location!=="Unknown",c=i.location?i.location.toLowerCase():"unknown";return t.jsxs(nt,{className:r?"cursor-pointer":"","data-testid":`location-row-${c}`,onClick:r?()=>a(i.location):void 0,children:[t.jsx(it,{style:{width:`${i.percentage?Math.round(i.percentage*100):0}%`}}),t.jsx(rt,{className:"group-hover/data:max-w-[calc(100%-140px)]",children:t.jsxs("div",{className:"flex items-center space-x-3 overflow-hidden",title:o,children:[t.jsx(Xe,{countryCode:`${Lt(i.location)}`,fallback:t.jsx("span",{className:"flex h-[14px] w-[22px] items-center justify-center rounded-[2px] bg-black text-white",children:t.jsx(Le.SkullAndBones,{className:"size-3"})})}),t.jsx("div",{className:"truncate font-medium",children:o})]})}),t.jsxs(lt,{children:[t.jsx(ct,{children:ye(Number(i.visits))}),t.jsx(ut,{children:Te(i.percentage)})]})]},i.location||"unknown")})})]}),yt=({data:e,isLoading:s,onLocationClick:a})=>{const i=e.slice(0,10);return t.jsx(t.Fragment,{children:s?"":t.jsx(t.Fragment,{children:e&&e.length>0&&t.jsxs(ue,{className:"group/datalist","data-testid":"locations-card",children:[t.jsxs("div",{className:"flex items-center justify-between p-6",children:[t.jsxs(Je,{className:"p-0",children:[t.jsx(Ze,{children:"Locations"}),t.jsx(et,{children:"Where are the readers of this post"})]}),t.jsx(be,{className:"mr-2",children:"Visitors"})]}),t.jsxs(de,{className:"overflow-hidden",children:[t.jsx(xe,{}),t.jsx(ae,{data:i,tableHeader:!1,onLocationClick:a})]}),e.length>10&&t.jsx(tt,{children:t.jsxs(Se,{children:[t.jsx(je,{asChild:!0,children:t.jsxs(oe,{variant:"outline",children:["View all ",t.jsx(dt,{})]})}),t.jsxs(_e,{className:"overflow-y-auto pt-0 sm:max-w-[600px]",children:[t.jsxs(Ce,{className:"sticky top-0 z-40 -mx-6 bg-background/60 p-6 backdrop-blur",children:[t.jsx(Ne,{children:"Top locations"}),t.jsx(ve,{children:"Where are the readers of this post"})]}),t.jsx("div",{className:"group/datalist",children:t.jsx(ae,{data:e,tableHeader:!0,onLocationClick:a})})]})]})})]})})})},me=e=>!e||e.length===0?Z:z.filter(s=>e.includes(s.value)).reduce((s,a)=>s|a.bit,0)||Z,pe=e=>{const s=[];return(e&q.PUBLIC)!==0&&s.push(z[0].value),(e&q.FREE)!==0&&s.push(z[1].value),(e&q.PAID)!==0&&s.push(z[2].value),s.join(",")};W.registerLocale(ce);const Tt=e=>re[e]||W.getName(e,"en")||e,Et=({visits:e})=>t.jsx("span",{className:"order-2 font-mono text-xs text-muted-foreground",children:e.toLocaleString()}),Ft={utm_source:{endpoint:"api_top_utm_sources",valueKey:"utm_source",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},utm_medium:{endpoint:"api_top_utm_mediums",valueKey:"utm_medium",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},utm_campaign:{endpoint:"api_top_utm_campaigns",valueKey:"utm_campaign",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},utm_content:{endpoint:"api_top_utm_contents",valueKey:"utm_content",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},utm_term:{endpoint:"api_top_utm_terms",valueKey:"utm_term",transformValue:e=>({value:e||"(not set)",label:e||"(not set)"})},source:{endpoint:"api_top_sources",valueKey:"source",transformValue:e=>({value:e||"",label:e||"Direct"})},location:{endpoint:"api_top_locations",valueKey:"location",filterItem(e){const s=String(e.location||"");return s!==""&&!le.includes(s)},transformValue:e=>({value:e,label:Tt(e)})},device:{endpoint:"api_top_devices",valueKey:"device",transformValue:e=>({value:e,label:e==="mobile-ios"?"iOS":e==="mobile-android"?"Android":e==="desktop"?"Desktop":e==="bot"?"Bot":e})}},Ot=(e,s,a)=>{const i={...a};return e.forEach(o=>{if(o.field===s||o.values.length===0)return;const r=o.values[0];o.field!=="audience"&&(o.field==="source"||o.field==="device"||o.field==="location"||o.field.startsWith("utm_"))&&(i[o.field]=r)}),i},O=(e,s=[],a,i={})=>{const{enabled:o=!0}=i,{statsConfig:r,range:c}=H(),{startDate:b,endDate:m,timezone:x}=ne(c),p=Ft[e],d=l.useMemo(()=>{const j=s.find(h=>h.field==="audience");return me(j?.values)},[s]),S=l.useMemo(()=>{const j={site_uuid:r?.id||"",date_from:$(b),date_to:$(m),timezone:x,member_status:pe(d),limit:"50"};return a&&(j.post_uuid=a),Ot(s,e,j)},[r?.id,b,m,x,d,s,e,a]),{data:v,loading:k}=K({endpoint:p?.endpoint||"",statsConfig:r,params:S,enabled:o&&!!p});return{options:l.useMemo(()=>p?(v||[]).filter(h=>p.filterItem?p.filterItem(h):!0).map(h=>{const E=String(h[p.valueKey]??""),M=Number(h.visits)||0,{value:F,label:y}=p.transformValue?p.transformValue(E):{value:E,label:E};return{label:y,value:F,icon:t.jsx(Et,{visits:M})}}):[],[v,p]),loading:k}};function kt({filters:e,onChange:s,...a}){const{appSettings:i}=Ee(),{post:o}=H(),r=o?.uuid,[c,b]=l.useState(null),[m,x]=l.useState(!1);l.useEffect(()=>{const g=window.matchMedia("(max-width: 1024px)"),C=T=>{x(T.matches)};return C(g),g.addEventListener("change",C),()=>g.removeEventListener("change",C)},[]);const p=l.useMemo(()=>{const g=[{value:"undefined",label:"Public visitors",icon:t.jsx(J,{className:"text-gray-700"})},{value:"free",label:"Free members",icon:t.jsx(Oe,{className:"text-green"})},{value:"paid",label:"Paid members",icon:t.jsx(mt,{className:"text-orange"})}];return i?.paidMembersEnabled?g:g.filter(C=>C.value!=="paid")},[i?.paidMembersEnabled]),d=l.useCallback(g=>{const C=c===g,T=e.some(n=>n.field===g);return C||T},[c,e]),{options:S,loading:v}=O("utm_source",e,r,{enabled:d("utm_source")}),{options:k,loading:I}=O("utm_medium",e,r,{enabled:d("utm_medium")}),{options:j,loading:h}=O("utm_campaign",e,r,{enabled:d("utm_campaign")}),{options:E,loading:M}=O("utm_content",e,r,{enabled:d("utm_content")}),{options:F,loading:y}=O("utm_term",e,r,{enabled:d("utm_term")}),{options:R,loading:D}=O("source",e,r,{enabled:d("source")}),{options:U,loading:A}=O("device",e,r,{enabled:d("device")}),{options:B,loading:P}=O("location",e,r,{enabled:d("location")}),_=l.useMemo(()=>[{value:"is",label:"is"}],[]),Q=l.useMemo(()=>{const g=[{key:"utm_source",label:"UTM Source",type:"select",icon:t.jsx(jt,{className:"size-4"}),placeholder:"Select source",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:S,isLoading:v,searchable:!0,selectedOptionsClassName:"hidden"},{key:"utm_medium",label:"UTM Medium",type:"select",icon:t.jsx(_t,{className:"size-4"}),placeholder:"Select medium",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:k,isLoading:I,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"},{key:"utm_campaign",label:"UTM Campaign",type:"select",icon:t.jsx(He,{className:"size-4"}),placeholder:"Select campaign",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:j,isLoading:h,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"},{key:"utm_content",label:"UTM Content",type:"select",icon:t.jsx(Ct,{className:"size-4"}),placeholder:"Select content",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:E,isLoading:M,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"},{key:"utm_term",label:"UTM Term",type:"select",icon:t.jsx(ke,{className:"size-4"}),placeholder:"Select term",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:F,isLoading:y,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"}];return[{group:"Basic",fields:[{key:"audience",label:"Audience",type:"multiselect",icon:t.jsx(Fe,{}),options:p.map(({value:C,label:T,icon:n})=>({value:C,label:T,icon:n})),defaultOperator:"is any of",hideOperatorSelect:!0,autoCloseOnSelect:!0},{key:"source",label:"Source",type:"select",icon:t.jsx(J,{className:"size-4"}),placeholder:"Select source",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:R,isLoading:D,className:"w-60",popoverContentClassName:"w-60",searchable:!0,selectedOptionsClassName:"hidden"},{key:"device",label:"Device",type:"select",icon:t.jsx(bt,{className:"size-4"}),placeholder:"Select device",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:U,isLoading:A,selectedOptionsClassName:"hidden"},{key:"location",label:"Location",type:"select",icon:t.jsx(xt,{className:"size-4"}),placeholder:"Select location",operators:_,defaultOperator:"is",hideOperatorSelect:!0,options:B,isLoading:P,searchable:!0,selectedOptionsClassName:"hidden"}]},{group:"UTM parameters",fields:g}]},[S,v,k,I,j,h,E,M,F,y,_,p,R,D,U,A,B,P]),w=e.length>0,Y=l.useCallback(()=>{s&&s([])},[s]);return t.jsxs("div",{className:"mt-3 flex w-full justify-between gap-2 lg:mt-0","data-testid":"stats-filter-container",children:[t.jsx(gt,{addButtonIcon:t.jsx(Ge,{}),addButtonText:w?"Add filter":"Filter",allowMultiple:!1,className:`[&>button]:order-last ${w&&"[&>button]:border-none"}`,fields:Q,filters:e,keyboardShortcut:"f",popoverAlign:m||w?"start":"end",showSearchInput:!1,onActiveFieldChange:b,onChange:s||(()=>{}),...a}),w&&t.jsxs(oe,{className:"hidden font-normal text-muted-foreground lg:flex","data-testid":"stats-filter-clear-button",variant:"ghost",onClick:Y,children:[t.jsx(St,{}),"Clear"]})]})}const G=["audience","source","device","location","utm_source","utm_medium","utm_campaign","utm_content","utm_term"],he="__empty__",ge="%2C";function Dt(e){const s=new URLSearchParams;return e.forEach(a=>{if(G.includes(a.field)&&a.values.length>0){const i=a.values.map(o=>o===""?he:String(o).replace(/,/g,ge)).join(",");s.set(a.field,i)}}),s}const X=new Map;function At(e){return X.has(e)||X.set(e,`url-${e}-${Date.now()}-${Math.random().toString(36).substring(2,11)}`),X.get(e)}function It(e){const s=[],a=new Set(G);return e.forEach((i,o)=>{if(!a.has(o))return;const r=i.split(",").map(c=>c===he?"":c.replace(new RegExp(ge,"g"),","));if(r.length>0){const c=o==="audience"?"is any of":"is";s.push({id:At(o),field:o,operator:c,values:r})}}),s}function Mt(e={}){const[s,a]=De(),{onFiltersChange:i}=e,o=l.useRef(!1),r=l.useMemo(()=>It(s),[s]);l.useEffect(()=>{!o.current&&i&&i(r)},[r,i]);const c=l.useCallback(m=>{o.current=!0;const x=typeof m=="function"?m(r):m,p=Dt(x),d=new URLSearchParams(s);G.forEach(S=>{d.delete(S)}),p.forEach((S,v)=>{d.set(v,S)}),a(d,{replace:!0}),setTimeout(()=>{o.current=!1},0)},[r,s,a]),b=l.useCallback(()=>{o.current=!0;const m=new URLSearchParams(s);G.forEach(x=>{m.delete(x)}),a(m,{replace:!0}),setTimeout(()=>{o.current=!1},0)},[s,a]);return{filters:r,setFilters:c,clearFilters:b}}const xs=()=>{const e=Ae(),{postId:s}=Ie(),{statsConfig:a,isLoading:i,range:o,data:r,post:c,isPostLoading:b}=H(),{filters:m,setFilters:x}=Mt(),p=l.useMemo(()=>{const n=m.find(f=>f.field==="audience");return me(n?.values)},[m]);l.useEffect(()=>{!b&&c?.email_only&&e(`/posts/analytics/${s}`)},[b,c?.email_only,e,s]);const d=l.useMemo(()=>{if(!c?.published_at)return ie.ALL_TIME.value;const n=Me(c.published_at);return o>n?n:o},[c?.published_at,o]),{startDate:S,endDate:v,timezone:k}=ne(d),I=l.useCallback(()=>{const n=document.querySelector(".overflow-y-scroll");n&&n.scrollTo({top:0,behavior:"smooth"})},[]),j=l.useMemo(()=>{const n={};return m.forEach(f=>{const N=f.field,L=f.values;if(N==="audience")return;const u=L&&L.length>0&&L[0]!==null&&L[0]!==void 0,V=N==="source"&&L?.[0]==="";if(u&&(L[0]!==""||V)){const fe=String(L[0]);n[N]=fe}}),n},[m]),h=l.useCallback((n,f)=>{x(N=>N.find(u=>u.field===n)?N.map(u=>u.field===n?{...u,values:[f]}:u):[...N,ft(n,"is",[f])]),I()},[x,I]),E=l.useCallback(n=>h("location",n),[h]),M=l.useCallback(n=>h("source",n),[h]),F=l.useMemo(()=>{const n={site_uuid:a?.id||"",date_from:$(S),date_to:$(v),timezone:k,member_status:pe(p),post_uuid:"",...j};return!b&&c?.uuid?{...n,post_uuid:c.uuid}:n},[b,c,a?.id,S,v,k,p,j]),{data:y,loading:R}=K({endpoint:"api_kpis",statsConfig:a||{id:""},params:F}),{data:D,loading:U}=K({endpoint:"api_top_locations",statsConfig:a||{id:""},params:F}),{data:A,loading:B}=K({endpoint:"api_top_sources",statsConfig:a||{id:""},params:F}),P=l.useMemo(()=>D?.reduce((n,f)=>n+Number(f.visits),0)||0,[D]),_=l.useMemo(()=>A?A.reduce((n,f)=>n+Number(f.visits||0),0):0,[A]),Q=r?.url,w=r?.icon,Y=l.useMemo(()=>{const n=D?.map(u=>({location:String(u.location),visits:Number(u.visits),percentage:P>0?Number(u.visits)/P:0,isUnknown:le.includes(String(u.location))}))||[],f=n.filter(u=>!u.isUnknown),N=n.filter(u=>u.isUnknown),L=N.length>0?[{location:"Unknown",visits:N.reduce((u,V)=>u+V.visits,0),percentage:N.reduce((u,V)=>u+V.percentage,0)}]:[];return[...f,...L]},[D,P]),g=i||b||R||U||B,C=We(y),T=m.length>0;return t.jsxs(t.Fragment,{children:[t.jsxs(pt,{currentTab:"Web",children:[T&&t.jsx(ee,{children:t.jsx(se,{})}),t.jsxs(ee,{className:`${T?"!mt-0 [grid-area:subactions] lg:!mt-[25px]":"[grid-area:actions]"}`,children:[t.jsx(kt,{filters:m,onChange:x}),!T&&t.jsx(se,{})]})]}),t.jsx(ht,{children:g?t.jsx(ue,{className:"size-full",variant:"plain",children:t.jsx(de,{className:"size-full items-center justify-center",children:t.jsx(Pe,{})})}):y&&y.length!==0&&C.visits!=="0"?t.jsxs(t.Fragment,{children:[t.jsx(Qe,{data:y,range:d}),t.jsxs("div",{className:"flex flex-col gap-6 lg:grid lg:grid-cols-2",children:[t.jsx(yt,{data:Y,isLoading:U,onLocationClick:E}),t.jsx(Ye,{data:A,range:d,siteIcon:w,siteUrl:Q,totalVisitors:_,onSourceClick:M})]})]}):t.jsx("div",{className:"grow",children:t.jsx(Nt,{className:"h-full",description:"Try adjusting filters to see more data.",title:`No visitors ${qe(o)}`,children:t.jsx(J,{strokeWidth:1.5})})})})]})};export{xs as default};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
const isLocalContentImage = function (url, siteUrl = '') {
|
|
2
|
-
const normalizedSiteUrl = siteUrl.replace(/\/$/, '');
|
|
3
|
-
const imagePath = url.replace(normalizedSiteUrl, '');
|
|
4
|
-
return /^(\/.*|__GHOST_URL__)\/?content\/images\//.test(imagePath);
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
module.exports = {
|
|
8
|
-
isLocalContentImage
|
|
9
|
-
};
|