veza/apps/web/dist_verification/assets/SessionsPage-Bf46A7Ge.js

2 lines
9.9 KiB
JavaScript
Raw Normal View History

import{a as r,j as s}from"./vendor-react-yWUy5XPk.js";import{C as S}from"./confirmation-dialog-DS4X89Bi.js";import{g as y,p as b,l as N,B as A,L,k as C,C as E,b as I,d as M,e as F,f as O,S as m}from"./index-CYK_b1Uz.js";import{aw as U,G as B,ac as z,i as $,au as G,ax as H,ay as Y,at as q,W as J}from"./vendor-icons-DJFb1Tiw.js";import"./vendor-CveO81sn.js";import"./vendor-security-DsrNJhpn.js";import"./vendor-router-BNNHboN9.js";import"./vendor-tanstack-kPY9uK0s.js";import"./vendor-http-Cz8wfb0q.js";import"./vendor-utils-DtoSyhX2.js";import"./vendor-motion-B3XPS3Jc.js";import"./vendor-i18n-CMcqpBLz.js";function V(e){const i=e.toLowerCase(),t={deviceType:"unknown",os:"Unknown",browser:"Unknown"};if(i.includes("mobile")||i.includes("android")||i.includes("iphone")?t.deviceType="mobile":i.includes("tablet")||i.includes("ipad")?t.deviceType="tablet":t.deviceType="desktop",i.includes("windows")){t.os="Windows";const a=i.match(/windows nt (\d+\.\d+)/);if(a){const n=a[1];n==="10.0"?t.osVersion="10":n==="6.3"?t.osVersion="8.1":n==="6.2"?t.osVersion="8":n==="6.1"?t.osVersion="7":t.osVersion=n}}else if(i.includes("mac os x")||i.includes("macintosh")){t.os="macOS";const a=i.match(/mac os x (\d+[._]\d+)/);a?.[1]&&(t.osVersion=a[1].replace("_","."))}else if(i.includes("linux"))t.os="Linux";else if(i.includes("android")){t.os="Android";const a=i.match(/android (\d+\.\d+)/);a&&(t.osVersion=a[1])}else if(i.includes("ios")||i.includes("iphone")||i.includes("ipad")){t.os="iOS";const a=i.match(/os (\d+[._]\d+)/);a?.[1]&&(t.osVersion=a[1].replace("_","."))}if(i.includes("edg/")){t.browser="Microsoft Edge";const a=i.match(/edg\/(\d+\.\d+)/);a&&(t.browserVersion=a[1])}else if(i.includes("chrome/")&&!i.includes("edg/")){t.browser="Chrome";const a=i.match(/chrome\/(\d+\.\d+)/);a&&(t.browserVersion=a[1])}else if(i.includes("firefox/")){t.browser="Firefox";const a=i.match(/firefox\/(\d+\.\d+)/);a&&(t.browserVersion=a[1])}else if(i.includes("safari/")&&!i.includes("chrome/")){t.browser="Safari";const a=i.match(/version\/(\d+\.\d+)/);a&&(t.browserVersion=a[1])}else if(i.includes("opera/")||i.includes("opr/")){t.browser="Opera";const a=i.match(/(?:opera|opr)\/(\d+\.\d+)/);a&&(t.browserVersion=a[1])}if(i.includes("iphone"))i.match(/iphone\s+os\s+(\d+[._]\d+)/)&&(t.deviceModel="iPhone");else if(i.includes("ipad"))t.deviceModel="iPad";else if(i.includes("android")){const a=i.match(/android.*?;\s*([^)]+)\)/);a?.[1]&&(t.deviceModel=a[1].trim())}return t}function K(e){const i=[];return e.deviceModel&&i.push(e.deviceModel),i.push(e.os),e.osVersion&&i.push(e.osVersion),i.push(e.browser),e.browserVersion&&i.push(e.browserVersion),i.join(" • ")}function Q(e){if(!e)return"Unknown location";const i=[];return e.city&&i.push(e.city),e.region&&i.push(e.region),e.country&&i.push(e.country),i.length>0?i.join(", "):"Unknown location"}function X(e){return e==="127.0.0.1"||e==="localhost"||e.startsWith("192.168.")||e.startsWith("10.")||e.startsWith("172.16.")||e.startsWith("172.17.")||e.startsWith("172.18.")||e.startsWith("172.19.")||e.startsWith("172.20.")||e.startsWith("172.21.")||e.startsWith("172.22.")||e.startsWith("172.23.")||e.startsWith("172.24.")||e.startsWith("172.25.")||e.startsWith("172.26.")||e.startsWith("172.27.")||e.startsWith("172.28.")||e.startsWith("172.29.")||e.startsWith("172.30.")||e.startsWith("172.31.")}function Z(e){const[i,t]=r.useState(e?.initialSessions??[]),[a,n]=r.useState(e?.isLoading??!0),[g,h]=r.useState(null),[p,j]=r.useState(!1),[w,c]=r.useState(null),[d,f]=r.useState(null),[k,x]=r.useState(!1),o=r.useCallback(async()=>{try{n(!0),c(null);const l=await y.get("/auth/sessions");t(l.data.sessions)}catch(l){const u=b(l);N.error("Failed to fetch sessions",{message:u.message}),c(u.message)}finally{n(!1)}},[]);r.useEffect(()=>{if(e?.initialSessions!==void 0){t(e.initialSessions),n(!1);return}if(e?.isLoading===!0){n(!0);return}o()},[o,e?.initialSessions,e?.isLoading]);const v=r.useCallback(l=>{f(l)},[]),W=r.useCallback(async()=>{if(d)try{h(d),c(null),await y.delete(`/auth/sessions/${d}`),await o(),f(null)}catch(l){const u=b(l);N.error("Faile