UNPKG

@datalayer/core

Version:
34 lines (33 loc) 1.51 kB
import { jsx as _jsx } from "react/jsx-runtime"; /* * Copyright (c) 2023-2025 Datalayer, Inc. * Distributed under the terms of the Modified BSD License. */ import { useEffect } from 'react'; import { MemoryRouter, Routes, Route } from 'react-router-dom'; import { CenteredSpinner } from '../../components/display'; import { useIAMStore } from '../../state'; import { useToast, useIAM } from '../../hooks'; const ExternalTokenSilentLoginRoute = (props) => { const { message } = props; const { loginAndNavigate } = useIAM(); const { logout, checkIAMToken, externalToken } = useIAMStore(); const { enqueueToast } = useToast(); useEffect(() => { if (externalToken) { loginAndNavigate(externalToken, logout, checkIAMToken) .catch(error => { console.debug('Failed to login with the provided token.', error); enqueueToast('Failed to login with the provided token.', { variant: 'error' }); }) .finally(() => { enqueueToast('Runtimes are available.', { variant: 'success' }); }); } }, [externalToken]); return (_jsx(CenteredSpinner, { size: "small", message: message })); }; export const ExternalTokenSilentLogin = (props) => { return (_jsx(MemoryRouter, { initialEntries: ["/"], children: _jsx(Routes, { children: _jsx(Route, { path: "*", element: _jsx(ExternalTokenSilentLoginRoute, { ...props }) }) }) })); }; export default ExternalTokenSilentLogin;