PageSourceSearch

https://scframework.org/_next/static/chunks/4102-181e006b3d00b338.js

js scframework.org collected 2026-10-02 02:05:06 UTC 7,495 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4102],{94102:(e,t,i)=>{i.d(t,{A:()=>g});var n=i(95155),a=i(15298),r=i(64577),s=i(9005),o=i(92571),l=i(86272),d=i(64962),c=i(1275),u=i(12115),m=i(96120),h=i(9339);let p=(0,h.createServerReference)("405636ef11db0dd2d5d65ab3398240c53425ba2101",h.callServer,void 0,h.findSourceMapURL,"respondToSpaceInvitation"),f={en:{title:"Notifications",onboarding:"Finish your onboarding",onboardingBody:"Complete your profile and first community actions.",dismiss:"Dismiss",read:"Mark as read",empty:"Nothing new for now.",progress:"complete",readAll:"Read all",open:"Open",activeJobs:"AI generation in progress",waitingReview:"Waiting for your review"},fr:{title:"Notifications",onboarding:"Terminer votre onboarding",onboardingBody:"Compl\xe9tez votre profil et vos premi\xe8res actions communautaires.",dismiss:"Ignorer",read:"Marquer comme lu",empty:"Rien de nouveau pour le moment.",progress:"termin\xe9",readAll:"Tout marquer comme lu",open:"Ouvrir",activeJobs:"G\xe9n\xe9ration IA en cours",waitingReview:"En attente de votre v\xe9rification"}};function g({open:e,onClose:t,locale:i="en",initialNotifications:h=null,initialOnboarding:b=null,onAttentionCountChange:x=null}){let j=f[i]||f.en,[w,_]=(0,u.useState)(h||[]),[v,y]=(0,u.useState)(b||[]),[N,S]=(0,u.useState)(null===h),[C,A]=(0,u.useState)(!1),[I,k]=(0,u.useState)(""),[z,D]=(0,u.useState)([]),M=(0,u.useRef)(new Set),R=v.filter(e=>e.complete).length;async function q(){let e=w.filter(e=>!e.read_at),t=e.map(e=>e.id);if(!t.length)return;let i=new Date().toISOString();t.forEach(e=>M.current.add(e)),_(e=>e.filter(e=>!t.includes(e.id))),x?.({unread:0,onboardingIncomplete:R<v.length});let{error:n}=await (0,m.createClient)().from("user_notifications").update({read_at:i}).in("id",t);n&&(t.forEach(e=>M.current.delete(e)),_(i=>[...e,...i.filter(e=>!t.includes(e.id))].sort((e,t)=>new Date(t.created_at)-new Date(e.created_at))),x?.({unread:e.length,onboardingIncomplete:R<v.length}))}async function E(e){let t=w.find(t=>t.id===e);M.current.add(e),_(t=>t.filter(t=>t.id!==e));let i=w.filter(t=>t.id!==e).length;x?.({unread:i,onboardingIncomplete:R<v.length});let{error:n}=await (0,m.createClient)().from("user_notifications").update({read_at:new Date().toISOString()}).eq("id",e);n&&(M.current.delete(e),t&&_(i=>[t,...i.filter(t=>t.id!==e)]),x?.({unread:i+ +!!t,onboardingIncomplete:R<v.length}))}async function J(e){let t=w.find(t=>t.id===e);M.current.add(e),_(t=>t.filter(t=>t.id!==e));let i=w.filter(t=>t.id!==e&&!t.read_at).length;x?.({unread:i,onboardingIncomplete:R<v.length});let{error:n}=await (0,m.createClient)().from("user_notifications").update({dismissed_at:new Date().toISOString()}).eq("id",e);n&&(M.current.delete(e),t&&_(i=>[t,...i.filter(t=>t.id!==e)]),x?.({unread:i+(t&&!t.read_at?1:0),onboardingIncomplete:R<v.length}))}async function O(e,t){e.preventDefault(),await E(t.id),window.location.assign(t.href)}async function P(e,t){let i=e.metadata?.invitation_id;if(!i)return;k(e.id);let n=await p({invitationId:i,accept:t});k(""),n.ok&&(await J(e.id),t&&window.location.reload())}if((0,u.useEffect)(()=>{if(!e)return;let t=!1;async function i(e=!1){e||S(!0);let n=(0,m.createClient)(),[{data:a},{data:r},{data:s}]=await Promise.all([n.from("user_notifications").select("id, notification_type, actor_name, title, body, href, metadata, read_at, created_at").is("read_at",null).is("dismissed_at",null).order("created_at",{ascending:!1}).limit(30),n.rpc("get_my_onboarding"),n.from("space_database_generation_runs").select("id,status,current_stage,progress,progress_label,metadata,created_at,updated_at").in("status",["queued","running","review"]).order("updated_at",{ascending:!1}).limit(8)]);if(t)return;let o=(a||[]).filter(e=>!M.current.has(e.id)),l=Array.isArray(r)?r:[];_(o),y(l),D(s||[]),S(!1),x?.({unread:o.filter(e=>!e.read_at).length,onboardingIncomplete:l.some(e=>!e.complete)})}i();let n=window.setInterval(()=>i(!0),5e3);return()=>{t=!0,window.clearInterval(n)}},[x,e]),!e)return null;let T=w.filter(e=>!e.read_at).length;return(0,n.jsx)("div",{className:"notification-drawer-backdrop",role:"presentation",onClick:t,children:(0,n.jsxs)("aside",{className:"notification-drawer",role:"dialog","aria-modal":"true","aria-label":j.title,onClick:e=>e.stopPropagation(),children:[(0,n.jsxs)("header",{children:[(0,n.jsxs)("div",{children:[(0,n.jsx)(a.A,{size:17}),(0,n.jsx)("h2",{children:j.title})]}),(0,n.jsxs)("div",{className:"notification-header-actions",children:[T?(0,n.jsxs)("button",{className:"notification-read-all",type:"button",onClick:q,children:[(0,n.jsx)(r.A,{size:14}),j.readAll]}):null,(0,n.jsx)("button",{type:"button",onClick:t,"aria-label":"Close",children:(0,n.jsx)(s.A,{size:18})})]})]}),(0,n.jsxs)("div",{className:"notification-drawer-list",children:[N?(0,n.jsx)("p",{className:"notification-loading",children:(0,n.jsx)(o.A,{className:"is-spinning",size:16})}):null,z.length?(0,n.jsxs)("section",{className:"notification-jobs","aria-label":j.activeJobs,children:[(0,n.jsxs)("h3",{children:[(0,n.jsx)(l.A,{size:14}),j.activeJobs]}),z.map(e=>(0,n.jsxs)("a",{className:"notification-job",href:`${e.metadata?.spaceHref||"/spaces"}${(e.metadata?.spaceHref||"").includes("?")?"&":"?"}generation=${encodeURIComponent(e.id)}`,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("strong",{children:"review"===e.status?j.waitingReview:e.progress_label}),(0,n.jsxs)("span",{children:[Math.max(0,Math.min(100,Number(e.progress||0))),"%"]})]}),(0,n.jsx)("div",{className:"notification-job-progress",role:"progressbar","aria-valuemin":"
10","aria-valuemax":"100","aria-valuenow":e.progress||0,children:(0,n.jsx)("i",{style:{width:`${Math.max(0,Math.min(100,Number(e.progress||0)))}%`}})})]},e.id))]}):null,!C&&v.length&&R<v.length?(0,n.jsxs)("article",{className:"notification-item is-onboarding",children:[(0,n.jsx)(d.A,{size:18}),(0,n.jsxs)("div",{children:[(0,n.jsx)("strong",{children:j.onboarding}),(0,n.jsx)("p",{children:j.onboardingBody}),(0,n.jsxs)("span",{children:[R,"/",v.length," ",j.progress]}),(0,n.jsxs)("a",{href:"/account?section=onboarding",children:["Open onboarding ",(0,n.jsx)(c.A,{size:12})]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>A(!0),children:j.dismiss})]}):null,w.map(e=>{var t;return(0,n.jsxs)("article",{className:"notification-item",children:[(0,n.jsx)("span",{className:"notification-dot"}),(0,n.jsxs)("div",{children:[(0,n.jsx)("strong",{children:e.title}),(0,n.jsx)("p",{children:e.body}),(0,n.jsx)("time",{children:(t=e.created_at,t?new Intl.DateTimeFormat(i,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t)):"")}),"space_invitation"===e.notification_type?(0,n.jsxs)("div",{className:"notification-invite-actions",children:[(0,n.jsx)("button",{type:"button",disabled:I===e.id,onClick:()=>P(e,!0),children:"Accept"}),(0,n.jsx)("button",{type:"button",disabled:I===e.id,onClick:()=>P(e,!1),children:"Decline"})]}):e.href?(0,n.jsxs)("a",{href:e.href,onClick:t=>O(t,e),children:[j.open," ",(0,n.jsx)(c.A,{size:12})]}):null]}),(0,n.jsx)("button",{type:"button",onClick:()=>E(e.id),children:j.read})]},e.id)}),N||z.length||w.length||!C&&R!==v.length?null:(0,n.jsx)("p",{className:"account-empty-hint",children:j.empty})]})]})})}},94293:(e,t,i)=>{i.d(t,{Mh:()=>n,rh:()=>a});let n="https://wdhwmpcazxgmxzfpjmqr.supabase.co",a="sb_publishable_PtJtd4dSut12JPQY2dAbSQ_U5yA7xSs"},96120:(e,t,i)=>{let n;i.d(t,{createClient:()=>s});var a=i(80903),r=i(94293);function s(){return n||(n=(0,a.k)(r.Mh,r.rh)),n}}}]);

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.