@state-less/leap-frontend
Version:
A collection of open source fullstack services powered by React Server
24 lines (23 loc) • 911 B
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { Alert } from '@mui/material';
import { useComponent } from '@state-less/react-client';
export const ServerSession = ({ ssr }) => {
const [component, { error, loading }] = useComponent('session', {
suspend: true,
ssr,
});
if (loading)
return _jsx(Alert, { severity: "info", children: "Loading..." });
if (error)
return _jsx(Alert, { severity: "error", children: error.message });
return (_jsx(Alert, { severity: "success", children: `Currently logged in on the server as ${sessionInfo(component.props.session)}` }));
};
export const googleInfo = (session) => {
return `${session.strategies.google.decoded.name} (${session.strategies.google.decoded.email})`;
};
const handler = {
google: googleInfo,
};
export const sessionInfo = (session) => {
return handler[session.strategy](session);
};