PageSourceSearch

https://www.joiniscanet.com/_next/static/chunks/31818-819e2d14d17c2983.js

js joiniscanet.com collected 2026-09-24 14:15:07 UTC 8,097 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[31818],{14467:(e,t,n)=>{n.d(t,{default:()=>f});var o=n(95155),r=n(12115),s=n(84755),a=n(41585),i=n(73035),l=n(91958),c=n(72952),d=n(89239),u=n(42763),m=n(40980);let f=({showModal:e=!0,autoShow:t=!0,persistentMode:n=!1})=>{let{networkStatus:f,testConnectivity:p,isConnecting:w,clearNetworkErrors:h}=(0,c.h)(),[x,y]=(0,r.useState)(!1),[g,v]=(0,r.useState)(!1),[b,C]=(0,r.useState)(!1);(0,r.useEffect)(()=>{t&&e&&(f.isOnline?g&&f.isOnline&&(y(!1),C(!0),h(),setTimeout(()=>{C(!1),v(!1)},3e3)):(y(!0),v(!0)))},[f.isOnline,t,e,g,h]),(0,r.useEffect)(()=>{n&&f.isSlowConnection&&y(!0)},[n,f.isSlowConnection]);let k=async()=>{await p()},N=()=>{n||y(!1)},T=f.isOnline?f.isSlowConnection?{icon:(0,o.jsx)(a.A,{className:"h-12 w-12 text-yellow-500"}),title:"Slow Connection Detected",description:"Your internet connection appears to be slow. Some features may take longer to load or may not work properly.",bgColor:"bg-yellow-50",borderColor:"border-yellow-200",buttonText:"Test Connection",buttonVariant:"secondary"}:null:{icon:(0,o.jsx)(s.A,{className:"h-12 w-12 text-red-500"}),title:"You're Offline",description:"It looks like you've lost your internet connection. Some features may not work properly until you're back online.",bgColor:"bg-red-50",borderColor:"border-red-200",buttonText:"Try Again",buttonVariant:"destructive"};return b?(0,o.jsx)("div",{className:"fixed top-4 right-4 z-50 animate-in slide-in-from-right-full",children:(0,o.jsxs)("div",{className:"flex items-center gap-3 p-4 bg-green-50 border border-green-200 rounded-lg shadow-lg max-w-sm",children:[(0,o.jsx)(i.A,{className:"h-5 w-5 text-green-600"}),(0,o.jsxs)("div",{children:[(0,o.jsx)("p",{className:"text-sm font-medium text-green-800",children:"Back Online!"}),(0,o.jsx)("p",{className:"text-xs text-green-700",children:"Your connection has been restored."})]})]})}):T&&x?(0,o.jsx)(u.lG,{open:x,onOpenChange:N,children:(0,o.jsxs)(u.Cf,{className:(0,m.cn)("sm:max-w-md border-2",T.bgColor,T.borderColor),onPointerDownOutside:e=>{(n||!f.isOnline)&&e.preventDefault()},onEscapeKeyDown:e=>{(n||!f.isOnline)&&e.preventDefault()},children:[(0,o.jsxs)(u.c7,{className:"text-center",children:[(0,o.jsx)("div",{className:"flex justify-center mb-4",children:T.icon}),(0,o.jsx)(u.L3,{className:"text-xl font-semibold",children:T.title}),(0,o.jsx)(u.rr,{className:"text-center mt-2",children:T.description})]}),(0,o.jsxs)("div",{className:"flex flex-col gap-3 mt-6",children:[(0,o.jsx)(d.$,{onClick:k,disabled:w,variant:T.buttonVariant,className:"w-full",children:w?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(l.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Testing Connection..."]}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(l.A,{className:"mr-2 h-4 w-4"}),T.buttonText]})}),!n&&f.isOnline&&(0,o.jsx)(d.$,{onClick:N,variant:"ghost",className:"w-full",children:"Continue Anyway"})]}),(0,o.jsxs)("div",{className:"mt-4 p-3 bg-white/50 rounded-lg",children:[(0,o.jsx)("h4",{className:"text-sm font-medium mb-2",children:"While you're offline:"}),(0,o.jsxs)("ul",{className:"text-xs space-y-1 text-gray-600",children:[(0,o.jsx)("li",{children:"• Some features may not work properly"}),(0,o.jsx)("li",{children:"• Changes might not be saved automatically"}),(0,o.jsx)("li",{children:"• Real-time updates will be paused"}),(0,o.jsx)("li",{children:"• We'll retry automatically when you're back online"})]})]}),!1]})}):null}},20280:(e,t,n)=>{n.d(t,{dj:()=>u,oR:()=>d});var o=n(12115);let r=0,s=new Map,a=e=>{if(s.has(e))return;let t=setTimeout(()=>{s.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);s.set(e,t)},i=[],l={toasts:[]};function c(e){l=((e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:n}=t;return n?a(n):e.toasts.forEach(e=>{a(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===n||void 0===n?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}}
1)(l,e),i.forEach(e=>{e(l)})}function d({...e}){let t=(r=(r+1)%Number.MAX_SAFE_INTEGER).toString(),n=()=>c({type:"DISMISS_TOAST",toastId:t});return c({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:e=>{e||n()}}}),{id:t,dismiss:n,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:t}})}}function u(){let[e,t]=o.useState(l);return o.useEffect(()=>(i.push(t),()=>{let e=i.indexOf(t);e>-1&&i.splice(e,1)}),[e]),{...e,toast:d,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},72952:(e,t,n)=>{n.d(t,{NetworkProvider:()=>a,h:()=>i});var o=n(95155),r=n(12115);let s=(0,r.createContext)(void 0),a=({children:e})=>{let t=(()=>{let[e,t]=(0,r.useState)({isOnline:"u"<typeof navigator||navigator.onLine,isSlowConnection:!1,connectionType:"unknown",effectiveType:"unknown",downlink:0,rtt:0}),[n,o]=(0,r.useState)([]),[s,a]=(0,r.useState)(!1),i=(0,r.useCallback)(()=>{if("u"<typeof navigator)return;let e=navigator.connection||navigator.mozConnection||navigator.webkitConnection,n={isOnline:navigator.onLine,isSlowConnection:!1,connectionType:e?.type||"unknown",effectiveType:e?.effectiveType||"unknown",downlink:e?.downlink||0,rtt:e?.rtt||0};e&&(n.isSlowConnection="slow-2g"===e.effectiveType||"2g"===e.effectiveType||e.downlink<.5||e.rtt>2e3),t(n)},[]),l=(0,r.useCallback)(e=>{let t={...e,id:`${Date.now()}-${Math.random().toString(36).substr(2,9)}`,timestamp:new Date};return o(e=>[t,...e].slice(0,10)),t.id},[]),c=(0,r.useCallback)(e=>{o(t=>t.filter(t=>t.id!==e))},[]),d=(0,r.useCallback)(()=>{o([])},[]),u=(0,r.useCallback)(async()=>{if(!navigator.onLine)return!1;a(!0);try{let e=new AbortController,t=setTimeout(()=>e.abort(),5e3),n=await fetch("/api/health-check",{method:"HEAD",signal:e.signal,cache:"no-cache"});return clearTimeout(t),a(!1),n.ok}catch(e){return a(!1),e instanceof Error&&"AbortError"===e.name?l({message:"Connection timeout - please check your internet connection",type:"timeout",retryCount:0}):l({message:"Network connectivity test failed",type:"network",retryCount:0}),!1}},[l]);return(0,r.useEffect)(()=>{let e=()=>{i(),u()},t=()=>{i(),l({message:"You are currently offline. Please check your internet connection.",type:"network",retryCount:0})},n=()=>{i()};i(),window.addEventListener("online",e),window.addEventListener("offline",t);let o=navigator.connection||navigator.mozConnection||navigator.webkitConnection;return o&&o.addEventListener("change",n),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",t),o&&o.removeEventListener("change",n)}},[i,l,u]),{networkStatus:e,networkErrors:n,isConnecting:s,addNetworkError:l,removeNetworkError:c,clearNetworkErrors:d,testConnectivity:u,hasNetworkIssues:!e.isOnline||e.isSlowConnection,hasActiveErrors:n.length>0}})();return(0,o.jsx)(s.Provider,{value:t,children:e})},i=()=>{let e=(0,r.useContext)(s);if(void 0===e)throw Error("useNetwork must be used within a NetworkProvider");return e}},81477:(e,t,n)=>{n.d(t,{BT:()=>c,Wu:()=>d,ZB:()=>l,Zp:()=>a,aR:()=>i,wL:()=>u});var o=n(95155),r=n(12115),s=n(40980);let a=r.forwardRef(({className:e,...t},n)=>(0,o.jsx)("div",{ref:n,className:(0,s.cn)("rounded-xl border bg-card text-card-foreground shadow",e),...t}));a.displayName="Card";let i=r.forwardRef(({className:e,...t},n)=>(0,o.jsx)("div",{ref:n,className:(0,s.cn)("flex flex-col space-y-1.5 p-6",e),...t}));i.displayName="CardHeader";let l=r.forwardRef(({className:e,...t},n)=>(0,o.jsx)("h3",{ref:n,className:(0,s.cn)("font-semibold leading-none tracking-tight",e),...t}));l.displayName="CardTitle";let c=r.forwardRef(({className:e,...t},n)=>(0,o.jsx)("p",{ref:n,className:(0,s.cn)("text-sm text-muted-foreground",e),...t}));c.displayName="CardDescription";let d=r.forwardRef(({className:e,...t},n)=>(0,o.jsx)("div",{ref:n,className:(0,s.cn)("p-6 pt-0",e),...t}));d.displayName="CardContent";let u=r.forwardRef(({className:e,...t},n)=>(0,o.jsx)("div",{ref:n,className:(0,s.cn)("flex items-center p-6 pt-0",e),...t}));u.displayName="CardFooter"}}]);

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.