PageSourceSearch

https://www.creatorsenseai.com/app/assets/AgencySettingsPortalsTab-B3Un32rb.js

js creatorsenseai.com collected 2026-10-02 01:27:42 UTC 3,667 bytes, 1 lines download raw bytes

1import{k as B,u as a,C as p,D as l,d as M,y as n,Q as u,K as r,G as i,V as v,i as C,W as _,z as o,H as s,J as S,L as A,P as D}from"./vendor-misc-5pJBpqhN.js";import{A as q}from"./AsyncState-C1wY1NSf.js";import{C as N}from"./ChromeCard-DkvfllPh.js";import{C as g}from"./ChromeButton-DmiFifbd.js";import{S as R}from"./SectionHeader-60mU8zeF.js";import{E as T}from"./EmptyState-HBFSUaTT.js";import{a as $}from"./agencySettingsContext-DT6zxaMy.js";import{_ as z}from"./index-BNPflmqD.js";import"./creatorFieldHelp-BrZsjpkG.js";import"./vendor-vue-BIDZeepx.js";import"./vendor-tanstack-B6ELLr_Q.js";import"./vendor-sentry-84cD2ryj.js";import"./vendor-utils-CxkvrZ9U.js";const U={class:"portal-create"},F={key:0,class:"hint"},H=["href"],I={key:0,class:"hint"},K={key:1,class:"portal-links-list"},O={class:"hint"},j={key:0},G=B({__name:"AgencySettingsPortalsTab",setup(J){const k=M($);if(!k)throw new Error("AgencySettingsPortalsTab requires AgencySettingsLayout");const{canManageSettings:L,canViewBilling:P,clientPortalEnabled:h,clientPortalLoading:x,clientPortalListLoading:w,clientPortals:f,portalManagerFilter:d,portalLabel:m,revokingPortalId:y,lastClientPortalUrl:c,createClientPortalLink:E,revokeClientPortalLink:V}=k;return(b,e)=>a(L)&&a(h)?(n(),p(N,{key:0},{default:l(()=>[u(R,{title:"Client share links",description:"Read-only portfolio view for brand stakeholders (Empire). Scope is required — match a Book manager name so the link never exposes the full org."}),r("div",U,[r("label",null,[e[4]||(e[4]=i(" Label ",-1)),v(r("input",{"onUpdate:modelValue":e[0]||(e[0]=t=>C(m)?m.value=t:null),class:"portal-input",type:"text",placeholder:"Optional label","aria-label":"Portal label"},null,512),[[_,a(m)]])]),r("label",null,[e[5]||(e[5]=i(" Manager scope (required) ",-1)),v(r("input",{"onUpdate:modelValue":e[1]||(e[1]=t=>C(d)?d.value=t:null),class:"portal-input",type:"text",placeholder:"Match Book manager name","aria-label":"Manager filter for portal",required:""},null,512),[[_,a(d)]])]),u(g,{variant:"secondary",loading:a(x),disabled:!a(d).trim(),onClick:a(E)},{default:l(()=>[...e[6]||(e[6]=[i(" Create client portal link ",-1)])]),_:1},8,["loading","disabled","onClick"])]),a(c)?(n(),o("p",F,[e[7]||(e[7]=i(" Latest link: ",-1)),r("a",{href:a(c),target:"_blank",rel:"noopener noreferrer"},s(a(c)),9,H)])):S("",!0),u(q,{loading:a(w),error:null},{default:l(()=>[a(f).length?(n(),o("ul",K,[(n(!0),o(A,null,D(a(f),t=>(n(),o("li",{key:t.id,class:"portal-links-item"},[r("div",null,[r("strong",null,s(t.label),1),r("p",O,[i(" Created "+s(t.created_at?new Date(t.created_at).toLocaleString():"—")+" · Expires "+s(t.expires_at?new Date(t.expires_at).toLocaleDateString():"never")+" ",1),t.manager_filter?(n(),o("span",j," · Manager: "+s(t.manager_filter),1)):S("",!0)])]),u(g,{type:"button",variant:"ghost",disabled:a(y)===t.id,onClick:Q=>a(V)(t.id)},{default:l(()=>[i(s(a(y)===t.id?"Revoking…":"Revoke"),1)]),_:2},1032,["disabled","onClick"])]))),128))])):(n(),o("p",I,"No active client portal links yet."))]),_:1},8,["loading"])]),_:1})):(n(),p(T,{key:1,title:"Client portals require Empire",description:"Read-only share links for brand stakeholders are available on Empire for managers.",compact:""},{default:l(()=>[a(P)?(n(),p(g,{key:0,variant:"secondary",onClick:e[2]||(e[2]=t=>b.$router.push("/agency/settings/billing"))},{default:l(()=>[...e[8]||(e[8]=[i(" View billing ",-1)])]),_:1})):(n(),p(g,{key:1,variant:"secondary",onClick:e[3]||(e[3]=t=>b.$router.push("/agency/settings/organization"))},{default:l(()=>[...e[9]||(e[9]=[i(" Open organization settings ",-1)])]),_:1}))]),_:1}))}}),de=z(G,[["__scopeId","data-v-b91ba3b4"]]);export{de as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.