'use client'; import React, { useCallback, useEffect, useState } from 'react'; import { kratos } from '@/ory'; import { Session } from '@ory/client'; import SessionItem from '@/components/sessionItem'; import { Separator } from '@/components/ui/separator'; export default function AccountSessions() { const [current, setCurrent] = useState(); const [sessions, setSessions] = useState(); const invalidateSession = useCallback(async (id: string) => { console.log('Disabling session with id', id); kratos.disableMySession({ id: id }) .then(() => console.log('Disabled session with id', id)) .catch(() => console.error('Error while disabling session with id', id)) .finally(() => { loadSessions().then((response) => { setCurrent(response.current); setSessions(response.sessions); }); }); }, []); const loadSessions = useCallback(async () => { console.log('Refreshing sessions'); const current = await kratos.toSession(); const sessions = await kratos.listMySessions(); console.log(current.data); console.log(sessions.data); return { current: current.data, sessions: sessions.data, }; }, []); useEffect(() => { loadSessions().then(response => { setCurrent(response.current); setSessions(response.sessions); }); }, []); return (
{ current ? : <> } { sessions && sessions.length > 0 ? : <> } { sessions?.map(item => { return ( ); }) }
); }