@verdaccio/ui-components 5.0.0-next-9.19 → 5.0.0-next-9.21
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.
- package/build/api/use-data-mutation.js +1 -4
- package/build/api/use-data-mutation.js.map +1 -1
- package/build/api/use-data-mutation.mjs +1 -4
- package/build/api/use-data-mutation.mjs.map +1 -1
- package/build/api/use-data.d.ts +1 -0
- package/build/api/use-data.js +3 -2
- package/build/api/use-data.js.map +1 -1
- package/build/api/use-data.mjs +3 -3
- package/build/api/use-data.mjs.map +1 -1
- package/build/components/ActionBar/ActionBar.js +4 -2
- package/build/components/ActionBar/ActionBar.js.map +1 -1
- package/build/components/ActionBar/ActionBar.mjs +4 -2
- package/build/components/ActionBar/ActionBar.mjs.map +1 -1
- package/build/components/ActionBar/ActionBarAction.js +1 -1
- package/build/components/ActionBar/ActionBarAction.mjs +1 -1
- package/build/components/AppRoute/AppRoute.js +13 -0
- package/build/components/AppRoute/AppRoute.js.map +1 -1
- package/build/components/AppRoute/AppRoute.mjs +13 -0
- package/build/components/AppRoute/AppRoute.mjs.map +1 -1
- package/build/components/Author/Author.js +1 -1
- package/build/components/Author/Author.mjs +1 -1
- package/build/components/CopyClipboard/CopyToClipBoard.js +5 -0
- package/build/components/CopyClipboard/CopyToClipBoard.js.map +1 -1
- package/build/components/CopyClipboard/CopyToClipBoard.mjs +5 -0
- package/build/components/CopyClipboard/CopyToClipBoard.mjs.map +1 -1
- package/build/components/CopyClipboard/utils.js +14 -1
- package/build/components/CopyClipboard/utils.js.map +1 -1
- package/build/components/CopyClipboard/utils.mjs +14 -1
- package/build/components/CopyClipboard/utils.mjs.map +1 -1
- package/build/components/Dependencies/Dependencies.js +2 -1
- package/build/components/Dependencies/Dependencies.js.map +1 -1
- package/build/components/Dependencies/Dependencies.mjs +2 -1
- package/build/components/Dependencies/Dependencies.mjs.map +1 -1
- package/build/components/Dependencies/DependencyBlock.js +1 -1
- package/build/components/Dependencies/DependencyBlock.mjs +1 -1
- package/build/components/Developers/Title.js +1 -1
- package/build/components/Developers/Title.mjs +1 -1
- package/build/components/Developers/get-unique-developer-values.js +2 -1
- package/build/components/Developers/get-unique-developer-values.js.map +1 -1
- package/build/components/Developers/get-unique-developer-values.mjs +2 -1
- package/build/components/Developers/get-unique-developer-values.mjs.map +1 -1
- package/build/components/Distribution/Dist.js +3 -3
- package/build/components/Distribution/Dist.js.map +1 -1
- package/build/components/Distribution/Dist.mjs +3 -3
- package/build/components/Distribution/Dist.mjs.map +1 -1
- package/build/components/Engines/Engines.js +1 -1
- package/build/components/Engines/Engines.mjs +1 -1
- package/build/components/Forbidden/Forbidden.js +1 -1
- package/build/components/Forbidden/Forbidden.mjs +1 -1
- package/build/components/FundButton/FundButton.js +4 -3
- package/build/components/FundButton/FundButton.js.map +1 -1
- package/build/components/FundButton/FundButton.mjs +4 -3
- package/build/components/FundButton/FundButton.mjs.map +1 -1
- package/build/components/GenericError/GenericError.d.ts +3 -0
- package/build/components/GenericError/GenericError.js +60 -0
- package/build/components/GenericError/GenericError.js.map +1 -0
- package/build/components/GenericError/GenericError.mjs +54 -0
- package/build/components/GenericError/GenericError.mjs.map +1 -0
- package/build/components/GenericError/index.d.ts +1 -0
- package/build/components/GenericError/index.js +2 -0
- package/build/components/GenericError/index.mjs +2 -0
- package/build/components/Help/Help.js +1 -1
- package/build/components/Help/Help.mjs +1 -1
- package/build/components/Install/Install.js +1 -1
- package/build/components/Install/Install.mjs +1 -1
- package/build/components/Install/InstallListItem.js +2 -2
- package/build/components/Install/InstallListItem.js.map +1 -1
- package/build/components/Install/InstallListItem.mjs +2 -2
- package/build/components/Install/InstallListItem.mjs.map +1 -1
- package/build/components/Keywords/KeywordListItems.js +1 -1
- package/build/components/Keywords/KeywordListItems.js.map +1 -1
- package/build/components/Keywords/KeywordListItems.mjs +1 -1
- package/build/components/Keywords/KeywordListItems.mjs.map +1 -1
- package/build/components/Keywords/Keywords.js +2 -2
- package/build/components/Keywords/Keywords.js.map +1 -1
- package/build/components/Keywords/Keywords.mjs +2 -2
- package/build/components/Keywords/Keywords.mjs.map +1 -1
- package/build/components/LoginDialog/LoginDialogCloseButton.js +1 -1
- package/build/components/LoginDialog/LoginDialogCloseButton.mjs +1 -1
- package/build/components/LoginDialog/LoginDialogForm.js +2 -1
- package/build/components/LoginDialog/LoginDialogForm.js.map +1 -1
- package/build/components/LoginDialog/LoginDialogForm.mjs +2 -1
- package/build/components/LoginDialog/LoginDialogForm.mjs.map +1 -1
- package/build/components/LoginForm/Login.d.ts +1 -0
- package/build/components/LoginForm/Login.js +6 -4
- package/build/components/LoginForm/Login.js.map +1 -1
- package/build/components/LoginForm/Login.mjs +9 -7
- package/build/components/LoginForm/Login.mjs.map +1 -1
- package/build/components/LoginForm/PasswordField.js +4 -6
- package/build/components/LoginForm/PasswordField.js.map +1 -1
- package/build/components/LoginForm/PasswordField.mjs +4 -6
- package/build/components/LoginForm/PasswordField.mjs.map +1 -1
- package/build/components/LoginForm/UsernameField.js +4 -6
- package/build/components/LoginForm/UsernameField.js.map +1 -1
- package/build/components/LoginForm/UsernameField.mjs +4 -6
- package/build/components/LoginForm/UsernameField.mjs.map +1 -1
- package/build/components/LoginForm/styles.js +1 -1
- package/build/components/LoginForm/styles.mjs +1 -1
- package/build/components/LoginForm/useLoginForm.js +13 -3
- package/build/components/LoginForm/useLoginForm.js.map +1 -1
- package/build/components/LoginForm/useLoginForm.mjs +14 -4
- package/build/components/LoginForm/useLoginForm.mjs.map +1 -1
- package/build/components/NoItems/NoItems.js +2 -2
- package/build/components/NoItems/NoItems.mjs +1 -1
- package/build/components/NotFound/NotFound.js +1 -1
- package/build/components/NotFound/NotFound.mjs +1 -1
- package/build/components/Package/Package.d.ts +1 -1
- package/build/components/Package/Package.js +28 -29
- package/build/components/Package/Package.js.map +1 -1
- package/build/components/Package/Package.mjs +29 -30
- package/build/components/Package/Package.mjs.map +1 -1
- package/build/components/Person/Person.js +1 -1
- package/build/components/Person/Person.js.map +1 -1
- package/build/components/Person/Person.mjs +1 -1
- package/build/components/Person/Person.mjs.map +1 -1
- package/build/components/RawViewer/RawViewer.js +1 -1
- package/build/components/RawViewer/RawViewer.mjs +1 -1
- package/build/components/RegistryInfoDialog/RegistryInfoDialog.js +1 -1
- package/build/components/RegistryInfoDialog/RegistryInfoDialog.mjs +1 -1
- package/build/components/Repository/Repository.js +5 -8
- package/build/components/Repository/Repository.js.map +1 -1
- package/build/components/Repository/Repository.mjs +5 -8
- package/build/components/Repository/Repository.mjs.map +1 -1
- package/build/components/Search/AutoComplete/AutoComplete.d.ts +1 -0
- package/build/components/Search/AutoComplete/AutoComplete.js +4 -4
- package/build/components/Search/AutoComplete/AutoComplete.js.map +1 -1
- package/build/components/Search/AutoComplete/AutoComplete.mjs +4 -4
- package/build/components/Search/AutoComplete/AutoComplete.mjs.map +1 -1
- package/build/components/Search/Search.js +12 -4
- package/build/components/Search/Search.js.map +1 -1
- package/build/components/Search/Search.mjs +13 -5
- package/build/components/Search/Search.mjs.map +1 -1
- package/build/components/Search/SearchItem.js +1 -1
- package/build/components/Search/SearchItem.mjs +1 -1
- package/build/components/SettingsMenu/SettingsMenu.js +1 -1
- package/build/components/SettingsMenu/SettingsMenu.mjs +1 -1
- package/build/components/SideBarTitle/SideBarTitle.js +2 -2
- package/build/components/SideBarTitle/SideBarTitle.js.map +1 -1
- package/build/components/SideBarTitle/SideBarTitle.mjs +2 -2
- package/build/components/SideBarTitle/SideBarTitle.mjs.map +1 -1
- package/build/components/UpLinks/UpLinks.js +1 -1
- package/build/components/UpLinks/UpLinks.mjs +1 -1
- package/build/components/Versions/HistoryList.js +2 -2
- package/build/components/Versions/HistoryList.js.map +1 -1
- package/build/components/Versions/HistoryList.mjs +2 -2
- package/build/components/Versions/HistoryList.mjs.map +1 -1
- package/build/components/Versions/Versions.js +22 -21
- package/build/components/Versions/Versions.js.map +1 -1
- package/build/components/Versions/Versions.mjs +22 -21
- package/build/components/Versions/Versions.mjs.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.js +4 -0
- package/build/index.mjs +4 -2
- package/build/pages/Stage/StageDetail.d.ts +2 -0
- package/build/pages/Stage/StageDetail.js +8 -0
- package/build/pages/Stage/StageDetail.js.map +1 -0
- package/build/pages/Stage/StageDetail.mjs +8 -0
- package/build/pages/Stage/StageDetail.mjs.map +1 -0
- package/build/pages/Stage/StageList.d.ts +2 -0
- package/build/pages/Stage/StageList.js +8 -0
- package/build/pages/Stage/StageList.js.map +1 -0
- package/build/pages/Stage/StageList.mjs +8 -0
- package/build/pages/Stage/StageList.mjs.map +1 -0
- package/build/pages/Stage/index.d.ts +2 -0
- package/build/pages/Version/Version.js +4 -1
- package/build/pages/Version/Version.js.map +1 -1
- package/build/pages/Version/Version.mjs +4 -1
- package/build/pages/Version/Version.mjs.map +1 -1
- package/build/providers/AuthProvider/AuthProvider.js +9 -7
- package/build/providers/AuthProvider/AuthProvider.js.map +1 -1
- package/build/providers/AuthProvider/AuthProvider.mjs +10 -8
- package/build/providers/AuthProvider/AuthProvider.mjs.map +1 -1
- package/build/providers/AuthProvider/utils.d.ts +12 -0
- package/build/providers/AuthProvider/utils.js +22 -0
- package/build/providers/AuthProvider/utils.js.map +1 -1
- package/build/providers/AuthProvider/utils.mjs +21 -2
- package/build/providers/AuthProvider/utils.mjs.map +1 -1
- package/build/providers/DownloadProvider/DownloadProvider.d.ts +1 -0
- package/build/providers/DownloadProvider/DownloadProvider.js +27 -4
- package/build/providers/DownloadProvider/DownloadProvider.js.map +1 -1
- package/build/providers/DownloadProvider/DownloadProvider.mjs +27 -6
- package/build/providers/DownloadProvider/DownloadProvider.mjs.map +1 -1
- package/build/providers/ManifestsProvider/ManifestsProvider.js +1 -1
- package/build/providers/ManifestsProvider/ManifestsProvider.js.map +1 -1
- package/build/providers/ManifestsProvider/ManifestsProvider.mjs +1 -1
- package/build/providers/ManifestsProvider/ManifestsProvider.mjs.map +1 -1
- package/build/providers/SearchProvider/SearchProvider.d.ts +1 -0
- package/build/providers/SearchProvider/SearchProvider.js +8 -6
- package/build/providers/SearchProvider/SearchProvider.js.map +1 -1
- package/build/providers/SearchProvider/SearchProvider.mjs +8 -6
- package/build/providers/SearchProvider/SearchProvider.mjs.map +1 -1
- package/build/providers/TranslatorProvider/TranslatorProvider.js +5 -3
- package/build/providers/TranslatorProvider/TranslatorProvider.js.map +1 -1
- package/build/providers/TranslatorProvider/TranslatorProvider.mjs +5 -3
- package/build/providers/TranslatorProvider/TranslatorProvider.mjs.map +1 -1
- package/build/providers/VersionProvider/VersionProvider.js +3 -3
- package/build/providers/VersionProvider/VersionProvider.js.map +1 -1
- package/build/providers/VersionProvider/VersionProvider.mjs +3 -3
- package/build/providers/VersionProvider/VersionProvider.mjs.map +1 -1
- package/build/sections/Detail/Tabs.js +1 -1
- package/build/sections/Detail/Tabs.mjs +1 -1
- package/build/sections/Footer/Footer.js +1 -1
- package/build/sections/Footer/Footer.mjs +1 -1
- package/build/sections/Header/Header.d.ts +0 -1
- package/build/sections/Header/Header.js +16 -14
- package/build/sections/Header/Header.js.map +1 -1
- package/build/sections/Header/Header.mjs +17 -15
- package/build/sections/Header/Header.mjs.map +1 -1
- package/build/sections/Header/HeaderGreetings.js +1 -1
- package/build/sections/Header/HeaderGreetings.mjs +1 -1
- package/build/sections/Header/HeaderMenu.js +26 -7
- package/build/sections/Header/HeaderMenu.js.map +1 -1
- package/build/sections/Header/HeaderMenu.mjs +26 -7
- package/build/sections/Header/HeaderMenu.mjs.map +1 -1
- package/build/sections/Header/HeaderRight.js +1 -1
- package/build/sections/Header/HeaderRight.mjs +1 -1
- package/build/sections/Header/HeaderSettingsDialog.js +1 -1
- package/build/sections/Header/HeaderSettingsDialog.mjs +1 -1
- package/build/sections/Header/LanguageSwitch.js +1 -1
- package/build/sections/Header/LanguageSwitch.mjs +1 -1
- package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.js +1 -1
- package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.mjs +1 -1
- package/build/sections/Home/Home.js +4 -3
- package/build/sections/Home/Home.js.map +1 -1
- package/build/sections/Home/Home.mjs +5 -4
- package/build/sections/Home/Home.mjs.map +1 -1
- package/build/sections/Security/AddUser.js +33 -18
- package/build/sections/Security/AddUser.js.map +1 -1
- package/build/sections/Security/AddUser.mjs +37 -22
- package/build/sections/Security/AddUser.mjs.map +1 -1
- package/build/sections/Security/ChangePassword.js +17 -15
- package/build/sections/Security/ChangePassword.js.map +1 -1
- package/build/sections/Security/ChangePassword.mjs +19 -17
- package/build/sections/Security/ChangePassword.mjs.map +1 -1
- package/build/sections/Security/Login.js +51 -35
- package/build/sections/Security/Login.js.map +1 -1
- package/build/sections/Security/Login.mjs +54 -38
- package/build/sections/Security/Login.mjs.map +1 -1
- package/build/sections/Security/Success.js +28 -24
- package/build/sections/Security/Success.js.map +1 -1
- package/build/sections/Security/Success.mjs +29 -25
- package/build/sections/Security/Success.mjs.map +1 -1
- package/build/sections/Stage/StageActions.d.ts +15 -0
- package/build/sections/Stage/StageActions.js +101 -0
- package/build/sections/Stage/StageActions.js.map +1 -0
- package/build/sections/Stage/StageActions.mjs +99 -0
- package/build/sections/Stage/StageActions.mjs.map +1 -0
- package/build/sections/Stage/StageDetail.d.ts +3 -0
- package/build/sections/Stage/StageDetail.js +110 -0
- package/build/sections/Stage/StageDetail.js.map +1 -0
- package/build/sections/Stage/StageDetail.mjs +108 -0
- package/build/sections/Stage/StageDetail.mjs.map +1 -0
- package/build/sections/Stage/StageList.d.ts +3 -0
- package/build/sections/Stage/StageList.js +153 -0
- package/build/sections/Stage/StageList.js.map +1 -0
- package/build/sections/Stage/StageList.mjs +151 -0
- package/build/sections/Stage/StageList.mjs.map +1 -0
- package/build/sections/Stage/index.d.ts +6 -0
- package/build/sections/Stage/index.js +13 -0
- package/build/sections/Stage/index.mjs +6 -0
- package/build/sections/Stage/types.d.ts +22 -0
- package/build/sections/Stage/useRequireSession.d.ts +14 -0
- package/build/sections/Stage/useRequireSession.js +33 -0
- package/build/sections/Stage/useRequireSession.js.map +1 -0
- package/build/sections/Stage/useRequireSession.mjs +33 -0
- package/build/sections/Stage/useRequireSession.mjs.map +1 -0
- package/build/sections/Stage/useStage.d.ts +34 -0
- package/build/sections/Stage/useStage.js +71 -0
- package/build/sections/Stage/useStage.js.map +1 -0
- package/build/sections/Stage/useStage.mjs +65 -0
- package/build/sections/Stage/useStage.mjs.map +1 -0
- package/build/store/api.js +7 -4
- package/build/store/api.js.map +1 -1
- package/build/store/api.mjs +7 -4
- package/build/store/api.mjs.map +1 -1
- package/build/types/packageMeta.d.ts +3 -2
- package/build/utils/cli-utils.js +2 -2
- package/build/utils/cli-utils.js.map +1 -1
- package/build/utils/cli-utils.mjs +2 -2
- package/build/utils/cli-utils.mjs.map +1 -1
- package/build/utils/index.js +1 -0
- package/build/utils/index.mjs +2 -2
- package/build/utils/routes.d.ts +5 -1
- package/build/utils/routes.js +4 -0
- package/build/utils/routes.js.map +1 -1
- package/build/utils/routes.mjs +4 -0
- package/build/utils/routes.mjs.map +1 -1
- package/build/utils/schemas.d.ts +1 -0
- package/build/utils/schemas.js +4 -4
- package/build/utils/schemas.js.map +1 -1
- package/build/utils/schemas.mjs +4 -4
- package/build/utils/schemas.mjs.map +1 -1
- package/build/utils/session-id.d.ts +8 -0
- package/build/utils/session-id.js +26 -0
- package/build/utils/session-id.js.map +1 -0
- package/build/utils/session-id.mjs +26 -0
- package/build/utils/session-id.mjs.map +1 -0
- package/build/utils/token.d.ts +1 -0
- package/build/utils/token.js +12 -8
- package/build/utils/token.js.map +1 -1
- package/build/utils/token.mjs +12 -9
- package/build/utils/token.mjs.map +1 -1
- package/build/utils/url.js +1 -1
- package/build/utils/url.js.map +1 -1
- package/build/utils/url.mjs +1 -1
- package/build/utils/url.mjs.map +1 -1
- package/build/utils/utils.d.ts +10 -0
- package/build/utils/utils.js +26 -0
- package/build/utils/utils.js.map +1 -1
- package/build/utils/utils.mjs +25 -1
- package/build/utils/utils.mjs.map +1 -1
- package/package.json +6 -6
|
@@ -18,8 +18,8 @@ var VersionProvider = ({ children }) => {
|
|
|
18
18
|
const readmeData = useData(basePath, APIRoute.README, packageName, packageVersion);
|
|
19
19
|
const sidebarData = useData(basePath, APIRoute.SIDEBAR, packageName, packageVersion);
|
|
20
20
|
const isLoading = readmeData.isLoading || sidebarData.isLoading;
|
|
21
|
-
const error =
|
|
22
|
-
const errorCode =
|
|
21
|
+
const error = sidebarData.error;
|
|
22
|
+
const errorCode = sidebarData.error?.code;
|
|
23
23
|
const value = useMemo(() => ({
|
|
24
24
|
packageMeta: sidebarData.data,
|
|
25
25
|
readMe: readmeData.data,
|
|
@@ -29,7 +29,7 @@ var VersionProvider = ({ children }) => {
|
|
|
29
29
|
isForbidden: errorCode === 403,
|
|
30
30
|
isUnAuthorized: errorCode === 401,
|
|
31
31
|
hasNotBeenFound: errorCode === 404,
|
|
32
|
-
isError:
|
|
32
|
+
isError: error !== void 0,
|
|
33
33
|
error
|
|
34
34
|
}), [
|
|
35
35
|
sidebarData.data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VersionProvider.mjs","names":[],"sources":["../../../src/providers/VersionProvider/VersionProvider.tsx"],"sourcesContent":["import React, { createContext, useContext, useMemo } from 'react';\nimport { useParams } from 'react-router';\n\nimport { useData } from '../../api/use-data';\nimport { getConfiguration } from '../../configuration';\nimport { APIRoute } from '../../store/routes';\nimport { stripTrailingSlash } from '../../store/utils';\nimport type { PackageMetaInterface } from '../../types/packageMeta';\n\nfunction getRouterPackageName(packageName: string, scope?: string): string {\n return scope ? `${scope}/${packageName}` : packageName;\n}\n\nexport interface ApiError extends Error {\n code?: number;\n}\n\nexport interface DetailContextProps {\n error: ApiError | undefined;\n hasNotBeenFound: boolean;\n isForbidden: boolean;\n isUnAuthorized: boolean;\n isError: boolean;\n isLoading: boolean;\n packageMeta?: PackageMetaInterface;\n packageName: string;\n packageVersion?: string;\n readMe?: string;\n}\n\nexport const DetailContext = createContext<DetailContextProps | undefined>(undefined);\n\nconst VersionProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const {\n scope,\n package: pkgName,\n version: packageVersion,\n } = useParams<Record<'scope' | 'package' | 'version', string | undefined>>();\n\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const packageName = getRouterPackageName(pkgName ?? '', scope);\n\n const readmeData = useData<string>(basePath, APIRoute.README, packageName, packageVersion);\n\n const sidebarData = useData<PackageMetaInterface>(\n basePath,\n APIRoute.SIDEBAR,\n packageName,\n packageVersion\n );\n const isLoading = readmeData.isLoading || sidebarData.isLoading;\n const error: ApiError | undefined =
|
|
1
|
+
{"version":3,"file":"VersionProvider.mjs","names":[],"sources":["../../../src/providers/VersionProvider/VersionProvider.tsx"],"sourcesContent":["import React, { createContext, useContext, useMemo } from 'react';\nimport { useParams } from 'react-router';\n\nimport { useData } from '../../api/use-data';\nimport { getConfiguration } from '../../configuration';\nimport { APIRoute } from '../../store/routes';\nimport { stripTrailingSlash } from '../../store/utils';\nimport type { PackageMetaInterface } from '../../types/packageMeta';\n\nfunction getRouterPackageName(packageName: string, scope?: string): string {\n return scope ? `${scope}/${packageName}` : packageName;\n}\n\nexport interface ApiError extends Error {\n code?: number;\n}\n\nexport interface DetailContextProps {\n error: ApiError | undefined;\n hasNotBeenFound: boolean;\n isForbidden: boolean;\n isUnAuthorized: boolean;\n isError: boolean;\n isLoading: boolean;\n packageMeta?: PackageMetaInterface;\n packageName: string;\n packageVersion?: string;\n readMe?: string;\n}\n\nexport const DetailContext = createContext<DetailContextProps | undefined>(undefined);\n\nconst VersionProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const {\n scope,\n package: pkgName,\n version: packageVersion,\n } = useParams<Record<'scope' | 'package' | 'version', string | undefined>>();\n\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const packageName = getRouterPackageName(pkgName ?? '', scope);\n\n const readmeData = useData<string>(basePath, APIRoute.README, packageName, packageVersion);\n\n const sidebarData = useData<PackageMetaInterface>(\n basePath,\n APIRoute.SIDEBAR,\n packageName,\n packageVersion\n );\n const isLoading = readmeData.isLoading || sidebarData.isLoading;\n // only the sidebar data drives the whole page; a readme-only failure must\n // not blank a page that can render from sidebar data\n const error: ApiError | undefined = sidebarData.error;\n const errorCode = (sidebarData.error as ApiError)?.code;\n\n const value = useMemo<DetailContextProps>(\n () => ({\n packageMeta: sidebarData.data,\n readMe: readmeData.data,\n packageName,\n packageVersion,\n isLoading,\n isForbidden: errorCode === 403,\n isUnAuthorized: errorCode === 401,\n hasNotBeenFound: errorCode === 404,\n // network failures reject without a `.code`, they are still errors\n isError: error !== undefined,\n error,\n }),\n [sidebarData.data, readmeData.data, packageName, packageVersion, isLoading, errorCode, error]\n );\n\n return <DetailContext.Provider value={value}>{children}</DetailContext.Provider>;\n};\n\nexport default VersionProvider;\n\nexport const useVersion = (): DetailContextProps => {\n const context = useContext(DetailContext);\n if (context === undefined) {\n throw new Error('useVersion must be used within a VersionProvider');\n }\n return context;\n};\n"],"mappings":";;;;;;;;AASA,SAAS,qBAAqB,aAAqB,OAAwB;CACzE,OAAO,QAAQ,GAAG,MAAM,GAAG,gBAAgB;AAC7C;AAmBA,IAAa,gBAAgB,cAA8C,KAAA,CAAS;AAEpF,IAAM,mBAA4D,EAAE,eAAe;CACjF,MAAM,EACJ,OACA,SAAS,SACT,SAAS,mBACP,UAAuE;CAE3E,MAAM,gBAAgB,iBAAiB;CACvC,MAAM,WAAW,mBAAmB,cAAc,IAAI;CACtD,MAAM,cAAc,qBAAqB,WAAW,IAAI,KAAK;CAE7D,MAAM,aAAa,QAAgB,UAAU,SAAS,QAAQ,aAAa,cAAc;CAEzF,MAAM,cAAc,QAClB,UACA,SAAS,SACT,aACA,cACF;CACA,MAAM,YAAY,WAAW,aAAa,YAAY;CAGtD,MAAM,QAA8B,YAAY;CAChD,MAAM,YAAa,YAAY,OAAoB;CAEnD,MAAM,QAAQ,eACL;EACL,aAAa,YAAY;EACzB,QAAQ,WAAW;EACnB;EACA;EACA;EACA,aAAa,cAAc;EAC3B,gBAAgB,cAAc;EAC9B,iBAAiB,cAAc;EAE/B,SAAS,UAAU,KAAA;EACnB;CACF,IACA;EAAC,YAAY;EAAM,WAAW;EAAM;EAAa;EAAgB;EAAW;EAAW;CAAK,CAC9F;CAEA,OAAO,oBAAC,cAAc,UAAf;EAA+B;EAAQ;CAAiC,CAAA;AACjF;AAIA,IAAa,mBAAuC;CAClD,MAAM,UAAU,WAAW,aAAa;CACxC,IAAI,YAAY,KAAA,GACd,MAAM,IAAI,MAAM,kDAAkD;CAEpE,OAAO;AACT"}
|
|
@@ -3,8 +3,8 @@ let _emotion_styled = require("@emotion/styled");
|
|
|
3
3
|
_emotion_styled = require_runtime.__toESM(_emotion_styled);
|
|
4
4
|
let react = require("react");
|
|
5
5
|
react = require_runtime.__toESM(react);
|
|
6
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
6
|
let react_i18next = require("react-i18next");
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
8
|
let _mui_material_Tab = require("@mui/material/Tab");
|
|
9
9
|
_mui_material_Tab = require_runtime.__toESM(_mui_material_Tab);
|
|
10
10
|
let _mui_material_Tabs = require("@mui/material/Tabs");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styled from "@emotion/styled";
|
|
2
2
|
import "react";
|
|
3
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
3
|
import { useTranslation } from "react-i18next";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import Tab from "@mui/material/Tab";
|
|
6
6
|
import Tabs from "@mui/material/Tabs";
|
|
7
7
|
import useMediaQuery from "@mui/material/useMediaQuery";
|
|
@@ -9,8 +9,8 @@ let _emotion_styled = require("@emotion/styled");
|
|
|
9
9
|
_emotion_styled = require_runtime.__toESM(_emotion_styled);
|
|
10
10
|
let react = require("react");
|
|
11
11
|
react = require_runtime.__toESM(react);
|
|
12
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
13
12
|
let react_i18next = require("react-i18next");
|
|
13
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
14
14
|
let country_flag_icons_react_3x2 = require("country-flag-icons/react/3x2");
|
|
15
15
|
country_flag_icons_react_3x2 = require_runtime.__toESM(country_flag_icons_react_3x2);
|
|
16
16
|
//#region src/sections/Footer/Footer.tsx
|
|
@@ -6,8 +6,8 @@ import { Inner, Left, Love, Right, Wrapper } from "./styles.mjs";
|
|
|
6
6
|
import "../../index.mjs";
|
|
7
7
|
import styled from "@emotion/styled";
|
|
8
8
|
import "react";
|
|
9
|
-
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
10
9
|
import { Trans, useTranslation } from "react-i18next";
|
|
10
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
11
11
|
import * as FlagsIcon from "country-flag-icons/react/3x2";
|
|
12
12
|
//#region src/sections/Footer/Footer.tsx
|
|
13
13
|
function goToVerdaccioWebsite() {
|
|
@@ -11,12 +11,12 @@ const require_HeaderSettingsDialog = require("./HeaderSettingsDialog.js");
|
|
|
11
11
|
require("../../index.js");
|
|
12
12
|
let react = require("react");
|
|
13
13
|
react = require_runtime.__toESM(react);
|
|
14
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
15
14
|
let react_i18next = require("react-i18next");
|
|
15
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
16
16
|
let _mui_material_Button = require("@mui/material/Button");
|
|
17
17
|
_mui_material_Button = require_runtime.__toESM(_mui_material_Button);
|
|
18
18
|
//#region src/sections/Header/Header.tsx
|
|
19
|
-
var Header = ({ HeaderInfoDialog, isPlainHeader
|
|
19
|
+
var Header = ({ HeaderInfoDialog, isPlainHeader }) => {
|
|
20
20
|
const { t } = (0, react_i18next.useTranslation)();
|
|
21
21
|
const [isInfoDialogOpen, setOpenInfoDialog] = (0, react.useState)(false);
|
|
22
22
|
const [isSettingsDialogOpen, setSettingsDialogOpen] = (0, react.useState)(false);
|
|
@@ -24,23 +24,25 @@ var Header = ({ HeaderInfoDialog, isPlainHeader, tokenCheckIntervalMs = 36e5 })
|
|
|
24
24
|
const [showLoginModal, setShowLoginModal] = (0, react.useState)(false);
|
|
25
25
|
const { configOptions } = require_AppConfigurationProvider.useConfig();
|
|
26
26
|
const { userState, logOutUser } = require_AuthProvider.useAuth();
|
|
27
|
-
const tokenRef = (0, react.useRef)(userState?.token);
|
|
28
27
|
const logOutUserRef = (0, react.useRef)(logOutUser);
|
|
29
|
-
(0, react.useEffect)(() => {
|
|
30
|
-
tokenRef.current = userState?.token;
|
|
31
|
-
}, [userState?.token]);
|
|
32
28
|
(0, react.useEffect)(() => {
|
|
33
29
|
logOutUserRef.current = logOutUser;
|
|
34
30
|
}, [logOutUser]);
|
|
35
31
|
(0, react.useEffect)(() => {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
const token = userState?.token;
|
|
33
|
+
if (!token) return;
|
|
34
|
+
let timer;
|
|
35
|
+
const arm = () => {
|
|
36
|
+
const remaining = require_token.tokenExpireInMs(token);
|
|
37
|
+
if (remaining === null || remaining <= 0) {
|
|
38
|
+
logOutUserRef.current?.();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
timer = setTimeout(arm, Math.min(remaining, 2 ** 31 - 1));
|
|
42
|
+
};
|
|
43
|
+
arm();
|
|
44
|
+
return () => clearTimeout(timer);
|
|
45
|
+
}, [userState?.token]);
|
|
44
46
|
const handleLogout = () => {
|
|
45
47
|
logOutUser?.();
|
|
46
48
|
setShowLoginModal(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","names":[],"sources":["../../../src/sections/Header/Header.tsx"],"sourcesContent":["import Button from '@mui/material/Button';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { LoginDialog, Search, useAuth, useConfig } from '../../';\nimport {
|
|
1
|
+
{"version":3,"file":"Header.js","names":[],"sources":["../../../src/sections/Header/Header.tsx"],"sourcesContent":["import Button from '@mui/material/Button';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { LoginDialog, Search, useAuth, useConfig } from '../../';\nimport { tokenExpireInMs } from '../../utils/token';\nimport HeaderLeft from './HeaderLeft';\nimport HeaderRight from './HeaderRight';\nimport HeaderSettingsDialog from './HeaderSettingsDialog';\nimport { InnerMobileNavBar, InnerNavBar, MobileNavBar, NavBar } from './styles';\n\ntype Props = {\n HeaderInfoDialog?: React.FC<any>;\n isPlainHeader?: boolean;\n};\n\nconst Header: React.FC<Props> = ({ HeaderInfoDialog, isPlainHeader }) => {\n const { t } = useTranslation();\n const [isInfoDialogOpen, setOpenInfoDialog] = useState<boolean>(false);\n const [isSettingsDialogOpen, setSettingsDialogOpen] = useState<boolean>(false);\n const [showMobileNavBar, setShowMobileNavBar] = useState<boolean>(false);\n const [showLoginModal, setShowLoginModal] = useState<boolean>(false);\n const { configOptions } = useConfig();\n const { userState, logOutUser } = useAuth();\n\n // Use a ref to always have the latest logout in the timer callback\n const logOutUserRef = useRef(logOutUser);\n useEffect(() => {\n logOutUserRef.current = logOutUser;\n }, [logOutUser]);\n\n // log out exactly when the token expires; polling reloaded the page at an\n // arbitrary moment up to a minute later, mid-interaction\n useEffect(() => {\n const token = userState?.token;\n if (!token) {\n return;\n }\n let timer: ReturnType<typeof setTimeout> | undefined;\n const arm = () => {\n const remaining = tokenExpireInMs(token);\n if (remaining === null || remaining <= 0) {\n logOutUserRef.current?.();\n return;\n }\n // setTimeout overflows above 2^31-1 ms; re-arm for far-away expiries\n timer = setTimeout(arm, Math.min(remaining, 2 ** 31 - 1));\n };\n arm();\n return () => clearTimeout(timer);\n }, [userState?.token]);\n\n const handleLogout = () => {\n logOutUser?.();\n setShowLoginModal(false);\n };\n if (isPlainHeader) {\n return (\n <NavBar data-testid=\"header\" position=\"static\">\n <InnerNavBar data-testid=\"inner-nav-bar\">\n <HeaderLeft showSearch={false} />\n <HeaderRight\n hasLogin={false}\n onLogout={() => {}}\n onOpenRegistryInfoDialog={() => {}}\n onOpenSettingsDialog={() => {}}\n onToggleLogin={() => {}}\n onToggleMobileNav={() => {}}\n showInfo={false}\n showSearch={false}\n showSettings={false}\n showThemeSwitch={false}\n username={''}\n />\n </InnerNavBar>\n </NavBar>\n );\n }\n\n return (\n <>\n <NavBar data-testid=\"header\" position=\"static\">\n <InnerNavBar data-testid=\"inner-nav-bar\">\n <HeaderLeft showSearch={configOptions.showSearch} />\n <HeaderRight\n hasLogin={configOptions?.login}\n onLogout={handleLogout}\n onOpenRegistryInfoDialog={() => setOpenInfoDialog(true)}\n onOpenSettingsDialog={() => setSettingsDialogOpen(true)}\n onToggleLogin={() => setShowLoginModal(!showLoginModal)}\n onToggleMobileNav={() => setShowMobileNavBar(!showMobileNavBar)}\n showInfo={configOptions.showInfo}\n showSearch={configOptions.showSearch}\n showSettings={configOptions.showSettings}\n showThemeSwitch={configOptions.showThemeSwitch}\n username={userState?.username}\n />\n </InnerNavBar>\n <HeaderSettingsDialog\n isOpen={isSettingsDialogOpen}\n onCloseDialog={() => setSettingsDialogOpen(false)}\n />\n {HeaderInfoDialog ? (\n <HeaderInfoDialog\n dialogTitle={t('dialog.registry-info.title')}\n isOpen={isInfoDialogOpen}\n onCloseDialog={() => setOpenInfoDialog(false)}\n />\n ) : null}\n </NavBar>\n {showMobileNavBar && (\n <MobileNavBar data-testid=\"mobile-nav-bar\">\n <InnerMobileNavBar>\n <Search />\n </InnerMobileNavBar>\n <Button color=\"inherit\" onClick={() => setShowMobileNavBar(false)}>\n {t('button.cancel')}\n </Button>\n </MobileNavBar>\n )}\n {!userState?.username && (\n <LoginDialog onClose={() => setShowLoginModal(false)} open={showLoginModal} />\n )}\n </>\n );\n};\n\nexport default Header;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgBA,IAAM,UAA2B,EAAE,kBAAkB,oBAAoB;CACvE,MAAM,EAAE,OAAA,GAAM,cAAA,eAAA,CAAe;CAC7B,MAAM,CAAC,kBAAkB,sBAAA,GAAqB,MAAA,SAAA,CAAkB,KAAK;CACrE,MAAM,CAAC,sBAAsB,0BAAA,GAAyB,MAAA,SAAA,CAAkB,KAAK;CAC7E,MAAM,CAAC,kBAAkB,wBAAA,GAAuB,MAAA,SAAA,CAAkB,KAAK;CACvE,MAAM,CAAC,gBAAgB,sBAAA,GAAqB,MAAA,SAAA,CAAkB,KAAK;CACnE,MAAM,EAAE,kBAAkB,iCAAA,UAAU;CACpC,MAAM,EAAE,WAAW,eAAe,qBAAA,QAAQ;CAG1C,MAAM,iBAAA,GAAgB,MAAA,OAAA,CAAO,UAAU;CACvC,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,cAAc,UAAU;CAC1B,GAAG,CAAC,UAAU,CAAC;CAIf,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,MAAM,QAAQ,WAAW;EACzB,IAAI,CAAC,OACH;EAEF,IAAI;EACJ,MAAM,YAAY;GAChB,MAAM,YAAY,cAAA,gBAAgB,KAAK;GACvC,IAAI,cAAc,QAAQ,aAAa,GAAG;IACxC,cAAc,UAAU;IACxB;GACF;GAEA,QAAQ,WAAW,KAAK,KAAK,IAAI,WAAW,KAAK,KAAK,CAAC,CAAC;EAC1D;EACA,IAAI;EACJ,aAAa,aAAa,KAAK;CACjC,GAAG,CAAC,WAAW,KAAK,CAAC;CAErB,MAAM,qBAAqB;EACzB,aAAa;EACb,kBAAkB,KAAK;CACzB;CACA,IAAI,eACF,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,eAAA,QAAD;EAAQ,eAAY;EAAS,UAAS;EACpC,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,eAAA,aAAD;GAAa,eAAY;GAAzB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,mBAAA,SAAD,EAAY,YAAY,MAAQ,CAAA,GAChC,iBAAA,GAAA,kBAAA,IAAA,CAAC,oBAAA,SAAD;IACE,UAAU;IACV,gBAAgB,CAAC;IACjB,gCAAgC,CAAC;IACjC,4BAA4B,CAAC;IAC7B,qBAAqB,CAAC;IACtB,yBAAyB,CAAC;IAC1B,UAAU;IACV,YAAY;IACZ,cAAc;IACd,iBAAiB;IACjB,UAAU;GACX,CAAA,CACU;;CACP,CAAA;CAIZ,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAA,kBAAA,UAAA,EAAA,UAAA;EACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,eAAA,QAAD;GAAQ,eAAY;GAAS,UAAS;GAAtC,UAAA;IACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,eAAA,aAAD;KAAa,eAAY;KAAzB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,mBAAA,SAAD,EAAY,YAAY,cAAc,WAAa,CAAA,GACnD,iBAAA,GAAA,kBAAA,IAAA,CAAC,oBAAA,SAAD;MACE,UAAU,eAAe;MACzB,UAAU;MACV,gCAAgC,kBAAkB,IAAI;MACtD,4BAA4B,sBAAsB,IAAI;MACtD,qBAAqB,kBAAkB,CAAC,cAAc;MACtD,yBAAyB,oBAAoB,CAAC,gBAAgB;MAC9D,UAAU,cAAc;MACxB,YAAY,cAAc;MAC1B,cAAc,cAAc;MAC5B,iBAAiB,cAAc;MAC/B,UAAU,WAAW;KACtB,CAAA,CACU;;IACb,iBAAA,GAAA,kBAAA,IAAA,CAAC,6BAAA,SAAD;KACE,QAAQ;KACR,qBAAqB,sBAAsB,KAAK;IACjD,CAAA;IACA,mBACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAD;KACE,aAAa,EAAE,4BAA4B;KAC3C,QAAQ;KACR,qBAAqB,kBAAkB,KAAK;IAC7C,CAAA,IACC;GACE;;EACP,oBACC,iBAAA,GAAA,kBAAA,KAAA,CAAC,eAAA,cAAD;GAAc,eAAY;GAA1B,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,eAAA,mBAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,eAAA,SAAD,CAAS,CAAA,EACQ,CAAA,GACnB,iBAAA,GAAA,kBAAA,IAAA,CAAC,qBAAA,SAAD;IAAQ,OAAM;IAAU,eAAe,oBAAoB,KAAK;IAC7D,UAAA,EAAE,eAAe;GACZ,CAAA,CACI;;EAEf,CAAC,WAAW,YACX,iBAAA,GAAA,kBAAA,IAAA,CAAC,oBAAA,SAAD;GAAa,eAAe,kBAAkB,KAAK;GAAG,MAAM;EAAiB,CAAA;CAE/E,EAAA,CAAA;AAEN"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { tokenExpireInMs } from "../../utils/token.mjs";
|
|
2
2
|
import { useConfig } from "../../providers/AppConfigurationProvider/AppConfigurationProvider.mjs";
|
|
3
3
|
import { useAuth } from "../../providers/AuthProvider/AuthProvider.mjs";
|
|
4
4
|
import LoginDialog from "../../components/LoginDialog/LoginDialog.mjs";
|
|
@@ -9,11 +9,11 @@ import HeaderRight from "./HeaderRight.mjs";
|
|
|
9
9
|
import HeaderSettingsDialog from "./HeaderSettingsDialog.mjs";
|
|
10
10
|
import "../../index.mjs";
|
|
11
11
|
import { useEffect, useRef, useState } from "react";
|
|
12
|
-
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
13
12
|
import { useTranslation } from "react-i18next";
|
|
13
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
14
14
|
import Button from "@mui/material/Button";
|
|
15
15
|
//#region src/sections/Header/Header.tsx
|
|
16
|
-
var Header = ({ HeaderInfoDialog, isPlainHeader
|
|
16
|
+
var Header = ({ HeaderInfoDialog, isPlainHeader }) => {
|
|
17
17
|
const { t } = useTranslation();
|
|
18
18
|
const [isInfoDialogOpen, setOpenInfoDialog] = useState(false);
|
|
19
19
|
const [isSettingsDialogOpen, setSettingsDialogOpen] = useState(false);
|
|
@@ -21,23 +21,25 @@ var Header = ({ HeaderInfoDialog, isPlainHeader, tokenCheckIntervalMs = 36e5 })
|
|
|
21
21
|
const [showLoginModal, setShowLoginModal] = useState(false);
|
|
22
22
|
const { configOptions } = useConfig();
|
|
23
23
|
const { userState, logOutUser } = useAuth();
|
|
24
|
-
const tokenRef = useRef(userState?.token);
|
|
25
24
|
const logOutUserRef = useRef(logOutUser);
|
|
26
|
-
useEffect(() => {
|
|
27
|
-
tokenRef.current = userState?.token;
|
|
28
|
-
}, [userState?.token]);
|
|
29
25
|
useEffect(() => {
|
|
30
26
|
logOutUserRef.current = logOutUser;
|
|
31
27
|
}, [logOutUser]);
|
|
32
28
|
useEffect(() => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
29
|
+
const token = userState?.token;
|
|
30
|
+
if (!token) return;
|
|
31
|
+
let timer;
|
|
32
|
+
const arm = () => {
|
|
33
|
+
const remaining = tokenExpireInMs(token);
|
|
34
|
+
if (remaining === null || remaining <= 0) {
|
|
35
|
+
logOutUserRef.current?.();
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
timer = setTimeout(arm, Math.min(remaining, 2 ** 31 - 1));
|
|
39
|
+
};
|
|
40
|
+
arm();
|
|
41
|
+
return () => clearTimeout(timer);
|
|
42
|
+
}, [userState?.token]);
|
|
41
43
|
const handleLogout = () => {
|
|
42
44
|
logOutUser?.();
|
|
43
45
|
setShowLoginModal(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.mjs","names":[],"sources":["../../../src/sections/Header/Header.tsx"],"sourcesContent":["import Button from '@mui/material/Button';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { LoginDialog, Search, useAuth, useConfig } from '../../';\nimport {
|
|
1
|
+
{"version":3,"file":"Header.mjs","names":[],"sources":["../../../src/sections/Header/Header.tsx"],"sourcesContent":["import Button from '@mui/material/Button';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { LoginDialog, Search, useAuth, useConfig } from '../../';\nimport { tokenExpireInMs } from '../../utils/token';\nimport HeaderLeft from './HeaderLeft';\nimport HeaderRight from './HeaderRight';\nimport HeaderSettingsDialog from './HeaderSettingsDialog';\nimport { InnerMobileNavBar, InnerNavBar, MobileNavBar, NavBar } from './styles';\n\ntype Props = {\n HeaderInfoDialog?: React.FC<any>;\n isPlainHeader?: boolean;\n};\n\nconst Header: React.FC<Props> = ({ HeaderInfoDialog, isPlainHeader }) => {\n const { t } = useTranslation();\n const [isInfoDialogOpen, setOpenInfoDialog] = useState<boolean>(false);\n const [isSettingsDialogOpen, setSettingsDialogOpen] = useState<boolean>(false);\n const [showMobileNavBar, setShowMobileNavBar] = useState<boolean>(false);\n const [showLoginModal, setShowLoginModal] = useState<boolean>(false);\n const { configOptions } = useConfig();\n const { userState, logOutUser } = useAuth();\n\n // Use a ref to always have the latest logout in the timer callback\n const logOutUserRef = useRef(logOutUser);\n useEffect(() => {\n logOutUserRef.current = logOutUser;\n }, [logOutUser]);\n\n // log out exactly when the token expires; polling reloaded the page at an\n // arbitrary moment up to a minute later, mid-interaction\n useEffect(() => {\n const token = userState?.token;\n if (!token) {\n return;\n }\n let timer: ReturnType<typeof setTimeout> | undefined;\n const arm = () => {\n const remaining = tokenExpireInMs(token);\n if (remaining === null || remaining <= 0) {\n logOutUserRef.current?.();\n return;\n }\n // setTimeout overflows above 2^31-1 ms; re-arm for far-away expiries\n timer = setTimeout(arm, Math.min(remaining, 2 ** 31 - 1));\n };\n arm();\n return () => clearTimeout(timer);\n }, [userState?.token]);\n\n const handleLogout = () => {\n logOutUser?.();\n setShowLoginModal(false);\n };\n if (isPlainHeader) {\n return (\n <NavBar data-testid=\"header\" position=\"static\">\n <InnerNavBar data-testid=\"inner-nav-bar\">\n <HeaderLeft showSearch={false} />\n <HeaderRight\n hasLogin={false}\n onLogout={() => {}}\n onOpenRegistryInfoDialog={() => {}}\n onOpenSettingsDialog={() => {}}\n onToggleLogin={() => {}}\n onToggleMobileNav={() => {}}\n showInfo={false}\n showSearch={false}\n showSettings={false}\n showThemeSwitch={false}\n username={''}\n />\n </InnerNavBar>\n </NavBar>\n );\n }\n\n return (\n <>\n <NavBar data-testid=\"header\" position=\"static\">\n <InnerNavBar data-testid=\"inner-nav-bar\">\n <HeaderLeft showSearch={configOptions.showSearch} />\n <HeaderRight\n hasLogin={configOptions?.login}\n onLogout={handleLogout}\n onOpenRegistryInfoDialog={() => setOpenInfoDialog(true)}\n onOpenSettingsDialog={() => setSettingsDialogOpen(true)}\n onToggleLogin={() => setShowLoginModal(!showLoginModal)}\n onToggleMobileNav={() => setShowMobileNavBar(!showMobileNavBar)}\n showInfo={configOptions.showInfo}\n showSearch={configOptions.showSearch}\n showSettings={configOptions.showSettings}\n showThemeSwitch={configOptions.showThemeSwitch}\n username={userState?.username}\n />\n </InnerNavBar>\n <HeaderSettingsDialog\n isOpen={isSettingsDialogOpen}\n onCloseDialog={() => setSettingsDialogOpen(false)}\n />\n {HeaderInfoDialog ? (\n <HeaderInfoDialog\n dialogTitle={t('dialog.registry-info.title')}\n isOpen={isInfoDialogOpen}\n onCloseDialog={() => setOpenInfoDialog(false)}\n />\n ) : null}\n </NavBar>\n {showMobileNavBar && (\n <MobileNavBar data-testid=\"mobile-nav-bar\">\n <InnerMobileNavBar>\n <Search />\n </InnerMobileNavBar>\n <Button color=\"inherit\" onClick={() => setShowMobileNavBar(false)}>\n {t('button.cancel')}\n </Button>\n </MobileNavBar>\n )}\n {!userState?.username && (\n <LoginDialog onClose={() => setShowLoginModal(false)} open={showLoginModal} />\n )}\n </>\n );\n};\n\nexport default Header;\n"],"mappings":";;;;;;;;;;;;;;;AAgBA,IAAM,UAA2B,EAAE,kBAAkB,oBAAoB;CACvE,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,CAAC,kBAAkB,qBAAqB,SAAkB,KAAK;CACrE,MAAM,CAAC,sBAAsB,yBAAyB,SAAkB,KAAK;CAC7E,MAAM,CAAC,kBAAkB,uBAAuB,SAAkB,KAAK;CACvE,MAAM,CAAC,gBAAgB,qBAAqB,SAAkB,KAAK;CACnE,MAAM,EAAE,kBAAkB,UAAU;CACpC,MAAM,EAAE,WAAW,eAAe,QAAQ;CAG1C,MAAM,gBAAgB,OAAO,UAAU;CACvC,gBAAgB;EACd,cAAc,UAAU;CAC1B,GAAG,CAAC,UAAU,CAAC;CAIf,gBAAgB;EACd,MAAM,QAAQ,WAAW;EACzB,IAAI,CAAC,OACH;EAEF,IAAI;EACJ,MAAM,YAAY;GAChB,MAAM,YAAY,gBAAgB,KAAK;GACvC,IAAI,cAAc,QAAQ,aAAa,GAAG;IACxC,cAAc,UAAU;IACxB;GACF;GAEA,QAAQ,WAAW,KAAK,KAAK,IAAI,WAAW,KAAK,KAAK,CAAC,CAAC;EAC1D;EACA,IAAI;EACJ,aAAa,aAAa,KAAK;CACjC,GAAG,CAAC,WAAW,KAAK,CAAC;CAErB,MAAM,qBAAqB;EACzB,aAAa;EACb,kBAAkB,KAAK;CACzB;CACA,IAAI,eACF,OACE,oBAAC,QAAD;EAAQ,eAAY;EAAS,UAAS;EACpC,UAAA,qBAAC,aAAD;GAAa,eAAY;GAAzB,UAAA,CACE,oBAAC,YAAD,EAAY,YAAY,MAAQ,CAAA,GAChC,oBAAC,aAAD;IACE,UAAU;IACV,gBAAgB,CAAC;IACjB,gCAAgC,CAAC;IACjC,4BAA4B,CAAC;IAC7B,qBAAqB,CAAC;IACtB,yBAAyB,CAAC;IAC1B,UAAU;IACV,YAAY;IACZ,cAAc;IACd,iBAAiB;IACjB,UAAU;GACX,CAAA,CACU;;CACP,CAAA;CAIZ,OACE,qBAAA,YAAA,EAAA,UAAA;EACE,qBAAC,QAAD;GAAQ,eAAY;GAAS,UAAS;GAAtC,UAAA;IACE,qBAAC,aAAD;KAAa,eAAY;KAAzB,UAAA,CACE,oBAAC,YAAD,EAAY,YAAY,cAAc,WAAa,CAAA,GACnD,oBAAC,aAAD;MACE,UAAU,eAAe;MACzB,UAAU;MACV,gCAAgC,kBAAkB,IAAI;MACtD,4BAA4B,sBAAsB,IAAI;MACtD,qBAAqB,kBAAkB,CAAC,cAAc;MACtD,yBAAyB,oBAAoB,CAAC,gBAAgB;MAC9D,UAAU,cAAc;MACxB,YAAY,cAAc;MAC1B,cAAc,cAAc;MAC5B,iBAAiB,cAAc;MAC/B,UAAU,WAAW;KACtB,CAAA,CACU;;IACb,oBAAC,sBAAD;KACE,QAAQ;KACR,qBAAqB,sBAAsB,KAAK;IACjD,CAAA;IACA,mBACC,oBAAC,kBAAD;KACE,aAAa,EAAE,4BAA4B;KAC3C,QAAQ;KACR,qBAAqB,kBAAkB,KAAK;IAC7C,CAAA,IACC;GACE;;EACP,oBACC,qBAAC,cAAD;GAAc,eAAY;GAA1B,UAAA,CACE,oBAAC,mBAAD,EAAA,UACE,oBAAC,QAAD,CAAS,CAAA,EACQ,CAAA,GACnB,oBAAC,QAAD;IAAQ,OAAM;IAAU,eAAe,oBAAoB,KAAK;IAC7D,UAAA,EAAE,eAAe;GACZ,CAAA,CACI;;EAEf,CAAC,WAAW,YACX,oBAAC,aAAD;GAAa,eAAe,kBAAkB,KAAK;GAAG,MAAM;EAAiB,CAAA;CAE/E,EAAA,CAAA;AAEN"}
|
|
@@ -4,8 +4,8 @@ const require_styles = require("./styles.js");
|
|
|
4
4
|
require("../../index.js");
|
|
5
5
|
let react = require("react");
|
|
6
6
|
react = require_runtime.__toESM(react);
|
|
7
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
7
|
let react_i18next = require("react-i18next");
|
|
8
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
9
|
//#region src/sections/Header/HeaderGreetings.tsx
|
|
10
10
|
var HeaderGreetings = ({ username }) => {
|
|
11
11
|
const { t } = (0, react_i18next.useTranslation)();
|
|
@@ -2,8 +2,8 @@ import Label from "../../components/Label/Label.mjs";
|
|
|
2
2
|
import { Greetings } from "./styles.mjs";
|
|
3
3
|
import "../../index.mjs";
|
|
4
4
|
import "react";
|
|
5
|
-
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
5
|
import { useTranslation } from "react-i18next";
|
|
6
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
//#region src/sections/Header/HeaderGreetings.tsx
|
|
8
8
|
var HeaderGreetings = ({ username }) => {
|
|
9
9
|
const { t } = useTranslation();
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
|
|
2
|
+
const require_routes = require("../../utils/routes.js");
|
|
3
|
+
require("../../utils/index.js");
|
|
4
|
+
const require_AppConfigurationProvider = require("../../providers/AppConfigurationProvider/AppConfigurationProvider.js");
|
|
2
5
|
const require_MenuItem = require("../../components/MenuItem/MenuItem.js");
|
|
3
6
|
const require_HeaderGreetings = require("./HeaderGreetings.js");
|
|
4
7
|
require("../../index.js");
|
|
@@ -6,8 +9,9 @@ let _mui_material_IconButton = require("@mui/material/IconButton");
|
|
|
6
9
|
_mui_material_IconButton = require_runtime.__toESM(_mui_material_IconButton);
|
|
7
10
|
let react = require("react");
|
|
8
11
|
react = require_runtime.__toESM(react);
|
|
9
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
12
|
let react_i18next = require("react-i18next");
|
|
13
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
14
|
+
let react_router = require("react-router");
|
|
11
15
|
let _mui_material_Menu = require("@mui/material/Menu");
|
|
12
16
|
_mui_material_Menu = require_runtime.__toESM(_mui_material_Menu);
|
|
13
17
|
let _mui_icons_material_AccountCircle = require("@mui/icons-material/AccountCircle");
|
|
@@ -16,6 +20,9 @@ _mui_icons_material_AccountCircle = require_runtime.__toESM(_mui_icons_material_
|
|
|
16
20
|
var TypedMenu = _mui_material_Menu.default;
|
|
17
21
|
var HeaderMenu = ({ onLogout, username, isMenuOpen = false, anchorEl, onLoggedInMenu, onLoggedInMenuClose }) => {
|
|
18
22
|
const { t } = (0, react_i18next.useTranslation)();
|
|
23
|
+
const navigate = (0, react_router.useNavigate)();
|
|
24
|
+
const { configOptions } = require_AppConfigurationProvider.useConfig();
|
|
25
|
+
const stageEnabled = configOptions?.flags?.stage;
|
|
19
26
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material_IconButton.default, {
|
|
20
27
|
color: "inherit",
|
|
21
28
|
"data-testid": "logInDialogIcon",
|
|
@@ -35,12 +42,24 @@ var HeaderMenu = ({ onLogout, username, isMenuOpen = false, anchorEl, onLoggedIn
|
|
|
35
42
|
vertical: "top",
|
|
36
43
|
horizontal: "right"
|
|
37
44
|
},
|
|
38
|
-
children: [
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
45
|
+
children: [
|
|
46
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MenuItem.default, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_HeaderGreetings.default, { username }) }),
|
|
47
|
+
stageEnabled && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MenuItem.default, {
|
|
48
|
+
"data-testid": "stagedPackagesMenuItem",
|
|
49
|
+
id: "stagedPackagesMenuItem",
|
|
50
|
+
onClick: () => {
|
|
51
|
+
onLoggedInMenuClose();
|
|
52
|
+
navigate(require_routes.Route.STAGE);
|
|
53
|
+
},
|
|
54
|
+
children: t("stage.menu")
|
|
55
|
+
}),
|
|
56
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MenuItem.default, {
|
|
57
|
+
"data-testid": "logOutDialogIcon",
|
|
58
|
+
id: "logOutDialogIcon",
|
|
59
|
+
onClick: onLogout,
|
|
60
|
+
children: t("button.logout")
|
|
61
|
+
})
|
|
62
|
+
]
|
|
44
63
|
})] });
|
|
45
64
|
};
|
|
46
65
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderMenu.js","names":[],"sources":["../../../src/sections/Header/HeaderMenu.tsx"],"sourcesContent":["import AccountCircle from '@mui/icons-material/AccountCircle';\nimport IconButton from '@mui/material/IconButton';\nimport Menu from '@mui/material/Menu';\nimport type { MouseEvent } from 'react';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { MenuItem } from '../../';\nimport HeaderGreetings from './HeaderGreetings';\n\n// Workaround: MUI v7 MenuProps type resolution breaks inherited PopoverProps.\nconst TypedMenu = Menu as React.FC<any>;\n\ninterface Props {\n username: string;\n isMenuOpen: boolean;\n anchorEl?: Element | null | undefined;\n onLogout: () => void;\n onLoggedInMenu: (event: MouseEvent<HTMLButtonElement>) => void;\n onLoggedInMenuClose: () => void;\n}\n\nconst HeaderMenu: React.FC<Props> = ({\n onLogout,\n username,\n isMenuOpen = false,\n anchorEl,\n onLoggedInMenu,\n onLoggedInMenuClose,\n}) => {\n const { t } = useTranslation();\n return (\n <>\n <IconButton\n color=\"inherit\"\n data-testid=\"logInDialogIcon\"\n id=\"header--button-account\"\n onClick={onLoggedInMenu}\n size=\"large\"\n >\n <AccountCircle />\n </IconButton>\n <TypedMenu\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n onClose={onLoggedInMenuClose}\n open={isMenuOpen}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n >\n <MenuItem>\n <HeaderGreetings username={username} />\n </MenuItem>\n <MenuItem data-testid=\"logOutDialogIcon\" id=\"logOutDialogIcon\" onClick={onLogout}>\n {t('button.logout')}\n </MenuItem>\n </TypedMenu>\n </>\n );\n};\n\nexport default HeaderMenu;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"HeaderMenu.js","names":[],"sources":["../../../src/sections/Header/HeaderMenu.tsx"],"sourcesContent":["import AccountCircle from '@mui/icons-material/AccountCircle';\nimport IconButton from '@mui/material/IconButton';\nimport Menu from '@mui/material/Menu';\nimport type { MouseEvent } from 'react';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport { MenuItem } from '../../';\nimport { useConfig } from '../../providers/AppConfigurationProvider/AppConfigurationProvider';\nimport { Route } from '../../utils';\nimport HeaderGreetings from './HeaderGreetings';\n\n// Workaround: MUI v7 MenuProps type resolution breaks inherited PopoverProps.\nconst TypedMenu = Menu as React.FC<any>;\n\ninterface Props {\n username: string;\n isMenuOpen: boolean;\n anchorEl?: Element | null | undefined;\n onLogout: () => void;\n onLoggedInMenu: (event: MouseEvent<HTMLButtonElement>) => void;\n onLoggedInMenuClose: () => void;\n}\n\nconst HeaderMenu: React.FC<Props> = ({\n onLogout,\n username,\n isMenuOpen = false,\n anchorEl,\n onLoggedInMenu,\n onLoggedInMenuClose,\n}) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { configOptions } = useConfig();\n const stageEnabled = configOptions?.flags?.stage;\n return (\n <>\n <IconButton\n color=\"inherit\"\n data-testid=\"logInDialogIcon\"\n id=\"header--button-account\"\n onClick={onLoggedInMenu}\n size=\"large\"\n >\n <AccountCircle />\n </IconButton>\n <TypedMenu\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n onClose={onLoggedInMenuClose}\n open={isMenuOpen}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n >\n <MenuItem>\n <HeaderGreetings username={username} />\n </MenuItem>\n {stageEnabled && (\n <MenuItem\n data-testid=\"stagedPackagesMenuItem\"\n id=\"stagedPackagesMenuItem\"\n onClick={() => {\n onLoggedInMenuClose();\n navigate(Route.STAGE);\n }}\n >\n {t('stage.menu')}\n </MenuItem>\n )}\n <MenuItem data-testid=\"logOutDialogIcon\" id=\"logOutDialogIcon\" onClick={onLogout}>\n {t('button.logout')}\n </MenuItem>\n </TypedMenu>\n </>\n );\n};\n\nexport default HeaderMenu;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAcA,IAAM,YAAY,mBAAA;AAWlB,IAAM,cAA+B,EACnC,UACA,UACA,aAAa,OACb,UACA,gBACA,0BACI;CACJ,MAAM,EAAE,OAAA,GAAM,cAAA,eAAA,CAAe;CAC7B,MAAM,YAAA,GAAW,aAAA,YAAA,CAAY;CAC7B,MAAM,EAAE,kBAAkB,iCAAA,UAAU;CACpC,MAAM,eAAe,eAAe,OAAO;CAC3C,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAA,kBAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,yBAAA,SAAD;EACE,OAAM;EACN,eAAY;EACZ,IAAG;EACH,SAAS;EACT,MAAK;EAEL,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,kCAAA,SAAD,CAAgB,CAAA;CACN,CAAA,GACZ,iBAAA,GAAA,kBAAA,KAAA,CAAC,WAAD;EACY;EACV,cAAc;GACZ,UAAU;GACV,YAAY;EACd;EACA,SAAS;EACT,MAAM;EACN,iBAAiB;GACf,UAAU;GACV,YAAY;EACd;EAXF,UAAA;GAaE,iBAAA,GAAA,kBAAA,IAAA,CAAC,iBAAA,SAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,wBAAA,SAAD,EAA2B,SAAW,CAAA,EAC9B,CAAA;GACT,gBACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,iBAAA,SAAD;IACE,eAAY;IACZ,IAAG;IACH,eAAe;KACb,oBAAoB;KACpB,SAAS,eAAA,MAAM,KAAK;IACtB;IAEC,UAAA,EAAE,YAAY;GACP,CAAA;GAEZ,iBAAA,GAAA,kBAAA,IAAA,CAAC,iBAAA,SAAD;IAAU,eAAY;IAAmB,IAAG;IAAmB,SAAS;IACrE,UAAA,EAAE,eAAe;GACV,CAAA;EACD;CACX,CAAA,CAAA,EAAA,CAAA;AAEN"}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
|
+
import { Route as Route$1 } from "../../utils/routes.mjs";
|
|
2
|
+
import "../../utils/index.mjs";
|
|
3
|
+
import { useConfig } from "../../providers/AppConfigurationProvider/AppConfigurationProvider.mjs";
|
|
1
4
|
import MenuItem from "../../components/MenuItem/MenuItem.mjs";
|
|
2
5
|
import HeaderGreetings from "./HeaderGreetings.mjs";
|
|
3
6
|
import "../../index.mjs";
|
|
4
7
|
import IconButton from "@mui/material/IconButton";
|
|
5
8
|
import "react";
|
|
6
|
-
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
7
9
|
import { useTranslation } from "react-i18next";
|
|
10
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
import { useNavigate } from "react-router";
|
|
8
12
|
import Menu from "@mui/material/Menu";
|
|
9
13
|
import AccountCircle from "@mui/icons-material/AccountCircle";
|
|
10
14
|
//#region src/sections/Header/HeaderMenu.tsx
|
|
11
15
|
var TypedMenu = Menu;
|
|
12
16
|
var HeaderMenu = ({ onLogout, username, isMenuOpen = false, anchorEl, onLoggedInMenu, onLoggedInMenuClose }) => {
|
|
13
17
|
const { t } = useTranslation();
|
|
18
|
+
const navigate = useNavigate();
|
|
19
|
+
const { configOptions } = useConfig();
|
|
20
|
+
const stageEnabled = configOptions?.flags?.stage;
|
|
14
21
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(IconButton, {
|
|
15
22
|
color: "inherit",
|
|
16
23
|
"data-testid": "logInDialogIcon",
|
|
@@ -30,12 +37,24 @@ var HeaderMenu = ({ onLogout, username, isMenuOpen = false, anchorEl, onLoggedIn
|
|
|
30
37
|
vertical: "top",
|
|
31
38
|
horizontal: "right"
|
|
32
39
|
},
|
|
33
|
-
children: [
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
40
|
+
children: [
|
|
41
|
+
/* @__PURE__ */ jsx(MenuItem, { children: /* @__PURE__ */ jsx(HeaderGreetings, { username }) }),
|
|
42
|
+
stageEnabled && /* @__PURE__ */ jsx(MenuItem, {
|
|
43
|
+
"data-testid": "stagedPackagesMenuItem",
|
|
44
|
+
id: "stagedPackagesMenuItem",
|
|
45
|
+
onClick: () => {
|
|
46
|
+
onLoggedInMenuClose();
|
|
47
|
+
navigate(Route$1.STAGE);
|
|
48
|
+
},
|
|
49
|
+
children: t("stage.menu")
|
|
50
|
+
}),
|
|
51
|
+
/* @__PURE__ */ jsx(MenuItem, {
|
|
52
|
+
"data-testid": "logOutDialogIcon",
|
|
53
|
+
id: "logOutDialogIcon",
|
|
54
|
+
onClick: onLogout,
|
|
55
|
+
children: t("button.logout")
|
|
56
|
+
})
|
|
57
|
+
]
|
|
39
58
|
})] });
|
|
40
59
|
};
|
|
41
60
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderMenu.mjs","names":[],"sources":["../../../src/sections/Header/HeaderMenu.tsx"],"sourcesContent":["import AccountCircle from '@mui/icons-material/AccountCircle';\nimport IconButton from '@mui/material/IconButton';\nimport Menu from '@mui/material/Menu';\nimport type { MouseEvent } from 'react';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { MenuItem } from '../../';\nimport HeaderGreetings from './HeaderGreetings';\n\n// Workaround: MUI v7 MenuProps type resolution breaks inherited PopoverProps.\nconst TypedMenu = Menu as React.FC<any>;\n\ninterface Props {\n username: string;\n isMenuOpen: boolean;\n anchorEl?: Element | null | undefined;\n onLogout: () => void;\n onLoggedInMenu: (event: MouseEvent<HTMLButtonElement>) => void;\n onLoggedInMenuClose: () => void;\n}\n\nconst HeaderMenu: React.FC<Props> = ({\n onLogout,\n username,\n isMenuOpen = false,\n anchorEl,\n onLoggedInMenu,\n onLoggedInMenuClose,\n}) => {\n const { t } = useTranslation();\n return (\n <>\n <IconButton\n color=\"inherit\"\n data-testid=\"logInDialogIcon\"\n id=\"header--button-account\"\n onClick={onLoggedInMenu}\n size=\"large\"\n >\n <AccountCircle />\n </IconButton>\n <TypedMenu\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n onClose={onLoggedInMenuClose}\n open={isMenuOpen}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n >\n <MenuItem>\n <HeaderGreetings username={username} />\n </MenuItem>\n <MenuItem data-testid=\"logOutDialogIcon\" id=\"logOutDialogIcon\" onClick={onLogout}>\n {t('button.logout')}\n </MenuItem>\n </TypedMenu>\n </>\n );\n};\n\nexport default HeaderMenu;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"HeaderMenu.mjs","names":[],"sources":["../../../src/sections/Header/HeaderMenu.tsx"],"sourcesContent":["import AccountCircle from '@mui/icons-material/AccountCircle';\nimport IconButton from '@mui/material/IconButton';\nimport Menu from '@mui/material/Menu';\nimport type { MouseEvent } from 'react';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport { MenuItem } from '../../';\nimport { useConfig } from '../../providers/AppConfigurationProvider/AppConfigurationProvider';\nimport { Route } from '../../utils';\nimport HeaderGreetings from './HeaderGreetings';\n\n// Workaround: MUI v7 MenuProps type resolution breaks inherited PopoverProps.\nconst TypedMenu = Menu as React.FC<any>;\n\ninterface Props {\n username: string;\n isMenuOpen: boolean;\n anchorEl?: Element | null | undefined;\n onLogout: () => void;\n onLoggedInMenu: (event: MouseEvent<HTMLButtonElement>) => void;\n onLoggedInMenuClose: () => void;\n}\n\nconst HeaderMenu: React.FC<Props> = ({\n onLogout,\n username,\n isMenuOpen = false,\n anchorEl,\n onLoggedInMenu,\n onLoggedInMenuClose,\n}) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { configOptions } = useConfig();\n const stageEnabled = configOptions?.flags?.stage;\n return (\n <>\n <IconButton\n color=\"inherit\"\n data-testid=\"logInDialogIcon\"\n id=\"header--button-account\"\n onClick={onLoggedInMenu}\n size=\"large\"\n >\n <AccountCircle />\n </IconButton>\n <TypedMenu\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n onClose={onLoggedInMenuClose}\n open={isMenuOpen}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n >\n <MenuItem>\n <HeaderGreetings username={username} />\n </MenuItem>\n {stageEnabled && (\n <MenuItem\n data-testid=\"stagedPackagesMenuItem\"\n id=\"stagedPackagesMenuItem\"\n onClick={() => {\n onLoggedInMenuClose();\n navigate(Route.STAGE);\n }}\n >\n {t('stage.menu')}\n </MenuItem>\n )}\n <MenuItem data-testid=\"logOutDialogIcon\" id=\"logOutDialogIcon\" onClick={onLogout}>\n {t('button.logout')}\n </MenuItem>\n </TypedMenu>\n </>\n );\n};\n\nexport default HeaderMenu;\n"],"mappings":";;;;;;;;;;;;;;AAcA,IAAM,YAAY;AAWlB,IAAM,cAA+B,EACnC,UACA,UACA,aAAa,OACb,UACA,gBACA,0BACI;CACJ,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,WAAW,YAAY;CAC7B,MAAM,EAAE,kBAAkB,UAAU;CACpC,MAAM,eAAe,eAAe,OAAO;CAC3C,OACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,YAAD;EACE,OAAM;EACN,eAAY;EACZ,IAAG;EACH,SAAS;EACT,MAAK;EAEL,UAAA,oBAAC,eAAD,CAAgB,CAAA;CACN,CAAA,GACZ,qBAAC,WAAD;EACY;EACV,cAAc;GACZ,UAAU;GACV,YAAY;EACd;EACA,SAAS;EACT,MAAM;EACN,iBAAiB;GACf,UAAU;GACV,YAAY;EACd;EAXF,UAAA;GAaE,oBAAC,UAAD,EAAA,UACE,oBAAC,iBAAD,EAA2B,SAAW,CAAA,EAC9B,CAAA;GACT,gBACC,oBAAC,UAAD;IACE,eAAY;IACZ,IAAG;IACH,eAAe;KACb,oBAAoB;KACpB,SAAS,QAAM,KAAK;IACtB;IAEC,UAAA,EAAE,YAAY;GACP,CAAA;GAEZ,oBAAC,UAAD;IAAU,eAAY;IAAmB,IAAG;IAAmB,SAAS;IACrE,UAAA,EAAE,eAAe;GACV,CAAA;EACD;CACX,CAAA,CAAA,EAAA,CAAA;AAEN"}
|
|
@@ -5,8 +5,8 @@ const require_ThemeProvider = require("../../Theme/ThemeProvider.js");
|
|
|
5
5
|
require("../../index.js");
|
|
6
6
|
let react = require("react");
|
|
7
7
|
react = require_runtime.__toESM(react);
|
|
8
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
8
|
let react_i18next = require("react-i18next");
|
|
9
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
10
|
let _mui_material_Button = require("@mui/material/Button");
|
|
11
11
|
_mui_material_Button = require_runtime.__toESM(_mui_material_Button);
|
|
12
12
|
let _mui_material_Toolbar = require("@mui/material/Toolbar");
|
|
@@ -3,8 +3,8 @@ import HeaderToolTip from "./HeaderToolTip.mjs";
|
|
|
3
3
|
import { useCustomTheme } from "../../Theme/ThemeProvider.mjs";
|
|
4
4
|
import "../../index.mjs";
|
|
5
5
|
import { useEffect, useState } from "react";
|
|
6
|
-
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
7
6
|
import { useTranslation } from "react-i18next";
|
|
7
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import Button from "@mui/material/Button";
|
|
9
9
|
import Toolbar from "@mui/material/Toolbar";
|
|
10
10
|
//#region src/sections/Header/HeaderRight.tsx
|
|
@@ -9,10 +9,10 @@ let _emotion_styled = require("@emotion/styled");
|
|
|
9
9
|
_emotion_styled = require_runtime.__toESM(_emotion_styled);
|
|
10
10
|
let react = require("react");
|
|
11
11
|
react = require_runtime.__toESM(react);
|
|
12
|
+
let react_i18next = require("react-i18next");
|
|
12
13
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
13
14
|
let _mui_material_Box = require("@mui/material/Box");
|
|
14
15
|
_mui_material_Box = require_runtime.__toESM(_mui_material_Box);
|
|
15
|
-
let react_i18next = require("react-i18next");
|
|
16
16
|
let _mui_material_Tab = require("@mui/material/Tab");
|
|
17
17
|
_mui_material_Tab = require_runtime.__toESM(_mui_material_Tab);
|
|
18
18
|
let _mui_material_Tabs = require("@mui/material/Tabs");
|
|
@@ -6,9 +6,9 @@ import RegistryInfoContent from "./RegistryInfoContent/RegistryInfoContent.mjs";
|
|
|
6
6
|
import "./RegistryInfoContent/index.mjs";
|
|
7
7
|
import styled from "@emotion/styled";
|
|
8
8
|
import React from "react";
|
|
9
|
+
import { useTranslation } from "react-i18next";
|
|
9
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
11
|
import Box from "@mui/material/Box";
|
|
11
|
-
import { useTranslation } from "react-i18next";
|
|
12
12
|
import Tab from "@mui/material/Tab";
|
|
13
13
|
import Tabs from "@mui/material/Tabs";
|
|
14
14
|
import ReactMarkdown from "react-markdown";
|
|
@@ -5,10 +5,10 @@ let _emotion_styled = require("@emotion/styled");
|
|
|
5
5
|
_emotion_styled = require_runtime.__toESM(_emotion_styled);
|
|
6
6
|
let react = require("react");
|
|
7
7
|
react = require_runtime.__toESM(react);
|
|
8
|
+
let react_i18next = require("react-i18next");
|
|
8
9
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
10
|
let i18next = require("i18next");
|
|
10
11
|
i18next = require_runtime.__toESM(i18next);
|
|
11
|
-
let react_i18next = require("react-i18next");
|
|
12
12
|
let _mui_material_Typography = require("@mui/material/Typography");
|
|
13
13
|
_mui_material_Typography = require_runtime.__toESM(_mui_material_Typography);
|
|
14
14
|
let _mui_material_Card = require("@mui/material/Card");
|
|
@@ -2,9 +2,9 @@ import { useLanguage } from "../../providers/TranslatorProvider/TranslatorProvid
|
|
|
2
2
|
import "../../index.mjs";
|
|
3
3
|
import styled from "@emotion/styled";
|
|
4
4
|
import { useCallback, useState } from "react";
|
|
5
|
+
import { useTranslation } from "react-i18next";
|
|
5
6
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
7
|
import i18next from "i18next";
|
|
7
|
-
import { useTranslation } from "react-i18next";
|
|
8
8
|
import Typography from "@mui/material/Typography";
|
|
9
9
|
import Card from "@mui/material/Card";
|
|
10
10
|
import CardContent from "@mui/material/CardContent";
|
|
@@ -8,10 +8,10 @@ let _emotion_styled = require("@emotion/styled");
|
|
|
8
8
|
_emotion_styled = require_runtime.__toESM(_emotion_styled);
|
|
9
9
|
let react = require("react");
|
|
10
10
|
react = require_runtime.__toESM(react);
|
|
11
|
+
let react_i18next = require("react-i18next");
|
|
11
12
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
13
|
let _mui_material_Box = require("@mui/material/Box");
|
|
13
14
|
_mui_material_Box = require_runtime.__toESM(_mui_material_Box);
|
|
14
|
-
let react_i18next = require("react-i18next");
|
|
15
15
|
let _mui_material_Link = require("@mui/material/Link");
|
|
16
16
|
_mui_material_Link = require_runtime.__toESM(_mui_material_Link);
|
|
17
17
|
let _mui_material_Typography = require("@mui/material/Typography");
|
|
@@ -5,9 +5,9 @@ import { Description, TextContent } from "./styles.mjs";
|
|
|
5
5
|
import "../../../index.mjs";
|
|
6
6
|
import styled from "@emotion/styled";
|
|
7
7
|
import "react";
|
|
8
|
+
import { useTranslation } from "react-i18next";
|
|
8
9
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
9
10
|
import Box from "@mui/material/Box";
|
|
10
|
-
import { useTranslation } from "react-i18next";
|
|
11
11
|
import Link from "@mui/material/Link";
|
|
12
12
|
import Typography from "@mui/material/Typography";
|
|
13
13
|
import ReactMarkdown from "react-markdown";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
|
|
2
2
|
const require_ManifestsProvider = require("../../providers/ManifestsProvider/ManifestsProvider.js");
|
|
3
|
+
const require_GenericError = require("../../components/GenericError/GenericError.js");
|
|
3
4
|
const require_Loading = require("../../components/Loading/Loading.js");
|
|
4
5
|
const require_PackageList = require("../../components/PackageList/PackageList.js");
|
|
5
6
|
require("../../index.js");
|
|
@@ -9,11 +10,11 @@ let react_jsx_runtime = require("react/jsx-runtime");
|
|
|
9
10
|
//#region src/sections/Home/Home.tsx
|
|
10
11
|
var Home = () => {
|
|
11
12
|
const manifests = require_ManifestsProvider.useManifests();
|
|
12
|
-
if (manifests.isError) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
13
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.
|
|
13
|
+
if (manifests.isError) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_GenericError.default, {});
|
|
14
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
14
15
|
className: "container content",
|
|
15
16
|
"data-testid": "home-page-container",
|
|
16
|
-
children:
|
|
17
|
+
children: manifests.isLoading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Loading.default, {}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PackageList.default, { packages: manifests.manifests })
|
|
17
18
|
});
|
|
18
19
|
};
|
|
19
20
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Home.js","names":[],"sources":["../../../src/sections/Home/Home.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Loading, PackageList, useManifests } from '../..';\nimport type { ManifestWeb } from '../../providers/ManifestsProvider/ManifestsProvider';\n\nconst Home: React.FC = () => {\n const manifests = useManifests();\n\n if (manifests.isError) {\n return <
|
|
1
|
+
{"version":3,"file":"Home.js","names":[],"sources":["../../../src/sections/Home/Home.tsx"],"sourcesContent":["import React from 'react';\n\nimport { GenericError, Loading, PackageList, useManifests } from '../..';\nimport type { ManifestWeb } from '../../providers/ManifestsProvider/ManifestsProvider';\n\nconst Home: React.FC = () => {\n const manifests = useManifests();\n\n if (manifests.isError) {\n return <GenericError />;\n }\n\n return (\n <div className=\"container content\" data-testid=\"home-page-container\">\n {manifests.isLoading ? (\n <Loading />\n ) : (\n <PackageList packages={manifests.manifests as ManifestWeb[]} />\n )}\n </div>\n );\n};\n\nexport default Home;\n"],"mappings":";;;;;;;;;;AAKA,IAAM,aAAuB;CAC3B,MAAM,YAAY,0BAAA,aAAa;CAE/B,IAAI,UAAU,SACZ,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAC,qBAAA,SAAD,CAAe,CAAA;CAGxB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAU;EAAoB,eAAY;EAC5C,UAAA,UAAU,YACT,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAA,SAAD,CAAU,CAAA,IAEV,iBAAA,GAAA,kBAAA,IAAA,CAAC,oBAAA,SAAD,EAAa,UAAU,UAAU,UAA6B,CAAA;CAE7D,CAAA;AAET"}
|