Files
synapse-app-mas/mas/share/assets/_account.sessions.index-ChqhRgNC.js
2025-12-01 08:14:13 -06:00

111 lines
6.6 KiB
JavaScript

import{u as v,b as f,j as s,k as m,T as U,ad as C,o as _,q as g,p as h,ae as L,l as j,af as $}from"./main-CiAhdYQG.js";import{c as q,b as k}from"./Heading-zTQC9Kqs.js";import{B as x}from"./ButtonLink-kWcKQZoZ.js";import{s as B,E as F,g as R,a as P}from"./EndOAuth2SessionButton-CPWjVtc_.js";import{b as D,F as M,E as K}from"./Filter-_9i8iQpA.js";import{p as u,L as y,D as w}from"./LastActive-D4SP35FS.js";import{R as S,L as b,H as N,N as T,C as E,M as I,I as d,A as O}from"./EndBrowserSessionButton-DXsnVcVV.js";import{S as z}from"./Separator-CVNE-7yB.js";import{L as G}from"./Link-Do_sTHM7.js";import"./_commonjsHelpers-DaWZu8wl.js";/* empty css */import"./computer-Cx9wZ7Nf.js";const H=m(`
fragment CompatSession_session on CompatSession {
id
createdAt
deviceId
finishedAt
lastActiveIp
lastActiveAt
humanName
...EndCompatSessionButton_session
userAgent {
name
os
model
deviceType
}
ssoLogin {
id
redirectUri
}
}
`),Q=({session:t})=>{const{t:n}=v(),e=f(H,t),o=e.humanName??(e.ssoLogin?.redirectUri?B(e.ssoLogin.redirectUri):void 0),c=e.userAgent?.deviceType??"UNKNOWN",i=e.userAgent?.model??(e.userAgent?.name?e.userAgent?.os?n("frontend.session.name_for_platform",{name:e.userAgent.name,platform:e.userAgent.os}):e.userAgent.name:n("frontend.session.unknown_device")),a=u(e.createdAt),r=e.lastActiveAt?u(e.lastActiveAt):void 0;return s.jsxs(S,{children:[s.jsxs(b,{to:"/sessions/$id",params:{id:e.id},disabled:!!e.finishedAt,children:[s.jsxs(N,{type:c,children:[s.jsx(T,{name:i}),o&&s.jsx(E,{name:o,logoUri:D(e.userAgent?.name??void 0)})]}),s.jsxs(I,{children:[r&&s.jsx(d,{label:n("frontend.session.last_active_label"),children:s.jsx(y,{lastActive:r})}),s.jsx(d,{label:n("frontend.session.signed_in_label"),children:s.jsx(w,{datetime:a})}),s.jsx(d,{label:n("frontend.session.device_id_label"),children:e.deviceId})]})]}),!e.finishedAt&&s.jsx(O,{children:s.jsx(F,{session:e,size:"sm"})})]})},W=m(`
fragment OAuth2Session_session on Oauth2Session {
id
scope
createdAt
finishedAt
lastActiveIp
lastActiveAt
humanName
...EndOAuth2SessionButton_session
userAgent {
name
model
os
deviceType
}
client {
id
clientId
clientName
applicationType
logoUri
}
}
`),V=t=>t==="WEB"?"PC":t==="NATIVE"?"MOBILE":"UNKNOWN",Y=({session:t})=>{const{t:n}=v(),e=f(W,t),o=R(e.scope),c=u(e.createdAt),i=e.lastActiveAt?u(e.lastActiveAt):void 0,a=(e.userAgent?.deviceType==="UNKNOWN"?null:e.userAgent?.deviceType)??V(e.client.applicationType),r=e.client.clientName||e.client.clientId,p=e.humanName??e.userAgent?.model??(e.userAgent?.name?e.userAgent?.os?n("frontend.session.name_for_platform",{name:e.userAgent.name,platform:e.userAgent.os}):e.userAgent.name:n("frontend.session.unknown_device"));return s.jsxs(S,{children:[s.jsxs(b,{to:"/sessions/$id",params:{id:e.id},disabled:!!e.finishedAt,children:[s.jsxs(N,{type:a,children:[s.jsx(T,{name:p}),s.jsx(E,{name:r,logoUri:e.client.logoUri??void 0})]}),s.jsxs(I,{children:[i&&s.jsx(d,{label:n("frontend.session.last_active_label"),children:s.jsx(y,{lastActive:i})}),s.jsx(d,{label:n("frontend.session.signed_in_label"),children:s.jsx(w,{datetime:c})}),o&&s.jsx(d,{label:n("frontend.session.device_id_label"),children:o})]})]}),!e.finishedAt&&s.jsx(O,{children:s.jsx(P,{session:e,size:"sm"})})]})},Z="_browser-sessions-overview_xlk0o_8",J={browserSessionsOverview:Z},X=m(`
fragment BrowserSessionsOverview_user on User {
id
browserSessions(first: 0, state: ACTIVE) {
totalCount
}
}
`),ee=({user:t})=>{const n=f(X,t),{t:e}=v();return s.jsxs("div",{className:J.browserSessionsOverview,children:[s.jsxs("div",{className:"flex flex-1 flex-col",children:[s.jsx(q,{children:e("frontend.browser_sessions_overview.heading")}),s.jsx(U,{children:e("frontend.browser_sessions_overview.body",{count:n.browserSessions.totalCount})})]}),s.jsx(G,{to:"/sessions/browsers",children:e("frontend.browser_sessions_overview.view_all_button")})]})},se=6,ne=m(`
query SessionsOverview {
viewer {
__typename
... on User {
id
...BrowserSessionsOverview_user
}
}
}
`),te=g({queryKey:["sessionsOverview"],queryFn:({signal:t})=>j({query:ne,signal:t})}),oe=m(`
query AppSessionsList(
$before: String
$after: String
$first: Int
$last: Int
$lastActive: DateFilter
) {
viewer {
__typename
... on User {
id
appSessions(
before: $before
after: $after
first: $first
last: $last
lastActive: $lastActive
state: ACTIVE
) {
edges {
cursor
node {
__typename
...CompatSession_session
...OAuth2Session_session
}
}
totalCount
pageInfo {
startCursor
endCursor
hasNextPage
hasPreviousPage
}
}
}
}
}
`),ie=(t,n)=>g({queryKey:["appSessionList",n,t],queryFn:({signal:e})=>j({query:oe,variables:{lastActive:n?{before:$()}:void 0,...t},signal:e})}),re=t=>{throw new Error(`Unknown session type: ${t}`)};function xe(){const{t}=v(),{inactive:n,pagination:e}=C.useLoaderDeps(),{data:{viewer:o}}=_(te);if(o.__typename!=="User")throw h();const{data:c}=_(ie(e,n));if(c.viewer.__typename!=="User")throw h();const i=c.viewer.appSessions,[a,r]=L(e,i.pageInfo,se),p=[...i.edges].reverse();return s.jsxs("div",{className:"flex flex-col gap-6",children:[s.jsx(k,{children:t("frontend.user_sessions_overview.heading")}),s.jsx(ee,{user:o}),s.jsx(z,{kind:"section"}),s.jsx("div",{className:"flex gap-2 justify-start items-center",children:s.jsx(M,{to:"/sessions",enabled:n,search:{inactive:n?void 0:!0},children:t("frontend.last_active.inactive_90_days")})}),p.map(l=>{const A=l.node.__typename;switch(A){case"Oauth2Session":return s.jsx(Y,{session:l.node},l.cursor);case"CompatSession":return s.jsx(Q,{session:l.node},l.cursor);default:return re(A)}}),i.totalCount===0&&s.jsx(K,{children:t(n?"frontend.user_sessions_overview.no_active_sessions.inactive_90_days":"frontend.user_sessions_overview.no_active_sessions.default")}),(r||a)&&s.jsxs("div",{className:"flex *:flex-1",children:[s.jsx(x,{kind:"secondary",size:"sm",disabled:!r,to:"/sessions",search:{inactive:n,...r||e},resetScroll:!0,children:t("common.previous")}),s.jsx("div",{}),s.jsx(x,{kind:"secondary",size:"sm",disabled:!a,to:"/sessions",search:{inactive:n,...a||e},resetScroll:!0,children:t("common.next")})]})]})}export{xe as component};
//# sourceMappingURL=_account.sessions.index-ChqhRgNC.js.map