@entur-partner/app-shell 4.0.0 → 5.0.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell.esm.js","sources":["../src/authReducer.tsx","../src/Auth.tsx","../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MicroFrontendLink.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/OrganisationSelector.tsx"],"sourcesContent":["import { User } from '@entur-partner/micro-frontend';\n\nexport type AuthStatus =\n | 'AUTHENTICATING'\n | 'AUTHENTICATED'\n | 'NOT_AUTHENTICATED'\n | 'ERROR';\n\nexport type AuthState =\n | {\n status: AuthStatus;\n user?: User;\n error?: Error;\n }\n | {\n status: 'AUTHENTICATED';\n user: User;\n }\n | {\n status: 'ERROR';\n error: Error;\n };\n\ntype AuthEvent =\n | {\n type: 'AUTHENTICATED';\n data: {\n user: User;\n };\n }\n | {\n type: 'LOGOUT';\n }\n | {\n type: 'ERROR';\n error: Error;\n }\n | {\n type: 'NOT_AUTHENTICATED';\n };\n\nconst initialState: AuthState = {\n status: 'AUTHENTICATING',\n};\n\nexport function authReducer(state: AuthState, event: AuthEvent): AuthState {\n switch (event.type) {\n case 'AUTHENTICATED':\n return {\n status: 'AUTHENTICATED',\n user: event.data.user,\n };\n case 'LOGOUT':\n return initialState;\n case 'ERROR':\n return {\n error: event.error,\n status: 'ERROR',\n };\n case 'NOT_AUTHENTICATED':\n return {\n ...state,\n status: 'NOT_AUTHENTICATED',\n };\n default:\n return state;\n }\n}\n","import React, { FC, useState, useEffect, useContext, useReducer } from 'react';\nimport createAuth0Client, {\n Auth0ClientOptions,\n Auth0Client,\n GetTokenSilentlyOptions,\n} from '@auth0/auth0-spa-js';\nimport { User } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { authReducer, AuthState, AuthStatus } from './authReducer';\nimport { Auth0User, DecorateUserFn } from './UserTypes';\n\nconst POST_LOGIN_ROUTE_KEY = '@entur-partner:post-login-route';\nconst LOGIN_LAST_RETRY = '@entur-partner:last-login-retry';\n\nconst redirect = (pathname = '/') =>\n window.history.replaceState({}, document.title, pathname); // TODO: replace with react-router history\n\ninterface AuthContextType {\n status: AuthStatus;\n user?: User;\n error?: Error;\n logout: () => void;\n login: (redirectUri?: string) => void;\n getToken: () => Promise<string>;\n auth0Client?: Auth0Client;\n}\n\nexport const Auth0Context = React.createContext<AuthContextType | undefined>(\n undefined\n);\n\nexport const useAuth = () => {\n const auth = useContext(Auth0Context);\n assertIsDefined(\n auth,\n 'A `<Auth0Provider>` component needs to be higher up in the component hierarchy.'\n );\n return auth;\n};\n\nconst initialState: AuthState = {\n status: 'AUTHENTICATING',\n};\n\ninterface AuthProviderProps extends Auth0ClientOptions {\n decorateUser: DecorateUserFn;\n}\nexport const AuthProvider: FC<AuthProviderProps> = ({\n children,\n decorateUser,\n ...initOptions\n}) => {\n const [state, dispatch] = useReducer(authReducer, initialState);\n const [auth0Client, setAuth0] = useState<Auth0Client | undefined>();\n\n useEffect(() => {\n const initAuth0 = async () => {\n const client = await createAuth0Client(initOptions);\n setAuth0(client);\n\n if (window.location.search.includes('code=')) {\n await client.handleRedirectCallback();\n const route = localStorage.getItem(POST_LOGIN_ROUTE_KEY);\n localStorage.removeItem(POST_LOGIN_ROUTE_KEY);\n const postLoginRoute = route || '/';\n redirect(postLoginRoute);\n }\n\n const isAuthenticated = await client.isAuthenticated();\n\n if (isAuthenticated) {\n const auth0User = (await client.getUser()) as Auth0User;\n const token = await client.getTokenSilently();\n const user = await decorateUser(auth0User, token);\n\n dispatch({ type: 'AUTHENTICATED', data: { user } });\n } else {\n dispatch({ type: 'NOT_AUTHENTICATED' });\n }\n };\n\n initAuth0().catch(async (error) => {\n try {\n const lastRetryEpochSeconds = parseInt(\n localStorage.getItem(LOGIN_LAST_RETRY) ?? '0'\n );\n const nowEpochSeconds = Math.floor(Date.now() / 1000);\n const timeSinceLastRetry = nowEpochSeconds - lastRetryEpochSeconds;\n const minimumTimeForRetry = 120;\n\n // Has there been more than x seconds since last retry?\n if (timeSinceLastRetry >= minimumTimeForRetry) {\n localStorage.setItem(LOGIN_LAST_RETRY, nowEpochSeconds.toString());\n redirect('/');\n await initAuth0();\n } else {\n throw error;\n }\n } catch {\n dispatch({ type: 'ERROR', error });\n }\n });\n // eslint-disable-next-line\n }, []);\n\n const logout = () => {\n assertIsDefined(auth0Client);\n const { protocol, hostname, port } = window.location;\n auth0Client.logout({\n returnTo: `${protocol}//${hostname}:${port}`,\n });\n };\n\n const login = async (redirectUri = window.location.origin) => {\n assertIsDefined(auth0Client);\n\n const { location } = window;\n localStorage.setItem(\n POST_LOGIN_ROUTE_KEY,\n `${location.pathname}${location.search}`\n );\n auth0Client.loginWithRedirect({\n redirect_uri: redirectUri,\n });\n };\n\n const getToken = async (options?: GetTokenSilentlyOptions) => {\n assertIsDefined(auth0Client);\n return auth0Client.getTokenSilently(options);\n };\n\n return (\n <Auth0Context.Provider\n value={{\n ...state,\n auth0Client,\n logout,\n getToken,\n login,\n }}\n >\n {children}\n </Auth0Context.Provider>\n );\n};\n","import React from 'react';\nimport { Environment, getColorForEnvironment } from '@entur-partner/common';\n\ntype EnvironmentBannerProps = {\n environment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n return (\n <div\n className=\"epp-environment-banner\"\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: 0,\n left: 0,\n right: 0,\n width: '100vw',\n height: '16px',\n backgroundColor: getColorForEnvironment(environment),\n }}\n />\n );\n};\n","import React, { FC, ReactNode, useEffect } from 'react';\nimport { Loader } from '@entur/loader';\nimport { BannerAlertBox } from '@entur/alert';\nimport { space } from '@entur/tokens';\nimport { Paragraph, Link, CodeText } from '@entur/typography';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\nimport { User } from '@entur-partner/micro-frontend';\nimport { assertIsDefined } from '@entur-partner/util';\nimport { Environment } from '@entur-partner/common';\n\nimport { AuthProvider, useAuth } from './Auth';\nimport { DecorateUserFn } from './UserTypes';\nimport { EnvironmentBanner } from './EnvironmentBanner';\n\nexport interface AppShellValues {\n logout: () => void;\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n redirectUri?: string;\n children: (options: AppShellValues) => ReactNode;\n}\n\nconst Login: FC<{ redirectUri?: string }> = ({ redirectUri }) => {\n const { login } = useAuth();\n useEffect(() => {\n login(redirectUri);\n }, [login, redirectUri]);\n return null;\n};\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, redirectUri }) => {\n const { status, user, error, logout, getToken } = useAuth();\n\n switch (status) {\n case 'NOT_AUTHENTICATED':\n return <Login redirectUri={redirectUri} />;\n case 'AUTHENTICATED':\n assertIsDefined(user);\n return (\n <>\n {children({\n user,\n logout,\n getToken,\n })}\n </>\n );\n case 'AUTHENTICATING':\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n case 'ERROR':\n process.env.NODE_ENV !== 'production' && console.error(error);\n return (\n <BannerAlertBox\n variant=\"error\"\n title=\"Authentication failed\"\n style={{ maxWidth: '600px', margin: '0 auto' }}\n >\n <Paragraph>\n Something went wrong while trying to authenticate you. If the\n problem persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to\n get it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n default:\n return null;\n }\n};\n\nexport interface AppShellProps {\n children: (options: AppShellValues) => ReactNode;\n audience: string;\n domain: string;\n clientId: string;\n decorateUser: DecorateUserFn;\n redirectUri?: string;\n environment?: Environment;\n}\n\nexport const AppShell = ({\n children,\n audience,\n domain,\n clientId,\n redirectUri,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <AuthProvider\n audience={audience}\n domain={domain}\n client_id={clientId}\n decorateUser={decorateUser}\n >\n <Authenticate redirectUri={redirectUri}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </AuthProvider>\n );\n};\n","import React, { FC, MouseEvent, ReactNode, AnchorHTMLAttributes } from 'react';\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n navigate: () => void;\n children: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n navigate,\n children,\n onClick,\n target,\n ...rest\n}) => {\n return (\n <a\n onClick={(event) => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but right clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }}\n target={target}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import React, { FC, ReactNode, useCallback, useContext, useState } from 'react';\nimport { MenuItem, NavigationFunction } from '@entur-partner/micro-frontend';\n\ninterface MenuGroups {\n [path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n getItemsForPath: (path: string) => MenuItem[];\n addItems: (items: MenuItem[], path: string) => void;\n getMFNavigate: (path: string) => NavigationFunction | undefined;\n setMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n addItems: () => {},\n getItemsForPath: () => [],\n getMFNavigate: () => undefined,\n setMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n const context = useContext(MenuContext);\n return context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n const { getMFNavigate } = useMenu();\n return getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n children: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n const [groups, setGroups] = useState<MenuGroups>({});\n const [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n {}\n );\n\n const addItems = useCallback(\n (newItems: MenuItem[], path: string) => {\n setGroups((prevState) => ({\n ...prevState,\n [path]: newItems,\n }));\n },\n [setGroups]\n );\n\n const getMFNavigate = (path: string) => navFuncs[path];\n const setMFNavigate = (path: string, navigation: NavigationFunction) =>\n setNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n return (\n <MenuContext.Provider\n value={{\n addItems,\n getItemsForPath: (path) => groups[path] ?? [],\n getMFNavigate,\n setMFNavigate,\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n","export const ORGANISATION_STORAGE_KEY = 'EP::activeOrgId';\n\nexport const organisationStorage = {\n get: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = 'EP::locale';\n\nexport const languageStorage = {\n get: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { organisationStorage } from './storage';\n\ninterface OrganisationContextType {\n organisationId: number;\n setOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n OrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context;\n};\n\nexport const useOrganisationId = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context.organisationId;\n};\n\nconst useOrganisationState = (\n initialOrganisationId: string\n): [number, Dispatch<SetStateAction<number>>] => {\n const [organisationId, setOrganisationId] = useState<number>(\n Number(initialOrganisationId)\n );\n\n useEffect(() => {\n organisationStorage.set(organisationId.toString());\n }, [organisationId]);\n\n return [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n children: ReactNode;\n organisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n children,\n organisationId,\n}) => {\n const [orgId, setOrganisationId] = useOrganisationState(organisationId);\n return (\n <OrganisationContext.Provider\n value={{ organisationId: orgId, setOrganisationId }}\n >\n {children}\n </OrganisationContext.Provider>\n );\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { languageStorage } from './storage';\n\ninterface LanguageContextType {\n language: string;\n setLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n undefined\n);\n\nconst useLanguageState = (\n language: string\n): [string, Dispatch<SetStateAction<string>>] => {\n const [activeLanguage, setLanguage] = useState(language);\n\n useEffect(() => {\n languageStorage.set(activeLanguage);\n }, [activeLanguage]);\n\n return [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n const context = useContext(LanguageContext);\n assertIsDefined(context);\n return context;\n};\n\ninterface LanguageProviderProps {\n children: ReactNode;\n language: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n children,\n language,\n}) => {\n const [activeLanguage, setLanguage] = useLanguageState(language);\n return (\n <LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n {children}\n </LanguageContext.Provider>\n );\n};\n","export class OrganisationsError extends Error {\n message = 'Failed fetching organisations';\n}\n","import React, { FC, useEffect, useState } from 'react';\nimport { OrganisationDropDown } from '@entur-partner/common';\nimport { SkeletonRectangle } from '@entur/loader';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\n\nimport { useLanguage } from './LanguageProvider';\nimport { OrganisationsError } from './OrganisationsError';\n\nexport type GetOrganisationsFn = (token: string) => Promise<Organisation[]>;\n\nexport interface Organisation {\n name: string;\n id: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n value: string;\n onChange: (id: string) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n value,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<Organisation[]>([]);\n const { language } = useLanguage();\n\n const [status, setStatus] = useState<'LOADING' | 'ERROR' | 'SUCCESS'>(\n 'LOADING'\n );\n\n useEffect(() => {\n const fetchOrganisations = async () => {\n const token = await getToken();\n let organisations: Organisation[];\n if (typeof getOrganisations === 'string') {\n organisations = await fetch(getOrganisations, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n },\n }).then((response) => response.json());\n } else {\n organisations = await getOrganisations(token);\n }\n setOrganisations(organisations);\n setStatus('SUCCESS');\n };\n\n fetchOrganisations().catch((error) => {\n if (process.env.NODE_ENV === 'development') {\n console.error(error);\n }\n setStatus('ERROR');\n });\n }, [getOrganisations, getToken]);\n\n switch (status) {\n case 'LOADING':\n return (\n <div className=\"eds-contrast\">\n <SkeletonRectangle style={{ height: '2.4rem' }} />\n </div>\n );\n case 'SUCCESS':\n return (\n <OrganisationDropDown\n label={language === 'nb' ? 'Organisasjon' : 'Organisation'}\n selectedOrganisationId={value}\n organisations={organisations}\n onChange={onChange}\n {...rest}\n />\n );\n case 'ERROR':\n throw new OrganisationsError();\n default:\n return null;\n }\n};\n"],"names":["initialState","status","authReducer","state","event","type","user","data","error","POST_LOGIN_ROUTE_KEY","LOGIN_LAST_RETRY","redirect","pathname","window","history","replaceState","document","title","Auth0Context","React","createContext","undefined","useAuth","auth","useContext","assertIsDefined","AuthProvider","children","decorateUser","initOptions","_excluded","useReducer","dispatch","useState","auth0Client","setAuth0","useEffect","initAuth0","createAuth0Client","client","location","search","includes","handleRedirectCallback","route","localStorage","getItem","removeItem","postLoginRoute","isAuthenticated","getUser","auth0User","getTokenSilently","token","lastRetryEpochSeconds","parseInt","nowEpochSeconds","Math","floor","Date","now","timeSinceLastRetry","minimumTimeForRetry","setItem","toString","logout","protocol","hostname","port","returnTo","login","redirectUri","origin","loginWithRedirect","redirect_uri","getToken","options","createElement","Provider","value","EnvironmentBanner","environment","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","Login","Authenticate","Fragment","Loader","marginTop","space","extraLarge9","process","env","NODE_ENV","console","BannerAlertBox","variant","maxWidth","margin","Paragraph","Link","href","CodeText","AppShell","audience","domain","clientId","client_id","params","Environment","Production","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","navigate","onClick","target","rest","ex","preventDefault","defaultPrevented","button","MenuContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","context","useMenu","useMFNavigation","MenuProvider","groups","setGroups","navFuncs","setNavFuncs","useCallback","newItems","prevState","navigation","prev","ORGANISATION_STORAGE_KEY","organisationStorage","get","set","LANGUAGE_STORAGE_KEY","languageStorage","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","orgId","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","OrganisationsError","message","Error","OrganisationSelector","getOrganisations","onChange","organisations","setOrganisations","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","selectedOrganisationId"],"mappings":"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"}
1
+ {"version":3,"file":"app-shell.esm.js","sources":["../src/EnvironmentBanner.tsx","../src/AppShell.tsx","../src/MicroFrontendLink.tsx","../src/MenuProvider.tsx","../src/storage.ts","../src/OrganisationProvider.tsx","../src/LanguageProvider.tsx","../src/OrganisationsError.ts","../src/OrganisationSelector.tsx"],"sourcesContent":["import React from 'react';\nimport { Environment, getColorForEnvironment } from '@entur-partner/common';\n\ntype EnvironmentBannerProps = {\n environment: Exclude<Environment, Environment.Production>;\n};\n\nexport const EnvironmentBanner = ({ environment }: EnvironmentBannerProps) => {\n return (\n <div\n className=\"epp-environment-banner\"\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: 0,\n left: 0,\n right: 0,\n width: '100vw',\n height: '16px',\n backgroundColor: getColorForEnvironment(environment),\n }}\n />\n );\n};\n","import React, { FC, ReactNode, useEffect, useState } from 'react';\nimport { BannerAlertBox } from '@entur/alert';\nimport { CodeText, Link, Paragraph } from '@entur/typography';\nimport { Loader } from '@entur/loader';\nimport { space } from '@entur/tokens';\nimport {\n Auth0Provider,\n useAuth0,\n GetTokenSilentlyOptions,\n Auth0ContextInterface,\n} from '@auth0/auth0-react';\nimport { User } from '@entur-partner/micro-frontend';\nimport { Environment } from '@entur-partner/common';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { EnvironmentBanner } from './EnvironmentBanner';\nimport { DecorateUserFn } from './UserTypes';\n\nfunction userLogout(logout: Auth0ContextInterface['logout']) {\n const { protocol, hostname, port } = window.location;\n return logout({\n logoutParams: { returnTo: `${protocol}//${hostname}:${port}` },\n });\n}\n\nexport interface AppShellValues {\n logout: Auth0ContextInterface['logout'];\n user: User;\n getToken(options?: GetTokenSilentlyOptions): Promise<string>;\n}\n\ninterface AuthenticateProps {\n children: (options: AppShellValues) => ReactNode;\n decorateUser: DecorateUserFn;\n}\n\nconst Authenticate: FC<AuthenticateProps> = ({ children, decorateUser }) => {\n const [userWithPermission, setUserWithPermission] = useState<\n User | undefined\n >(undefined);\n const {\n user,\n getAccessTokenSilently,\n loginWithRedirect,\n logout,\n isLoading,\n isAuthenticated,\n error,\n } = useAuth0();\n\n useEffect(() => {\n const fetchUserData = async () => {\n try {\n const token = await getAccessTokenSilently();\n const decoratedUser = await decorateUser(user as User, token);\n setUserWithPermission(decoratedUser);\n } catch (error) {\n console.error('Error fetching user data:', error);\n }\n };\n\n if (isAuthenticated) {\n fetchUserData();\n }\n }, [decorateUser, getAccessTokenSilently, isAuthenticated, user]);\n\n if (!isLoading && !isAuthenticated) {\n loginWithRedirect();\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>\n Redirecting to login page\n </Loader>\n );\n }\n\n if (isLoading || !userWithPermission) {\n return (\n <Loader style={{ marginTop: space.extraLarge9 }}>Authenticating</Loader>\n );\n }\n\n if (error) {\n process.env.NODE_ENV !== 'production' && console.error(error);\n return (\n <BannerAlertBox\n variant=\"error\"\n title=\"Authentication failed\"\n style={{ maxWidth: '600px', margin: '0 auto' }}\n >\n <Paragraph>\n Something went wrong while trying to authenticate you. If the problem\n persists you should contact{' '}\n <Link href=\"mailto:support@entur.org\">support@entur.org</Link> to get\n it resolved.\n </Paragraph>\n <Paragraph>\n Authentication failed with: <CodeText>{error?.toString()}</CodeText>\n </Paragraph>\n </BannerAlertBox>\n );\n }\n assertIsDefined(userWithPermission);\n return (\n <>\n {children({\n user: userWithPermission,\n logout: () => userLogout(logout),\n getToken: getAccessTokenSilently,\n })}\n </>\n );\n};\n\nexport interface AppShellProps {\n children: (options: AppShellValues) => ReactNode;\n audience: string;\n domain: string;\n clientId: string;\n decorateUser: DecorateUserFn;\n redirectUri?: string;\n environment?: Environment;\n}\n\nexport const AppShell = ({\n children,\n audience,\n domain,\n clientId,\n decorateUser,\n environment,\n}: AppShellProps) => {\n return (\n <Auth0Provider\n domain={domain}\n clientId={clientId}\n authorizationParams={{\n redirect_uri: window.location.origin,\n audience: audience,\n }}\n >\n <Authenticate decorateUser={decorateUser}>\n {(params) => (\n <>\n {environment && environment !== Environment.Production && (\n <EnvironmentBanner environment={environment} />\n )}\n {children(params)}\n </>\n )}\n </Authenticate>\n </Auth0Provider>\n );\n};\n","import React, { FC, MouseEvent, ReactNode, AnchorHTMLAttributes } from 'react';\n\ninterface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n navigate: () => void;\n children: ReactNode;\n}\n\nfunction isModifiedEvent(event: MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport const MicroFrontendLink: FC<LinkProps> = ({\n navigate,\n children,\n onClick,\n target,\n ...rest\n}) => {\n return (\n <a\n onClick={(event) => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but right clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }}\n target={target}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import React, { FC, ReactNode, useCallback, useContext, useState } from 'react';\nimport { MenuItem, NavigationFunction } from '@entur-partner/micro-frontend';\n\ninterface MenuGroups {\n [path: string]: MenuItem[];\n}\n\ninterface MenuContextType {\n getItemsForPath: (path: string) => MenuItem[];\n addItems: (items: MenuItem[], path: string) => void;\n getMFNavigate: (path: string) => NavigationFunction | undefined;\n setMFNavigate: (path: string, navigation: NavigationFunction) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n addItems: () => {},\n getItemsForPath: () => [],\n getMFNavigate: () => undefined,\n setMFNavigate: () => {},\n});\n\nexport const useMenuGroupItems = (path: string) => {\n const context = useContext(MenuContext);\n return context.getItemsForPath(path);\n};\n\nexport const useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport const useMFNavigation = (path: string) => {\n const { getMFNavigate } = useMenu();\n return getMFNavigate(path);\n};\n\ninterface MenuProviderProps {\n children: ReactNode;\n}\n\nexport const MenuProvider: FC<MenuProviderProps> = ({ children }) => {\n const [groups, setGroups] = useState<MenuGroups>({});\n const [navFuncs, setNavFuncs] = useState<Record<string, NavigationFunction>>(\n {}\n );\n\n const addItems = useCallback(\n (newItems: MenuItem[], path: string) => {\n setGroups((prevState) => ({\n ...prevState,\n [path]: newItems,\n }));\n },\n [setGroups]\n );\n\n const getMFNavigate = (path: string) => navFuncs[path];\n const setMFNavigate = (path: string, navigation: NavigationFunction) =>\n setNavFuncs((prev) => ({ ...prev, [path]: navigation }));\n\n return (\n <MenuContext.Provider\n value={{\n addItems,\n getItemsForPath: (path) => groups[path] ?? [],\n getMFNavigate,\n setMFNavigate,\n }}\n >\n {children}\n </MenuContext.Provider>\n );\n};\n","export const ORGANISATION_STORAGE_KEY = 'EP::activeOrgId';\n\nexport const organisationStorage = {\n get: () => localStorage.getItem(ORGANISATION_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(ORGANISATION_STORAGE_KEY, value),\n};\n\nexport const LANGUAGE_STORAGE_KEY = 'EP::locale';\n\nexport const languageStorage = {\n get: () => localStorage.getItem(LANGUAGE_STORAGE_KEY),\n set: (value: string) => localStorage.setItem(LANGUAGE_STORAGE_KEY, value),\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { organisationStorage } from './storage';\n\ninterface OrganisationContextType {\n organisationId: number;\n setOrganisationId: (organisationId: number) => void;\n}\n\nconst OrganisationContext = React.createContext<\n OrganisationContextType | undefined\n>(undefined);\n\nexport const useOrganisation = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context;\n};\n\nexport const useOrganisationId = () => {\n const context = useContext(OrganisationContext);\n assertIsDefined(context);\n return context.organisationId;\n};\n\nconst useOrganisationState = (\n initialOrganisationId: string\n): [number, Dispatch<SetStateAction<number>>] => {\n const [organisationId, setOrganisationId] = useState<number>(\n Number(initialOrganisationId)\n );\n\n useEffect(() => {\n organisationStorage.set(organisationId.toString());\n }, [organisationId]);\n\n return [organisationId, setOrganisationId];\n};\n\ninterface OrganisationProviderProps {\n children: ReactNode;\n organisationId: string;\n}\n\nexport const OrganisationProvider: FC<OrganisationProviderProps> = ({\n children,\n organisationId,\n}) => {\n const [orgId, setOrganisationId] = useOrganisationState(organisationId);\n return (\n <OrganisationContext.Provider\n value={{ organisationId: orgId, setOrganisationId }}\n >\n {children}\n </OrganisationContext.Provider>\n );\n};\n","import React, {\n FC,\n ReactNode,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { assertIsDefined } from '@entur-partner/util';\n\nimport { languageStorage } from './storage';\n\ninterface LanguageContextType {\n language: string;\n setLanguage: (language: string) => void;\n}\n\nconst LanguageContext = React.createContext<LanguageContextType | undefined>(\n undefined\n);\n\nconst useLanguageState = (\n language: string\n): [string, Dispatch<SetStateAction<string>>] => {\n const [activeLanguage, setLanguage] = useState(language);\n\n useEffect(() => {\n languageStorage.set(activeLanguage);\n }, [activeLanguage]);\n\n return [activeLanguage, setLanguage];\n};\n\nexport const useLanguage = () => {\n const context = useContext(LanguageContext);\n assertIsDefined(context);\n return context;\n};\n\ninterface LanguageProviderProps {\n children: ReactNode;\n language: string;\n}\n\nexport const LanguageProvider: FC<LanguageProviderProps> = ({\n children,\n language,\n}) => {\n const [activeLanguage, setLanguage] = useLanguageState(language);\n return (\n <LanguageContext.Provider value={{ language: activeLanguage, setLanguage }}>\n {children}\n </LanguageContext.Provider>\n );\n};\n","export class OrganisationsError extends Error {\n message = 'Failed fetching organisations';\n}\n","import React, { FC, useEffect, useState } from 'react';\nimport { OrganisationDropDown } from '@entur-partner/common';\nimport { SkeletonRectangle } from '@entur/loader';\nimport { GetTokenSilentlyOptions } from '@auth0/auth0-spa-js';\n\nimport { useLanguage } from './LanguageProvider';\nimport { OrganisationsError } from './OrganisationsError';\n\nexport type GetOrganisationsFn = (token: string) => Promise<Organisation[]>;\n\nexport interface Organisation {\n name: string;\n id: string;\n}\n\nexport interface OrganisationSelectorProps {\n getToken: (options?: GetTokenSilentlyOptions) => Promise<string>;\n getOrganisations: GetOrganisationsFn | string;\n value: string;\n onChange: (id: string) => void;\n [key: string]: any;\n}\n\nexport const OrganisationSelector: FC<OrganisationSelectorProps> = ({\n getToken,\n getOrganisations,\n value,\n onChange,\n ...rest\n}) => {\n const [organisations, setOrganisations] = useState<Organisation[]>([]);\n const { language } = useLanguage();\n\n const [status, setStatus] = useState<'LOADING' | 'ERROR' | 'SUCCESS'>(\n 'LOADING'\n );\n\n useEffect(() => {\n const fetchOrganisations = async () => {\n const token = await getToken();\n let organisations: Organisation[];\n if (typeof getOrganisations === 'string') {\n organisations = await fetch(getOrganisations, {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n },\n }).then((response) => response.json());\n } else {\n organisations = await getOrganisations(token);\n }\n setOrganisations(organisations);\n setStatus('SUCCESS');\n };\n\n fetchOrganisations().catch((error) => {\n if (process.env.NODE_ENV === 'development') {\n console.error(error);\n }\n setStatus('ERROR');\n });\n }, [getOrganisations, getToken]);\n\n switch (status) {\n case 'LOADING':\n return (\n <div className=\"eds-contrast\">\n <SkeletonRectangle style={{ height: '2.4rem' }} />\n </div>\n );\n case 'SUCCESS':\n return (\n <OrganisationDropDown\n label={language === 'nb' ? 'Organisasjon' : 'Organisation'}\n selectedOrganisationId={value}\n organisations={organisations}\n onChange={onChange}\n {...rest}\n />\n );\n case 'ERROR':\n throw new OrganisationsError();\n default:\n return null;\n }\n};\n"],"names":["EnvironmentBanner","_ref","environment","React","createElement","className","style","position","zIndex","top","left","right","width","height","backgroundColor","getColorForEnvironment","userLogout","logout","_window$location","window","location","protocol","hostname","port","logoutParams","returnTo","Authenticate","children","decorateUser","_useState","useState","undefined","userWithPermission","setUserWithPermission","_useAuth","useAuth0","user","getAccessTokenSilently","loginWithRedirect","isLoading","isAuthenticated","error","useEffect","fetchUserData","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","decoratedUser","wrap","_callee$","_context","prev","next","sent","t0","console","stop","apply","arguments","Loader","marginTop","space","extraLarge9","process","env","NODE_ENV","BannerAlertBox","variant","title","maxWidth","margin","Paragraph","Link","href","CodeText","toString","assertIsDefined","Fragment","getToken","AppShell","_ref3","audience","domain","clientId","Auth0Provider","authorizationParams","redirect_uri","origin","params","Environment","Production","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","MicroFrontendLink","navigate","onClick","target","rest","_objectWithoutPropertiesLoose","_excluded","_extends","ex","preventDefault","defaultPrevented","button","MenuContext","createContext","addItems","getItemsForPath","getMFNavigate","setMFNavigate","useMenuGroupItems","path","context","useContext","useMenu","useMFNavigation","_useMenu","MenuProvider","groups","setGroups","_useState2","navFuncs","setNavFuncs","useCallback","newItems","prevState","_extends2","navigation","_extends3","Provider","value","_groups$path","ORGANISATION_STORAGE_KEY","organisationStorage","get","localStorage","getItem","set","setItem","LANGUAGE_STORAGE_KEY","languageStorage","OrganisationContext","useOrganisation","useOrganisationId","organisationId","useOrganisationState","initialOrganisationId","Number","setOrganisationId","OrganisationProvider","_useOrganisationState","orgId","LanguageContext","useLanguageState","language","activeLanguage","setLanguage","useLanguage","LanguageProvider","_useLanguageState","OrganisationsError","_Error","_this","_len","length","args","Array","_key","call","concat","message","_inheritsLoose","_wrapNativeSuper","Error","OrganisationSelector","getOrganisations","onChange","organisations","setOrganisations","_useLanguage","status","setStatus","fetchOrganisations","fetch","headers","Authorization","Accept","then","response","json","SkeletonRectangle","OrganisationDropDown","label","selectedOrganisationId"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entur-partner/app-shell",
3
- "version": "4.0.0",
3
+ "version": "5.0.1-alpha.0",
4
4
  "license": "EUPL-1.2",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/app-shell.esm.js",
@@ -23,6 +23,7 @@
23
23
  "lint": "dts lint"
24
24
  },
25
25
  "peerDependencies": {
26
+ "@auth0/auth0-react": "^2.2.4",
26
27
  "@entur/alert": "^0.11.0 || ^0.14.0 || ^0.15.0",
27
28
  "@entur/layout": "^2.0.0",
28
29
  "@entur/loader": "^0.4.0",
@@ -32,13 +33,14 @@
32
33
  "react-dom": ">=16.8.0"
33
34
  },
34
35
  "dependencies": {
35
- "@auth0/auth0-spa-js": "^1.8.1",
36
- "@entur-partner/common": "^6.0.0",
37
- "@entur-partner/micro-frontend": "^2.4.3",
36
+ "@auth0/auth0-react": "^2.2.4",
37
+ "@entur-partner/common": "^7.0.1-alpha.0",
38
+ "@entur-partner/micro-frontend": "^2.4.4",
38
39
  "@entur-partner/util": "^1.2.0"
39
40
  },
40
41
  "devDependencies": {
41
- "@entur-partner/permission-client-node": "2.3.2"
42
+ "@entur-partner/permission-client-node": "2.3.2",
43
+ "@types/auth0": "3.3.10"
42
44
  },
43
45
  "jest": {
44
46
  "collectCoverageFrom": [
@@ -50,5 +52,5 @@
50
52
  "reportFile": "jest-sonar-report.xml",
51
53
  "indent": 4
52
54
  },
53
- "gitHead": "64d45488508b00189bc3a33f3295e76f625bf7a7"
55
+ "gitHead": "f02e30dfff2ab30a1898fdc90761f8147dcbf629"
54
56
  }
package/dist/Auth.d.ts DELETED
@@ -1,21 +0,0 @@
1
- import React, { FC } from 'react';
2
- import { Auth0ClientOptions, Auth0Client } from '@auth0/auth0-spa-js';
3
- import { User } from '@entur-partner/micro-frontend';
4
- import { AuthStatus } from './authReducer';
5
- import { DecorateUserFn } from './UserTypes';
6
- interface AuthContextType {
7
- status: AuthStatus;
8
- user?: User;
9
- error?: Error;
10
- logout: () => void;
11
- login: (redirectUri?: string) => void;
12
- getToken: () => Promise<string>;
13
- auth0Client?: Auth0Client;
14
- }
15
- export declare const Auth0Context: React.Context<AuthContextType | undefined>;
16
- export declare const useAuth: () => AuthContextType;
17
- interface AuthProviderProps extends Auth0ClientOptions {
18
- decorateUser: DecorateUserFn;
19
- }
20
- export declare const AuthProvider: FC<AuthProviderProps>;
21
- export {};
@@ -1,28 +0,0 @@
1
- import { User } from '@entur-partner/micro-frontend';
2
- export declare type AuthStatus = 'AUTHENTICATING' | 'AUTHENTICATED' | 'NOT_AUTHENTICATED' | 'ERROR';
3
- export declare type AuthState = {
4
- status: AuthStatus;
5
- user?: User;
6
- error?: Error;
7
- } | {
8
- status: 'AUTHENTICATED';
9
- user: User;
10
- } | {
11
- status: 'ERROR';
12
- error: Error;
13
- };
14
- declare type AuthEvent = {
15
- type: 'AUTHENTICATED';
16
- data: {
17
- user: User;
18
- };
19
- } | {
20
- type: 'LOGOUT';
21
- } | {
22
- type: 'ERROR';
23
- error: Error;
24
- } | {
25
- type: 'NOT_AUTHENTICATED';
26
- };
27
- export declare function authReducer(state: AuthState, event: AuthEvent): AuthState;
28
- export {};