PageSourceSearch

https://www.gemphere.com/assets/ConnectorInviteAccept-d6x9HSay.js

js gemphere.com collected 2026-10-02 01:30:16 UTC 7,978 bytes, 1 lines download raw bytes

1import{cr as S,aZ as B,z as A,d as q,u as E,cw as P,r as j,dl as L,dm as R,j as e,dn as $,P as Y,cz as w,dp as z,dq as D,dr as H,cV as b}from"./index-t4UNL-er.js";import{u as J}from"./invite-door-Cw_3KQw6.js";import"./api-CykbWEt-.js";import"./accounts-Dq7TYPam.js";import"./api-DzEwHsS8.js";const M=[{num:"01",title:"Tell Gem what you're looking for.",desc:"Customers, hiring roles, partners, vendors, or anything else on your radar."},{num:"02",title:"Gem looks for ways to help.",desc:"If someone on their team can open a door for you, Gem will text you. If you can help with something they're looking for, Gem will let you know — no pressure."},{num:"03",title:"Nothing happens without your approval.",desc:"Every introduction is double opt-in. Pause or stop anytime — no explanation needed."}];function O(s){const n=(s||"?").trim().split(/\s+/).filter(Boolean);return n.length?n.slice(0,2).map(t=>t[0].toUpperCase()).join(""):"?"}function W(s){const n=(s||"").trim().split(/\s+/).filter(Boolean);return n.length?n.length===1?{first:n[0],last:""}:{first:n[0],last:n.slice(1).join(" ")}:{first:"",last:""}}function U(s,n,t){const d=t.get("league"),a=t.get("event");return!s||!d&&!a?null:{league:d,event:d?null:a,connector:{token:s,join:n}}}function X(){const{token:s=""}=S(),n=B(),t=A(),[d]=q(),a=n.pathname.includes("/connectors/join/"),{user:o,isReady:k}=E(),{openLogin:C}=P(),h=(o==null?void 0:o.accessToken)||"",v=U(s,a,d),N=!!v,g=J(v),p=s?a?`/connectors/join/${s}`:`/connectors/invite/${s}`:"",[m,x]=j.useState({kind:"loading"}),[r,f]=j.useState(!1);j.useEffect(()=>{if(N)return;if(!s){x({kind:"error",message:"This invite link is incomplete."});return}let i=!1;return(a?L(s):R(s)).then(u=>{i||x({kind:"ready",invite:u.invite})}).catch(u=>{i||x({kind:"error",message:u instanceof Error?u.message:"This invite is no longer available."})}),()=>{i=!0}},[s,a,N]);const T=()=>{t(`/sf-tech-week?connector=${encodeURIComponent(s)}${a?"&join=1":""}`)},y=()=>{p&&(z(p),C({redirectTo:p}))},G=async()=>{if(!h){y();return}f(!0);try{const i=a?await D(h,s):await H(h,s);b.success(`You're now connected with ${i.connector.name||"your connector"}.`),t("/team")}catch(i){b.error(i instanceof Error?i.message:"Could not accept this invite"),f(!1)}};if(!k)return null;if(g)return e.jsx($,{to:g,replace:!0});if(m.kind==="loading")return e.jsx("div",{className:"ci-root",children:e.jsx(Y,{message:"Loading invite…"})});if(m.kind==="error")return e.jsx("div",{className:"ci-root",children:e.jsxs("div",{className:"ci-shell",children:[e.jsxs("header",{className:"ci-header",children:[e.jsxs("div",{className:"ci-header-brand",children:[e.jsx("img",{src:w,alt:"",className:"ci-header-mark",draggable:!1}),e.jsx("span",{className:"ci-header-name",children:"Gemphere"})]}),e.jsx("span",{className:"ci-header-tag",children:"Connector invitation"})]}),e.jsxs("div",{className:"ci-error-panel",children:[e.jsx("div",{className:"ci-error-icon","aria-hidden":"true",children:"×"}),e.jsx("h1",{className:"ci-hero-title",style:{fontSize:28,marginBottom:10},children:"Invite unavailable"}),e.jsx("p",{className:"ci-hero-sub",children:m.message}),e.jsx("div",{style:{marginTop:24},children:e.jsx("button",{type:"button",className:"ci-btn-primary",onClick:()=>t("/"),children:"Go to Gemphere"})})]})]})});const{invite:c}=m,l=c.inviterName.trim().split(/\s+/)[0]||c.inviterName;a||W(c.recipientName||"");const I=a?"":c.recipientEmail||"";return e.jsx("div",{className:"ci-root",children:e.jsxs("div",{className:"ci-shell",children:[e.jsxs("header",{className:"ci-header",children:[e.jsxs("div",{className:"ci-header-brand",children:[e.jsx("img",{src:w,alt:"",className:"ci-header-mark",draggable:!1}),e.jsx("span",{className:"ci-header-name",children:"Gemphere"})]}),e.jsx("span",{className:"ci-header-tag",children:"Connector invitation"})]}),e.jsxs("section",{className:"ci-hero",children:[e.jsx("div",{className:"ci-hero-eyebrow",children:"Personal & private"}),e.jsxs("h1",{className:"ci-hero-title",children:[l," wants to open ",e.jsx("em",{children:"doors"})," for you."]}),e.jsxs("p",{className:"ci-hero-sub",children:["Being a connector works both ways: Gem compares your network with ",l,"'s and shows each of you the doors the other can open."]})]}),e.jsxs("div",{className:"ci-card",children:[e.jsx("div",{className:"ci-card-left",children:e.jsxs("div",{className:"ci-card-left-inner",children:[e.jsxs("div",{className:"ci-card-labels",children:[e.jsx("span",{children:"Already in"}),e.jsx("span",{children:"Invited you"})]}),e.jsxs("div",{className:"ci-person",children:[e.jsx("div",{className:"ci-avatar","aria-hidden":"true",children:O(c.inviterName)}),e.jsxs("div",{children:[e.jsx("div",{className:"ci-person-name",children:c.inviterName}),c.inviterCompany?e.jsx("div",{className:"ci-person-company",children:c.inviterCompany}):null]})]}),e.jsxs("div",{className:"ci-notice",children:[e.jsx("span",{className:"ci-notice-dot","aria-hidden":"true"}),e.jsxs("span",{children:["Connectors join by invitation only — ",l," picked you personally."]})]}),c.note?e.jsx("div",{className:"ci-quote",children:e.jsxs("p",{className:"ci-quote-text",children:["“",c.note,"”"]})}):e.jsxs("div",{className:"ci-quote",children:[e.jsx("p",{className:"ci-quote-text",children:"Gemphere opened target accounts we'd been cold-emailing for months. Gem found the intro paths and booked the meeting, even when the intro was two people away."}),e.jsxs("div",{className:"ci-quote-attr",children:[e.jsx("div",{className:"ci-quote-avatar","aria-hidden":"true",children:"M"}),e.jsxs("div",{className:"ci-quote-meta",children:[e.jsx("strong",{children:"Series B founder, B2B SaaS"}),"Gemphere connector"]})]})]})]})}),e.jsxs("div",{className:"ci-card-right",children:[e.jsxs("div",{className:"ci-card-right-labels",children:[e.jsx("span",{children:"Your side"}),e.jsx("span",{children:"~1 min · nothing to install"})]}),h?e.jsxs("div",{className:"ci-form-fields",children:[e.jsxs("p",{className:"ci-hero-sub",style:{textAlign:"left",margin:0},children:["You're signed in as ",e.jsx("strong",{children:(o==null?void 0:o.email)||I||"your account"}),". Accept to start sharing intro paths with ",l,"."]}),e.jsxs("div",{className:"ci-card-actions",children:[e.jsx("button",{type:"button",className:"ci-btn-primary",onClick:G,disabled:r,children:r?"Accepting…":`I'm in — accept ${l}'s invitation →`}),e.jsx("button",{type:"button",className:"ci-btn-ghost",onClick:()=>t("/"),disabled:r,children:"Not now"})]})]}):e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"ci-btn-primary",onClick:T,disabled:r,children:`I'm in — accept ${l}'s invitation →`}),e.jsxs("div",{className:"ci-actions-secondary",style:{marginTop:10},children:[e.jsx("button",{type:"button",className:"ci-btn-ghost",onClick:y,disabled:r,children:"Sign in instead"}),e.jsx("button",{type:"button",className:"ci-btn-ghost",onClick:()=>t("/"),disabled:r,children:"Not now"})]})]}),e.jsxs("div",{className:"ci-wa-note",children:[e.jsx("span",{className:"ci-wa-note-dot","aria-hidden":"true"}),e.jsx("span",{children:"Gem will text you on WhatsApp — no app, no dashboard to check. Gem never sees or shares your contacts — only that a path exists, and only where you allow it. Turn it off anytime."})]})]})]}),e.jsxs("section",{className:"ci-how",children:[e.jsxs("div",{className:"ci-how-head",children:[e.jsx("h2",{className:"ci-how-title",children:"How it works"}),e.jsx("span",{className:"ci-how-kicker",children:"Three steps"})]}),e.jsx("div",{className:"ci-how-grid",children:M.map(i=>e.jsxs("article",{className:"ci-how-step",children:[e.jsx("div",{className:"ci-how-num",children:i.num}),e.jsx("div",{className:"ci-how-step-title",children:i.title}),e.jsx("p",{className:"ci-how-step-desc",children:i.desc})]},i.num))})]}),e.jsx("p",{className:"ci-closing",children:"Being a connector is an offer, never an obligation. You'll only ever see the targets you actually have a path to."})]})})}export{X 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.