@datalayer/core
Version:
**Datalayer Core**
34 lines (33 loc) • 1.51 kB
JavaScript
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;