PageSourceSearch

https://scamsense.app/assets/InviteAcceptPage-Ckwo7d56.js

js scamsense.app collected 2026-09-24 14:32:30 UTC 3,680 bytes, 1 lines download raw bytes

1import{g as M}from"./guardian-r5Oia3Ie.js";import{_ as V,C as A,M as E,o as P,E as n,F as e,G as p,I as l,R as g,H as m,J as f,L as B,r as o,K as z,D as i}from"./index-CAYqMjXo.js";const H={class:"ia-page"},K={class:"ia-card"},R={class:"ia-hint"},T={class:"ia-desc"},q=["src"],D={class:"ia-desc"},F={class:"ia-name"},G={class:"ia-circle-name"},L=["disabled"],$={key:0,class:"ia-btn-spinner"},J={class:"ia-desc"},O={key:0,class:"ia-pwa-prompt"},b="ss_invite_token",Y={__name:"InviteAcceptPage",setup(j){const k=B(),d=z(),I=A(),w=E(),t=o("loading"),_=o("驗證邀請連結中…"),r=o(""),u=o(!1),v=o({adminName:"",circleName:""}),c=o(""),y=o(!1);function N(){return window.matchMedia("(display-mode: standalone)").matches||window.navigator.standalone===!0}P(async()=>{if(c.value=k.query.token||localStorage.getItem(b)||"",!c.value){r.value="連結已失效或格式錯誤,請重新取得邀請連結。",t.value="error";return}if(!I.isLoggedIn){localStorage.setItem(b,c.value),d.replace({path:"/login",query:{redirect:"invite"}});return}localStorage.removeItem(b),await h()});async function h(){const s=await w.fetchInviteInfo({token:c.value});s.success?(v.value=s.data,t.value="confirm"):(r.value=s.error??"邀請連結已失效,請聯絡守護圈管理員重新產生。",t.value="error")}
1async function C(){u.value=!0;try{const s=await w.acceptInvite({token:c.value});s.success?(t.value="success",y.value=!N()):(r.value=s.error??"加入失敗,請稍後再試。",t.value="error")}catch(s){r.value=(s==null?void 0:s.message)??"加入失敗,請稍後再試。",t.value="error"}finally{u.value=!1}}function S(){d.replace("/guardian")}return(s,a)=>(i(),n("div",H,[e("div",K,[t.value==="loading"?(i(),n(p,{key:0},[a[2]||(a[2]=e("div",{class:"ia-spinner"},null,-1)),e("p",R,l(_.value),1)],64)):t.value==="error"?(i(),n(p,{key:1},[a[3]||(a[3]=e("div",{class:"ia-icon ia-icon--error"},"!",-1)),a[4]||(a[4]=e("h2",{class:"ia-title"},"邀請連結無效",-1)),e("p",T,l(r.value),1),e("button",{class:"ia-btn ia-btn--secondary",onClick:a[0]||(a[0]=x=>g(d).replace("/"))}," 返回首頁 ")],64)):t.value==="confirm"?(i(),n(p,{key:2},[e("img",{src:g(M),class:"ia-img",alt:""},null,8,q),a[6]||(a[6]=e("h2",{class:"ia-title"},"守護圈邀請",-1)),e("p",D,[e("strong",F,l(v.value.adminName),1),a[5]||(a[5]=m(" 邀請您一同守護家庭安全,是否加入? ",-1))]),e("p",G,"守護圈:"+l(v.value.circleName),1),e("button",{class:"ia-btn ia-btn--primary",disabled:u.value,onClick:C},[u.value?(i(),n("span",$)):f("",!0),e("span",null,l(u.value?"加入中…":"確認加入"),1)],8,L),e("button",{class:"ia-btn ia-btn--ghost",onClick:a[1]||(a[1]=x=>g(d).replace("/"))}," 暫不加入 ")],64)):t.value==="success"?(i(),n(p,{key:3},[a[10]||(a[10]=e("div",{class:"ia-icon ia-icon--success"},"✓",-1)),a[11]||(a[11]=e("h2",{class:"ia-title"},"已送出加入申請!",-1)),e("p",J,[m(" 請等候 "+l(v.value.circleName)+" 的守護者確認",1),a[7]||(a[7]=e("br",null,null,-1)),a[8]||(a[8]=m("通過後就會正式加入 ",-1))]),e("button",{class:"ia-btn ia-btn--primary",onClick:S}," 我知道了 "),y.value?(i(),n("div",O,[...a[9]||(a[9]=[e("div",{class:"ia-pwa-icon"},[e("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 14H9V8h2v8zm4 0h-2V8h2v8z",fill:"currentColor"})])],-1),e("div",{class:"ia-pwa-text"},[e("strong",null,"接收即時推播通知"),e("br"),m(" 點擊瀏覽器選單「加入主畫面」,即可使用桌面 App 接收即時推播通知! ")],-1)])])):f("",!0)],64)):f("",!0)])]))}},W=V(Y,[["__scopeId","data-v-2a64c6b6"]]);export{W 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.