@qlover/create-app 0.7.15 → 0.8.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.
- package/CHANGELOG.md +4 -0
- package/dist/configs/_common/.gitignore.template +6 -0
- package/dist/configs/_common/.prettierignore +17 -5
- package/dist/configs/_common/.vscode/settings.json +6 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/templates/next-app/.env.template +1 -1
- package/dist/templates/next-app/README.en.md +0 -1
- package/dist/templates/next-app/README.md +0 -1
- package/dist/templates/next-app/config/Identifier/api.ts +5 -5
- package/dist/templates/next-app/config/Identifier/common/admint.table.ts +69 -0
- package/dist/templates/next-app/config/Identifier/common/common.ts +76 -0
- package/dist/templates/next-app/config/Identifier/common/index.ts +3 -0
- package/dist/templates/next-app/config/Identifier/{validator.ts → common/validators.ts} +5 -5
- package/dist/templates/next-app/config/Identifier/index.ts +2 -12
- package/dist/templates/next-app/config/Identifier/pages/index.ts +6 -0
- package/dist/templates/next-app/config/Identifier/pages/page.admin.home.ts +27 -0
- package/dist/templates/next-app/config/Identifier/pages/page.admin.locales.ts +266 -0
- package/dist/templates/next-app/config/Identifier/pages/page.admin.user.ts +293 -0
- package/dist/templates/{react-app/config/Identifier → next-app/config/Identifier/pages}/page.home.ts +15 -22
- package/dist/templates/next-app/config/Identifier/{page.login.ts → pages/page.login.ts} +28 -34
- package/dist/templates/next-app/config/Identifier/{page.register.ts → pages/page.register.ts} +30 -29
- package/dist/templates/next-app/config/adminNavs.ts +19 -0
- package/dist/templates/next-app/config/common.ts +22 -13
- package/dist/templates/next-app/config/i18n/HomeI18n.ts +5 -5
- package/dist/templates/next-app/config/i18n/admin18n.ts +61 -19
- package/dist/templates/next-app/config/i18n/i18nConfig.ts +2 -0
- package/dist/templates/next-app/config/i18n/i18nKeyScheam.ts +36 -0
- package/dist/templates/next-app/config/i18n/loginI18n.ts +22 -22
- package/dist/templates/next-app/config/i18n/register18n.ts +23 -24
- package/dist/templates/next-app/docs/en/index.md +0 -1
- package/dist/templates/next-app/docs/en/project-structure.md +0 -1
- package/dist/templates/next-app/docs/zh/index.md +0 -1
- package/dist/templates/next-app/docs/zh/project-structure.md +0 -1
- package/dist/templates/next-app/make/generateLocales.ts +19 -12
- package/dist/templates/next-app/migrations/schema/LocalesSchema.ts +15 -0
- package/dist/templates/next-app/migrations/sql/1694244000000.sql +11 -0
- package/dist/templates/next-app/package.json +7 -3
- package/dist/templates/next-app/public/locales/en.json +172 -207
- package/dist/templates/next-app/public/locales/zh.json +172 -207
- package/dist/templates/next-app/src/app/[locale]/admin/locales/page.tsx +153 -0
- package/dist/templates/next-app/src/app/[locale]/admin/users/page.tsx +48 -50
- package/dist/templates/next-app/src/app/[locale]/login/LoginForm.tsx +2 -2
- package/dist/templates/next-app/src/app/api/admin/locales/create/route.ts +34 -0
- package/dist/templates/next-app/src/app/api/admin/locales/import/route.ts +40 -0
- package/dist/templates/next-app/src/app/api/admin/locales/route.ts +42 -0
- package/dist/templates/next-app/src/app/api/admin/locales/update/route.ts +32 -0
- package/dist/templates/next-app/src/app/api/locales/json/route.ts +44 -0
- package/dist/templates/next-app/src/base/cases/AdminPageManager.ts +1 -13
- package/dist/templates/next-app/src/base/cases/Datetime.ts +18 -0
- package/dist/templates/next-app/src/base/cases/DialogErrorPlugin.ts +12 -6
- package/dist/templates/next-app/src/base/cases/ResourceState.ts +17 -0
- package/dist/templates/next-app/src/base/cases/TranslateI18nInterface.ts +25 -0
- package/dist/templates/next-app/src/base/cases/ZodColumnBuilder.ts +200 -0
- package/dist/templates/next-app/src/base/port/ZodBuilderInterface.ts +8 -0
- package/dist/templates/next-app/src/base/services/AdminLocalesService.ts +20 -0
- package/dist/templates/next-app/src/base/services/AdminPageEvent.ts +26 -0
- package/dist/templates/next-app/src/base/services/AdminPageScheduler.ts +42 -0
- package/dist/templates/next-app/src/base/services/ResourceService.ts +122 -0
- package/dist/templates/next-app/src/base/services/adminApi/AdminLocalesApi.ts +104 -0
- package/dist/templates/next-app/src/base/services/adminApi/AdminUserApi.ts +38 -5
- package/dist/templates/next-app/src/base/services/appApi/AppApiPlugin.ts +1 -1
- package/dist/templates/next-app/src/i18n/request.ts +30 -1
- package/dist/templates/next-app/src/server/PageParams.ts +2 -10
- package/dist/templates/next-app/src/server/port/DBBridgeInterface.ts +5 -0
- package/dist/templates/next-app/src/server/port/DBTableInterface.ts +2 -0
- package/dist/templates/next-app/src/server/port/LocalesRepositoryInterface.ts +43 -0
- package/dist/templates/next-app/src/server/repositorys/LocalesRepository.ts +197 -0
- package/dist/templates/next-app/src/server/services/ApiLocaleService.ts +122 -0
- package/dist/templates/next-app/src/server/sqlBridges/SupabaseBridge.ts +60 -11
- package/dist/templates/next-app/src/server/validators/ExtendedExecutorError.ts +6 -0
- package/dist/templates/next-app/src/server/validators/LocalesValidator.ts +131 -0
- package/dist/templates/next-app/src/server/validators/LoginValidator.ts +2 -5
- package/dist/templates/next-app/src/server/validators/PaginationValidator.ts +32 -16
- package/dist/templates/next-app/src/styles/css/antd-themes/pagination/_default.css +2 -1
- package/dist/templates/next-app/src/styles/css/antd-themes/pagination/dark.css +28 -29
- package/dist/templates/next-app/src/styles/css/antd-themes/pagination/pink.css +2 -1
- package/dist/templates/next-app/src/uikit/components/AdminLayout.tsx +17 -3
- package/dist/templates/next-app/src/uikit/components/BaseHeader.tsx +5 -4
- package/dist/templates/next-app/src/uikit/components/BaseLayout.tsx +5 -4
- package/dist/templates/next-app/src/uikit/components/BootstrapsProvider.tsx +3 -2
- package/dist/templates/next-app/src/uikit/components/ComboProvider.tsx +1 -1
- package/dist/templates/next-app/src/uikit/components/EditableCell.tsx +118 -0
- package/dist/templates/next-app/src/uikit/components/LogoutButton.tsx +5 -6
- package/dist/templates/next-app/src/uikit/components/ThemeSwitcher.tsx +1 -1
- package/dist/templates/next-app/src/uikit/components/With.tsx +2 -2
- package/dist/templates/next-app/src/uikit/components/localesImportButton/LocalesImportButton.tsx +62 -0
- package/dist/templates/next-app/src/uikit/components/localesImportButton/LocalesImportEvent.ts +28 -0
- package/dist/templates/next-app/src/uikit/components/localesImportButton/import.module.css +6 -0
- package/dist/templates/next-app/src/uikit/hook/useI18nInterface.ts +8 -14
- package/dist/templates/next-app/src/uikit/hook/useWarnTranslations.ts +25 -0
- package/dist/templates/react-app/.prettierignore +17 -0
- package/dist/templates/react-app/README.en.md +71 -54
- package/dist/templates/react-app/README.md +35 -18
- package/dist/templates/react-app/__tests__/__mocks__/BootstrapTest.ts +14 -0
- package/dist/templates/react-app/__tests__/__mocks__/MockAppConfit.ts +1 -1
- package/dist/templates/react-app/__tests__/__mocks__/MockDialogHandler.ts +2 -2
- package/dist/templates/react-app/__tests__/__mocks__/MockLogger.ts +1 -1
- package/dist/templates/react-app/__tests__/__mocks__/components/TestApp.tsx +45 -0
- package/dist/templates/react-app/__tests__/__mocks__/components/TestBootstrapsProvider.tsx +34 -0
- package/dist/templates/react-app/__tests__/__mocks__/components/TestRouter.tsx +46 -0
- package/dist/templates/react-app/__tests__/__mocks__/components/index.ts +12 -0
- package/dist/templates/react-app/__tests__/__mocks__/createMockGlobals.ts +1 -2
- package/dist/templates/react-app/__tests__/__mocks__/testIOC/TestIOC.ts +51 -0
- package/dist/templates/react-app/__tests__/__mocks__/testIOC/TestIOCRegister.ts +69 -0
- package/dist/templates/react-app/__tests__/setup/index.ts +1 -51
- package/dist/templates/react-app/__tests__/setup/setupGlobal.ts +51 -0
- package/dist/templates/react-app/__tests__/src/App.structure.test.tsx +115 -0
- package/dist/templates/react-app/__tests__/src/base/cases/AppConfig.test.ts +2 -2
- package/dist/templates/react-app/__tests__/src/base/cases/AppError.test.ts +1 -1
- package/dist/templates/react-app/__tests__/src/base/cases/DialogHandler.test.ts +3 -5
- package/dist/templates/react-app/__tests__/src/base/cases/I18nKeyErrorPlugin.test.ts +13 -2
- package/dist/templates/react-app/__tests__/src/base/cases/InversifyContainer.test.ts +1 -1
- package/dist/templates/react-app/__tests__/src/base/cases/PublicAssetsPath.test.ts +1 -1
- package/dist/templates/react-app/__tests__/src/base/cases/RequestLogger.test.ts +5 -5
- package/dist/templates/react-app/__tests__/src/base/cases/RequestStatusCatcher.test.ts +1 -2
- package/dist/templates/react-app/__tests__/src/base/cases/RouterLoader.test.ts +25 -15
- package/dist/templates/react-app/__tests__/src/base/services/I18nService.test.ts +29 -15
- package/dist/templates/react-app/__tests__/src/core/IOC.test.ts +19 -9
- package/dist/templates/react-app/__tests__/src/core/bootstraps/BootstrapClient.test.ts +153 -0
- package/dist/templates/react-app/__tests__/src/core/bootstraps/BootstrapsApp.test.ts +9 -7
- package/dist/templates/react-app/__tests__/src/main.integration.test.tsx +4 -5
- package/dist/templates/react-app/__tests__/src/main.test.tsx +4 -4
- package/dist/templates/react-app/__tests__/src/uikit/components/BaseHeader.test.tsx +68 -59
- package/dist/templates/react-app/config/IOCIdentifier.ts +8 -8
- package/dist/templates/react-app/config/Identifier/{common.error.ts → common/common.error.ts} +5 -5
- package/dist/templates/react-app/config/Identifier/{common.ts → common/common.ts} +9 -9
- package/dist/templates/react-app/config/Identifier/common/index.ts +2 -0
- package/dist/templates/react-app/config/Identifier/index.ts +1 -9
- package/dist/templates/react-app/config/Identifier/pages/index.ts +8 -0
- package/dist/templates/react-app/config/Identifier/{page.about.ts → pages/page.about.ts} +34 -26
- package/dist/templates/react-app/config/Identifier/{page.executor.ts → pages/page.executor.ts} +47 -39
- package/dist/templates/{next-app/config/Identifier → react-app/config/Identifier/pages}/page.home.ts +24 -23
- package/dist/templates/react-app/config/Identifier/pages/page.identifiter.ts +102 -0
- package/dist/templates/react-app/config/Identifier/{page.jsonStorage.ts → pages/page.jsonStorage.ts} +18 -11
- package/dist/templates/react-app/config/Identifier/{page.login.ts → pages/page.login.ts} +37 -27
- package/dist/templates/react-app/config/Identifier/{page.register.ts → pages/page.register.ts} +37 -25
- package/dist/templates/react-app/config/Identifier/{page.request.ts → pages/page.request.ts} +34 -44
- package/dist/templates/react-app/config/app.router.ts +66 -69
- package/dist/templates/react-app/config/i18n/PageI18nInterface.ts +51 -0
- package/dist/templates/react-app/config/i18n/aboutI18n.ts +42 -0
- package/dist/templates/react-app/config/i18n/executorI18n.ts +51 -0
- package/dist/templates/react-app/config/i18n/homeI18n.ts +24 -0
- package/dist/templates/react-app/config/i18n/i18nConfig.ts +30 -0
- package/dist/templates/react-app/config/i18n/identifiter18n.ts +30 -0
- package/dist/templates/react-app/config/i18n/jsonStorage18n.ts +27 -0
- package/dist/templates/react-app/config/i18n/login18n.ts +42 -0
- package/dist/templates/react-app/config/i18n/notFoundI18n.ts +34 -0
- package/dist/templates/react-app/config/i18n/register18n.ts +40 -0
- package/dist/templates/react-app/config/i18n/request18n.ts +41 -0
- package/dist/templates/react-app/config/theme.ts +14 -4
- package/dist/templates/react-app/docs/en/bootstrap.md +1670 -341
- package/dist/templates/react-app/docs/en/development-guide.md +1021 -345
- package/dist/templates/react-app/docs/en/env.md +1132 -278
- package/dist/templates/react-app/docs/en/i18n.md +858 -147
- package/dist/templates/react-app/docs/en/index.md +733 -104
- package/dist/templates/react-app/docs/en/ioc.md +1228 -287
- package/dist/templates/react-app/docs/en/playwright/e2e-tests.md +321 -0
- package/dist/templates/react-app/docs/en/playwright/index.md +19 -0
- package/dist/templates/react-app/docs/en/playwright/installation-summary.md +332 -0
- package/dist/templates/react-app/docs/en/playwright/overview.md +222 -0
- package/dist/templates/react-app/docs/en/playwright/quickstart.md +325 -0
- package/dist/templates/react-app/docs/en/playwright/reorganization-notes.md +340 -0
- package/dist/templates/react-app/docs/en/playwright/setup-complete.md +290 -0
- package/dist/templates/react-app/docs/en/playwright/testing-guide.md +565 -0
- package/dist/templates/react-app/docs/en/store.md +1194 -184
- package/dist/templates/react-app/docs/en/why-no-globals.md +797 -0
- package/dist/templates/react-app/docs/zh/bootstrap.md +1670 -341
- package/dist/templates/react-app/docs/zh/development-guide.md +1021 -345
- package/dist/templates/react-app/docs/zh/env.md +1132 -275
- package/dist/templates/react-app/docs/zh/i18n.md +858 -147
- package/dist/templates/react-app/docs/zh/index.md +717 -104
- package/dist/templates/react-app/docs/zh/ioc.md +1229 -287
- package/dist/templates/react-app/docs/zh/playwright/e2e-tests.md +321 -0
- package/dist/templates/react-app/docs/zh/playwright/index.md +19 -0
- package/dist/templates/react-app/docs/zh/playwright/installation-summary.md +332 -0
- package/dist/templates/react-app/docs/zh/playwright/overview.md +222 -0
- package/dist/templates/react-app/docs/zh/playwright/quickstart.md +325 -0
- package/dist/templates/react-app/docs/zh/playwright/reorganization-notes.md +340 -0
- package/dist/templates/react-app/docs/zh/playwright/setup-complete.md +290 -0
- package/dist/templates/react-app/docs/zh/playwright/testing-guide.md +565 -0
- package/dist/templates/react-app/docs/zh/store.md +1192 -184
- package/dist/templates/react-app/docs/zh/why-no-globals.md +797 -0
- package/dist/templates/react-app/e2e/App.spec.ts +319 -0
- package/dist/templates/react-app/e2e/fixtures/base.fixture.ts +40 -0
- package/dist/templates/react-app/e2e/main.spec.ts +20 -0
- package/dist/templates/react-app/e2e/utils/test-helpers.ts +19 -0
- package/dist/templates/react-app/eslint.config.mjs +247 -0
- package/dist/templates/react-app/makes/eslint-utils.mjs +195 -0
- package/dist/templates/react-app/makes/generateTs2LocalesOptions.ts +26 -0
- package/dist/templates/react-app/package.json +31 -3
- package/dist/templates/react-app/playwright.config.ts +79 -0
- package/dist/templates/react-app/public/locales/en/common.json +190 -179
- package/dist/templates/react-app/public/locales/zh/common.json +190 -179
- package/dist/templates/react-app/src/App.tsx +15 -42
- package/dist/templates/react-app/src/base/apis/AiApi.ts +5 -5
- package/dist/templates/react-app/src/base/apis/feApi/FeApi.ts +1 -1
- package/dist/templates/react-app/src/base/apis/feApi/FeApiAdapter.ts +1 -1
- package/dist/templates/react-app/src/base/apis/feApi/FeApiBootstarp.ts +8 -8
- package/dist/templates/react-app/src/base/apis/feApi/FeApiType.ts +1 -1
- package/dist/templates/react-app/src/base/apis/userApi/UserApi.ts +6 -6
- package/dist/templates/react-app/src/base/apis/userApi/UserApiAdapter.ts +1 -1
- package/dist/templates/react-app/src/base/apis/userApi/UserApiBootstarp.ts +12 -14
- package/dist/templates/react-app/src/base/apis/userApi/UserApiType.ts +1 -1
- package/dist/templates/react-app/src/base/cases/DialogHandler.ts +5 -2
- package/dist/templates/react-app/src/base/cases/I18nKeyErrorPlugin.ts +3 -3
- package/dist/templates/react-app/src/base/cases/InversifyContainer.ts +3 -3
- package/dist/templates/react-app/src/base/cases/RequestLanguages.ts +2 -2
- package/dist/templates/react-app/src/base/cases/RequestLogger.ts +4 -4
- package/dist/templates/react-app/src/base/cases/RequestStatusCatcher.ts +1 -1
- package/dist/templates/react-app/src/base/cases/ResourceState.ts +23 -0
- package/dist/templates/react-app/src/base/cases/RouterLoader.ts +4 -4
- package/dist/templates/react-app/src/base/cases/TranslateI18nInterface.ts +26 -0
- package/dist/templates/react-app/src/base/port/ExecutorPageBridgeInterface.ts +2 -3
- package/dist/templates/react-app/src/base/port/I18nServiceInterface.ts +1 -1
- package/dist/templates/react-app/src/base/port/IOCInterface.ts +36 -0
- package/dist/templates/react-app/src/base/port/JSONStoragePageBridgeInterface.ts +2 -1
- package/dist/templates/react-app/src/base/port/ProcesserExecutorInterface.ts +1 -1
- package/dist/templates/react-app/src/base/port/RequestPageBridgeInterface.ts +2 -2
- package/dist/templates/react-app/src/base/port/RouteServiceInterface.ts +9 -5
- package/dist/templates/react-app/src/base/port/UserServiceInterface.ts +1 -1
- package/dist/templates/react-app/src/base/services/I18nService.ts +29 -29
- package/dist/templates/react-app/src/base/services/IdentifierService.ts +143 -0
- package/dist/templates/react-app/src/base/services/ProcesserExecutor.ts +3 -3
- package/dist/templates/react-app/src/base/services/RouteService.ts +27 -8
- package/dist/templates/react-app/src/base/services/UserService.ts +8 -8
- package/dist/templates/react-app/src/base/types/Page.ts +14 -2
- package/dist/templates/react-app/src/base/types/global.d.ts +1 -1
- package/dist/templates/react-app/src/core/IOC.ts +5 -46
- package/dist/templates/react-app/src/core/bootstraps/{BootstrapApp.ts → BootstrapClient.ts} +44 -17
- package/dist/templates/react-app/src/core/bootstraps/BootstrapsRegistry.ts +14 -7
- package/dist/templates/react-app/src/core/bootstraps/IocIdentifierTest.ts +1 -1
- package/dist/templates/react-app/src/core/bootstraps/PrintBootstrap.ts +1 -1
- package/dist/templates/react-app/src/core/clientIoc/ClientIOC.ts +40 -0
- package/dist/templates/react-app/src/core/{IocRegisterImpl.ts → clientIoc/ClientIOCRegister.ts} +35 -24
- package/dist/templates/react-app/src/core/globals.ts +9 -9
- package/dist/templates/react-app/src/main.tsx +4 -4
- package/dist/templates/react-app/src/pages/404.tsx +6 -3
- package/dist/templates/react-app/src/pages/500.tsx +5 -2
- package/dist/templates/react-app/src/pages/NoRouteFound.tsx +5 -0
- package/dist/templates/react-app/src/pages/auth/Layout.tsx +9 -6
- package/dist/templates/react-app/src/pages/auth/LoginPage.tsx +46 -56
- package/dist/templates/react-app/src/pages/auth/RegisterPage.tsx +46 -58
- package/dist/templates/react-app/src/pages/base/AboutPage.tsx +35 -40
- package/dist/templates/react-app/src/pages/base/ExecutorPage.tsx +51 -51
- package/dist/templates/react-app/src/pages/base/HomePage.tsx +14 -15
- package/dist/templates/react-app/src/pages/base/IdentifierPage.tsx +70 -11
- package/dist/templates/react-app/src/pages/base/JSONStoragePage.tsx +24 -25
- package/dist/templates/react-app/src/pages/base/Layout.tsx +2 -2
- package/dist/templates/react-app/src/pages/base/RedirectPathname.tsx +3 -2
- package/dist/templates/react-app/src/pages/base/RequestPage.tsx +41 -59
- package/dist/templates/react-app/src/styles/css/antd-themes/{_default.css → _common/_default.css} +85 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/{dark.css → _common/dark.css} +99 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/_common/index.css +3 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/{pink.css → _common/pink.css} +86 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/index.css +4 -3
- package/dist/templates/react-app/src/styles/css/antd-themes/menu/_default.css +108 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/menu/dark.css +67 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/menu/index.css +3 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/menu/pink.css +67 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/pagination/_default.css +34 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/pagination/dark.css +31 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/pagination/index.css +3 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/pagination/pink.css +36 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/table/_default.css +44 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/table/dark.css +43 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/table/index.css +3 -0
- package/dist/templates/react-app/src/styles/css/antd-themes/table/pink.css +43 -0
- package/dist/templates/react-app/src/styles/css/page.css +4 -3
- package/dist/templates/react-app/src/styles/css/themes/_default.css +1 -0
- package/dist/templates/react-app/src/styles/css/themes/dark.css +1 -0
- package/dist/templates/react-app/src/styles/css/themes/pink.css +1 -0
- package/dist/templates/react-app/src/styles/css/zIndex.css +1 -1
- package/dist/templates/react-app/src/uikit/bridges/ExecutorPageBridge.ts +3 -3
- package/dist/templates/react-app/src/uikit/bridges/JSONStoragePageBridge.ts +2 -2
- package/dist/templates/react-app/src/uikit/bridges/NavigateBridge.ts +1 -1
- package/dist/templates/react-app/src/uikit/bridges/RequestPageBridge.ts +3 -3
- package/dist/templates/react-app/src/uikit/components/AppRouterProvider.tsx +35 -0
- package/dist/templates/react-app/src/uikit/components/BaseHeader.tsx +15 -11
- package/dist/templates/react-app/src/uikit/components/BaseRouteProvider.tsx +14 -11
- package/dist/templates/react-app/src/uikit/components/BaseRouteSeo.tsx +18 -0
- package/dist/templates/react-app/src/uikit/components/BootstrapsProvider.tsx +13 -0
- package/dist/templates/react-app/src/uikit/components/ClientSeo.tsx +62 -0
- package/dist/templates/react-app/src/uikit/components/ComboProvider.tsx +38 -0
- package/dist/templates/react-app/src/uikit/components/LanguageSwitcher.tsx +48 -27
- package/dist/templates/react-app/src/uikit/components/Loading.tsx +4 -2
- package/dist/templates/react-app/src/uikit/components/LocaleLink.tsx +4 -5
- package/dist/templates/react-app/src/uikit/components/LogoutButton.tsx +34 -11
- package/dist/templates/react-app/src/uikit/components/ProcessExecutorProvider.tsx +9 -5
- package/dist/templates/react-app/src/uikit/components/RouterRenderComponent.tsx +6 -3
- package/dist/templates/react-app/src/uikit/components/ThemeSwitcher.tsx +97 -40
- package/dist/templates/react-app/src/uikit/components/UserAuthProvider.tsx +5 -5
- package/dist/templates/react-app/src/uikit/components/With.tsx +17 -0
- package/dist/templates/react-app/src/uikit/contexts/BaseRouteContext.ts +17 -11
- package/dist/templates/react-app/src/uikit/contexts/IOCContext.ts +13 -0
- package/dist/templates/react-app/src/uikit/hooks/useAppTranslation.ts +26 -0
- package/dist/templates/react-app/src/uikit/hooks/useI18nGuard.ts +8 -11
- package/dist/templates/react-app/src/uikit/hooks/useI18nInterface.ts +25 -0
- package/dist/templates/react-app/src/uikit/hooks/useIOC.ts +35 -0
- package/dist/templates/react-app/src/uikit/hooks/useNavigateBridge.ts +3 -3
- package/dist/templates/react-app/src/uikit/hooks/useStrictEffect.ts +0 -1
- package/dist/templates/react-app/tsconfig.e2e.json +21 -0
- package/dist/templates/react-app/tsconfig.json +8 -1
- package/dist/templates/react-app/tsconfig.node.json +1 -1
- package/dist/templates/react-app/tsconfig.test.json +3 -1
- package/dist/templates/react-app/vite.config.ts +50 -34
- package/package.json +2 -1
- package/dist/configs/react-app/eslint.config.js +0 -94
- package/dist/templates/next-app/config/Identifier/common.error.ts +0 -41
- package/dist/templates/next-app/config/Identifier/common.ts +0 -69
- package/dist/templates/next-app/config/Identifier/page.about.ts +0 -181
- package/dist/templates/next-app/config/Identifier/page.admin.ts +0 -48
- package/dist/templates/next-app/config/Identifier/page.executor.ts +0 -272
- package/dist/templates/next-app/config/Identifier/page.identifiter.ts +0 -39
- package/dist/templates/next-app/config/Identifier/page.jsonStorage.ts +0 -72
- package/dist/templates/next-app/config/Identifier/page.request.ts +0 -182
- package/dist/templates/next-app/src/base/cases/ChatAction.ts +0 -21
- package/dist/templates/next-app/src/base/cases/FocusBarAction.ts +0 -36
- package/dist/templates/next-app/src/base/cases/RequestState.ts +0 -20
- package/dist/templates/next-app/src/base/port/AdminPageInterface.ts +0 -85
- package/dist/templates/next-app/src/base/port/AsyncStateInterface.ts +0 -7
- package/dist/templates/next-app/src/base/services/AdminUserService.ts +0 -45
- package/dist/templates/next-app/src/uikit/components/ChatRoot.tsx +0 -17
- package/dist/templates/next-app/src/uikit/components/chat/ChatActionInterface.ts +0 -30
- package/dist/templates/next-app/src/uikit/components/chat/ChatFocusBar.tsx +0 -65
- package/dist/templates/next-app/src/uikit/components/chat/ChatMessages.tsx +0 -59
- package/dist/templates/next-app/src/uikit/components/chat/ChatWrap.tsx +0 -28
- package/dist/templates/next-app/src/uikit/components/chat/FocusBarActionInterface.ts +0 -19
- package/dist/templates/next-app/src/uikit/hook/useMountedClient.ts +0 -17
- package/dist/templates/next-app/src/uikit/hook/useStore.ts +0 -15
- package/dist/templates/react-app/__tests__/__mocks__/I18nService.ts +0 -13
- package/dist/templates/react-app/__tests__/src/App.test.tsx +0 -139
- package/dist/templates/react-app/config/Identifier/page.identifiter.ts +0 -39
- package/dist/templates/react-app/config/i18n.ts +0 -15
- package/dist/templates/react-app/docs/en/project-structure.md +0 -434
- package/dist/templates/react-app/docs/zh/project-structure.md +0 -434
- package/dist/templates/react-app/src/base/cases/RequestState.ts +0 -20
- package/dist/templates/react-app/src/base/port/AsyncStateInterface.ts +0 -7
- package/dist/templates/react-app/src/uikit/hooks/useDocumentTitle.ts +0 -15
- package/dist/templates/react-app/src/uikit/hooks/useStore.ts +0 -15
package/dist/templates/react-app/config/Identifier/{page.request.ts → pages/page.request.ts}
RENAMED
|
@@ -3,177 +3,167 @@
|
|
|
3
3
|
* @localZh 请求示例
|
|
4
4
|
* @localEn Request Examples
|
|
5
5
|
*/
|
|
6
|
-
export const PAGE_REQUEST_TITLE = '
|
|
6
|
+
export const PAGE_REQUEST_TITLE = 'page_request:title';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @description Request page description
|
|
10
10
|
* @localZh 展示各种请求示例和用法
|
|
11
11
|
* @localEn Demonstrate various request examples and usage
|
|
12
12
|
*/
|
|
13
|
-
export const PAGE_REQUEST_DESCRIPTION = '
|
|
13
|
+
export const PAGE_REQUEST_DESCRIPTION = 'page_request:description';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @description Request page keywords
|
|
17
|
+
* @localZh 请求示例, 请求用法
|
|
18
|
+
* @localEn Request Examples, Request Usage
|
|
19
|
+
*/
|
|
20
|
+
export const PAGE_REQUEST_KEYWORDS = 'page_request:keywords';
|
|
14
21
|
|
|
15
22
|
/**
|
|
16
23
|
* @description Request timeout message
|
|
17
24
|
* @localZh 请求超时
|
|
18
25
|
* @localEn Request Timeout
|
|
19
26
|
*/
|
|
20
|
-
export const
|
|
27
|
+
export const PAGE_REQUEST_TIMEOUT = 'page_request:requestTimeout';
|
|
21
28
|
/**
|
|
22
29
|
* @description Hello result message
|
|
23
30
|
* @localZh Hello 结果是
|
|
24
31
|
* @localEn Hello result is
|
|
25
32
|
*/
|
|
26
|
-
export const
|
|
33
|
+
export const PAGE_REQUEST_HELLO_RESULT = 'page_request:helloResult';
|
|
27
34
|
/**
|
|
28
35
|
* @description Hello error message
|
|
29
36
|
* @localZh Hello 错误是
|
|
30
37
|
* @localEn Hello error is
|
|
31
38
|
*/
|
|
32
|
-
export const
|
|
39
|
+
export const PAGE_REQUEST_HELLO_ERROR = 'page_request:helloError';
|
|
33
40
|
/**
|
|
34
41
|
* @description IpInfo result message
|
|
35
42
|
* @localZh IpInfo 结果是
|
|
36
43
|
* @localEn IpInfo result is
|
|
37
44
|
*/
|
|
38
|
-
export const
|
|
45
|
+
export const PAGE_REQUEST_IP_INFO_RESULT = 'page_request:ipInfoResult';
|
|
39
46
|
/**
|
|
40
47
|
* @description IpInfo title
|
|
41
48
|
* @localZh IpInfo
|
|
42
49
|
* @localEn IpInfo
|
|
43
50
|
*/
|
|
44
|
-
export const
|
|
51
|
+
export const PAGE_REQUEST_IP_INFO = 'page_request:ipInfo';
|
|
45
52
|
/**
|
|
46
53
|
* @description Random user title
|
|
47
54
|
* @localZh 随机用户
|
|
48
55
|
* @localEn RandomUser
|
|
49
56
|
*/
|
|
50
|
-
export const
|
|
57
|
+
export const PAGE_REQUEST_RANDOM_USER = 'page_request:randomUser';
|
|
51
58
|
/**
|
|
52
59
|
* @description Loading message
|
|
53
60
|
* @localZh 加载中...
|
|
54
61
|
* @localEn Loading...
|
|
55
62
|
*/
|
|
56
|
-
export const
|
|
63
|
+
export const PAGE_REQUEST_LOADING = 'page_request:loading';
|
|
57
64
|
/**
|
|
58
65
|
* @description Random user result message
|
|
59
66
|
* @localZh 随机用户 结果是
|
|
60
67
|
* @localEn RandomUser result is
|
|
61
68
|
*/
|
|
62
|
-
export const
|
|
69
|
+
export const PAGE_REQUEST_RANDOM_USER_RESULT = 'page_request:randomUserResult';
|
|
63
70
|
/**
|
|
64
71
|
* @description Random user error message
|
|
65
72
|
* @localZh 随机用户 错误是
|
|
66
73
|
* @localEn RandomUser error is
|
|
67
74
|
*/
|
|
68
|
-
export const
|
|
69
|
-
|
|
70
|
-
* @description Trigger abort request button text
|
|
71
|
-
* @localZh 触发中止请求
|
|
72
|
-
* @localEn Trigger Abort Request
|
|
73
|
-
*/
|
|
74
|
-
export const REQUEST_TRIGGER_ABORT = 'request.triggerAbortRequest';
|
|
75
|
-
/**
|
|
76
|
-
* @description Stop abort request button text
|
|
77
|
-
* @localZh 停止中止请求
|
|
78
|
-
* @localEn Stop Abort Request
|
|
79
|
-
*/
|
|
80
|
-
export const REQUEST_STOP_ABORT = 'request.stopAbortRequest';
|
|
75
|
+
export const PAGE_REQUEST_RANDOM_USER_ERROR = 'page_request:randomUserError';
|
|
76
|
+
|
|
81
77
|
/**
|
|
82
78
|
* @description Abort request result message
|
|
83
79
|
* @localZh 中止请求 结果是
|
|
84
80
|
* @localEn Abort Request Result
|
|
85
81
|
*/
|
|
86
|
-
export const
|
|
82
|
+
export const PAGE_REQUEST_ABORT_RESULT = 'page_request:abortRequestResult';
|
|
87
83
|
/**
|
|
88
84
|
* @description Abort request error message
|
|
89
85
|
* @localZh 中止请求 错误是
|
|
90
86
|
* @localEn Abort Request Error
|
|
91
87
|
*/
|
|
92
|
-
export const
|
|
88
|
+
export const PAGE_REQUEST_ABORT_ERROR = 'page_request:abortRequestError';
|
|
93
89
|
|
|
94
|
-
/**
|
|
95
|
-
* @description Request page timeout title
|
|
96
|
-
* @localZh 请求超时时间
|
|
97
|
-
* @localEn Request Timeout
|
|
98
|
-
*/
|
|
99
|
-
export const PAGE_REQUEST_TIMEOUT = 'page.request.timeout';
|
|
100
90
|
/**
|
|
101
91
|
* @description Request page hello api title
|
|
102
92
|
* @localZh AI API: Hello
|
|
103
93
|
* @localEn AI API: Hello
|
|
104
94
|
*/
|
|
105
|
-
export const PAGE_REQUEST_HELLO_TITLE = '
|
|
95
|
+
export const PAGE_REQUEST_HELLO_TITLE = 'page_request:hello.title';
|
|
106
96
|
/**
|
|
107
97
|
* @description Request page hello api description
|
|
108
98
|
* @localZh 函数式 api, 使用了 FetchURLPlugin, RequestCommonPlugin, ApiMockPlugin, RequestLogger 插件
|
|
109
99
|
* @localEn Functional API using FetchURLPlugin, RequestCommonPlugin, ApiMockPlugin, RequestLogger plugins
|
|
110
100
|
*/
|
|
111
|
-
export const PAGE_REQUEST_HELLO_DESCRIPTION = '
|
|
101
|
+
export const PAGE_REQUEST_HELLO_DESCRIPTION = 'page_request:hello.description';
|
|
112
102
|
/**
|
|
113
103
|
* @description Request page hello button text
|
|
114
104
|
* @localZh Hello
|
|
115
105
|
* @localEn Hello
|
|
116
106
|
*/
|
|
117
|
-
export const PAGE_REQUEST_HELLO_BUTTON = '
|
|
107
|
+
export const PAGE_REQUEST_HELLO_BUTTON = 'page_request:hello.button';
|
|
118
108
|
/**
|
|
119
109
|
* @description Request page ip info title
|
|
120
110
|
* @localZh FeApi: IP Information
|
|
121
111
|
* @localEn FeApi: IP Information
|
|
122
112
|
*/
|
|
123
|
-
export const PAGE_REQUEST_IP_INFO_TITLE = '
|
|
113
|
+
export const PAGE_REQUEST_IP_INFO_TITLE = 'page_request:ip_info.title';
|
|
124
114
|
/**
|
|
125
115
|
* @description Request page ip info description
|
|
126
116
|
* @localZh RequestScheduler 类式 api, 使用了 FetchURLPlugin, RequestCommonPlugin, RequestLogger, ApiPickDataPlugin 插件, 其中 ApiPickDataPlugin 插件可以将返回类型统一扁平到 data 字段
|
|
127
117
|
* @localEn RequestScheduler class API using FetchURLPlugin, RequestCommonPlugin, RequestLogger, ApiPickDataPlugin plugins, where ApiPickDataPlugin can flatten return types to data field
|
|
128
118
|
*/
|
|
129
119
|
export const PAGE_REQUEST_IP_INFO_DESCRIPTION =
|
|
130
|
-
'
|
|
120
|
+
'page_request:ip_info.description';
|
|
131
121
|
/**
|
|
132
122
|
* @description Request page random user title
|
|
133
123
|
* @localZh UserApi: Random User
|
|
134
124
|
* @localEn UserApi: Random User
|
|
135
125
|
*/
|
|
136
|
-
export const PAGE_REQUEST_RANDOM_USER_TITLE = '
|
|
126
|
+
export const PAGE_REQUEST_RANDOM_USER_TITLE = 'page_request:random_user.title';
|
|
137
127
|
/**
|
|
138
128
|
* @description Request page random user description
|
|
139
129
|
* @localZh RequestTransaction 类式 api, 使用了 FetchURLPlugin, RequestCommonPlugin, ApiMockPlugin, FetchAbortPlugin, RequestLogger, ApiCatchPlugin 插件, 其中 FetchAbortPlugin 可以中止请求, ApiCatchPlugin 可以将捕获的错误统一到 apiCatchResult 字段
|
|
140
130
|
* @localEn RequestTransaction class API using FetchURLPlugin, RequestCommonPlugin, ApiMockPlugin, FetchAbortPlugin, RequestLogger, ApiCatchPlugin plugins, where FetchAbortPlugin can abort requests, ApiCatchPlugin can unify caught errors to apiCatchResult field
|
|
141
131
|
*/
|
|
142
132
|
export const PAGE_REQUEST_RANDOM_USER_DESCRIPTION =
|
|
143
|
-
'
|
|
133
|
+
'page_request:random_user.description';
|
|
144
134
|
/**
|
|
145
135
|
* @description Request page api catch result title
|
|
146
136
|
* @localZh UserApi: Api Catch Result
|
|
147
137
|
* @localEn UserApi: Api Catch Result
|
|
148
138
|
*/
|
|
149
|
-
export const PAGE_REQUEST_API_CATCH_TITLE = '
|
|
139
|
+
export const PAGE_REQUEST_API_CATCH_TITLE = 'page_request:api_catch.title';
|
|
150
140
|
/**
|
|
151
141
|
* @description Request page abort request title
|
|
152
142
|
* @localZh UserApi: Abort Request
|
|
153
143
|
* @localEn UserApi: Abort Request
|
|
154
144
|
*/
|
|
155
|
-
export const PAGE_REQUEST_ABORT_TITLE = '
|
|
145
|
+
export const PAGE_REQUEST_ABORT_TITLE = 'page_request:abort.title';
|
|
156
146
|
/**
|
|
157
147
|
* @description Request page trigger abort request button
|
|
158
148
|
* @localZh 触发中止请求
|
|
159
149
|
* @localEn Trigger Abort Request
|
|
160
150
|
*/
|
|
161
|
-
export const PAGE_REQUEST_TRIGGER_ABORT = '
|
|
151
|
+
export const PAGE_REQUEST_TRIGGER_ABORT = 'page_request:trigger_abort';
|
|
162
152
|
/**
|
|
163
153
|
* @description Request page stop abort request button
|
|
164
154
|
* @localZh 停止中止请求
|
|
165
155
|
* @localEn Stop Abort Request
|
|
166
156
|
*/
|
|
167
|
-
export const PAGE_REQUEST_STOP_ABORT = '
|
|
157
|
+
export const PAGE_REQUEST_STOP_ABORT = 'page_request:stop_abort';
|
|
168
158
|
/**
|
|
169
159
|
* @description Request page trigger api catch result button
|
|
170
160
|
* @localZh 触发 API 捕获结果
|
|
171
161
|
* @localEn Trigger API Catch Result
|
|
172
162
|
*/
|
|
173
|
-
export const PAGE_REQUEST_TRIGGER_API_CATCH = '
|
|
163
|
+
export const PAGE_REQUEST_TRIGGER_API_CATCH = 'page_request:trigger_api_catch';
|
|
174
164
|
/**
|
|
175
165
|
* @description Request page stop api catch result button
|
|
176
166
|
* @localZh 停止 API 捕获结果
|
|
177
167
|
* @localEn Stop API Catch Result
|
|
178
168
|
*/
|
|
179
|
-
export const PAGE_REQUEST_STOP_API_CATCH = '
|
|
169
|
+
export const PAGE_REQUEST_STOP_API_CATCH = 'page_request:stop_api_catch';
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import type { RouteConfigValue } from '@/base/cases/RouterLoader';
|
|
2
|
+
import { aboutI18n } from './i18n/aboutI18n';
|
|
3
|
+
import { executorI18n } from './i18n/executorI18n';
|
|
4
|
+
import { homeI18n } from './i18n/homeI18n';
|
|
5
|
+
import { identifiter18n } from './i18n/identifiter18n';
|
|
6
|
+
import { jsonStorage18n } from './i18n/jsonStorage18n';
|
|
7
|
+
import { login18n } from './i18n/login18n';
|
|
8
|
+
import { notFound18n, serverError18n } from './i18n/notFoundI18n';
|
|
9
|
+
import { register18n } from './i18n/register18n';
|
|
10
|
+
import { request18n } from './i18n/request18n';
|
|
2
11
|
import * as identifier from './Identifier';
|
|
3
12
|
|
|
4
13
|
export const baseRoutes: RouteConfigValue[] = [
|
|
@@ -20,7 +29,8 @@ export const baseRoutes: RouteConfigValue[] = [
|
|
|
20
29
|
title: identifier.PAGE_HOME_TITLE,
|
|
21
30
|
description: identifier.PAGE_HOME_DESCRIPTION,
|
|
22
31
|
icon: 'home',
|
|
23
|
-
localNamespace: 'common'
|
|
32
|
+
localNamespace: 'common',
|
|
33
|
+
i18nInterface: homeI18n
|
|
24
34
|
}
|
|
25
35
|
},
|
|
26
36
|
{
|
|
@@ -30,7 +40,8 @@ export const baseRoutes: RouteConfigValue[] = [
|
|
|
30
40
|
title: identifier.PAGE_ABOUT_TITLE,
|
|
31
41
|
description: identifier.PAGE_ABOUT_DESCRIPTION,
|
|
32
42
|
icon: 'info',
|
|
33
|
-
localNamespace: 'common'
|
|
43
|
+
localNamespace: 'common',
|
|
44
|
+
i18nInterface: aboutI18n
|
|
34
45
|
}
|
|
35
46
|
},
|
|
36
47
|
{
|
|
@@ -40,7 +51,8 @@ export const baseRoutes: RouteConfigValue[] = [
|
|
|
40
51
|
title: identifier.PAGE_JSONSTORAGE_TITLE,
|
|
41
52
|
description: identifier.PAGE_JSONSTORAGE_DESCRIPTION,
|
|
42
53
|
icon: 'info',
|
|
43
|
-
localNamespace: 'common'
|
|
54
|
+
localNamespace: 'common',
|
|
55
|
+
i18nInterface: jsonStorage18n
|
|
44
56
|
}
|
|
45
57
|
},
|
|
46
58
|
{
|
|
@@ -50,7 +62,8 @@ export const baseRoutes: RouteConfigValue[] = [
|
|
|
50
62
|
title: identifier.PAGE_REQUEST_TITLE,
|
|
51
63
|
description: identifier.PAGE_REQUEST_DESCRIPTION,
|
|
52
64
|
icon: 'info',
|
|
53
|
-
localNamespace: 'common'
|
|
65
|
+
localNamespace: 'common',
|
|
66
|
+
i18nInterface: request18n
|
|
54
67
|
}
|
|
55
68
|
},
|
|
56
69
|
{
|
|
@@ -60,7 +73,8 @@ export const baseRoutes: RouteConfigValue[] = [
|
|
|
60
73
|
title: identifier.PAGE_EXECUTOR_TITLE,
|
|
61
74
|
description: identifier.PAGE_EXECUTOR_DESCRIPTION,
|
|
62
75
|
icon: 'info',
|
|
63
|
-
localNamespace: 'common'
|
|
76
|
+
localNamespace: 'common',
|
|
77
|
+
i18nInterface: executorI18n
|
|
64
78
|
}
|
|
65
79
|
},
|
|
66
80
|
{
|
|
@@ -70,27 +84,17 @@ export const baseRoutes: RouteConfigValue[] = [
|
|
|
70
84
|
title: identifier.PAGE_ERROR_IDENTIFIER_TITLE,
|
|
71
85
|
description: identifier.PAGE_ERROR_IDENTIFIER_DESCRIPTION,
|
|
72
86
|
icon: 'info',
|
|
73
|
-
localNamespace: 'common'
|
|
74
|
-
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
path: '404',
|
|
78
|
-
element: '404',
|
|
79
|
-
meta: {
|
|
80
|
-
category: 'common',
|
|
81
|
-
title: identifier.PAGE_404_TITLE,
|
|
82
|
-
description: identifier.PAGE_404_DESCRIPTION,
|
|
83
|
-
localNamespace: 'common'
|
|
87
|
+
localNamespace: 'common',
|
|
88
|
+
i18nInterface: identifiter18n
|
|
84
89
|
}
|
|
85
90
|
},
|
|
86
91
|
{
|
|
87
|
-
path: '
|
|
88
|
-
element: '
|
|
92
|
+
path: '*',
|
|
93
|
+
element: 'NoRouteFound',
|
|
89
94
|
meta: {
|
|
90
95
|
category: 'common',
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
localNamespace: 'common'
|
|
96
|
+
localNamespace: 'common',
|
|
97
|
+
i18nInterface: notFound18n
|
|
94
98
|
}
|
|
95
99
|
}
|
|
96
100
|
]
|
|
@@ -114,7 +118,8 @@ export const baseRoutes: RouteConfigValue[] = [
|
|
|
114
118
|
title: identifier.PAGE_LOGIN_TITLE,
|
|
115
119
|
description: identifier.PAGE_LOGIN_DESCRIPTION,
|
|
116
120
|
icon: 'info',
|
|
117
|
-
localNamespace: 'common'
|
|
121
|
+
localNamespace: 'common',
|
|
122
|
+
i18nInterface: login18n
|
|
118
123
|
}
|
|
119
124
|
},
|
|
120
125
|
{
|
|
@@ -124,7 +129,17 @@ export const baseRoutes: RouteConfigValue[] = [
|
|
|
124
129
|
title: identifier.PAGE_REGISTER_TITLE,
|
|
125
130
|
description: identifier.PAGE_REGISTER_DESCRIPTION,
|
|
126
131
|
icon: 'info',
|
|
127
|
-
localNamespace: 'common'
|
|
132
|
+
localNamespace: 'common',
|
|
133
|
+
i18nInterface: register18n
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
path: '*',
|
|
138
|
+
element: 'NoRouteFound',
|
|
139
|
+
meta: {
|
|
140
|
+
category: 'common',
|
|
141
|
+
localNamespace: 'common',
|
|
142
|
+
i18nInterface: notFound18n
|
|
128
143
|
}
|
|
129
144
|
}
|
|
130
145
|
]
|
|
@@ -135,9 +150,8 @@ export const baseRoutes: RouteConfigValue[] = [
|
|
|
135
150
|
element: '404',
|
|
136
151
|
meta: {
|
|
137
152
|
category: 'common',
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
localNamespace: 'common'
|
|
153
|
+
localNamespace: 'common',
|
|
154
|
+
i18nInterface: notFound18n
|
|
141
155
|
}
|
|
142
156
|
},
|
|
143
157
|
{
|
|
@@ -145,19 +159,19 @@ export const baseRoutes: RouteConfigValue[] = [
|
|
|
145
159
|
element: '500',
|
|
146
160
|
meta: {
|
|
147
161
|
category: 'common',
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
localNamespace: 'common'
|
|
162
|
+
localNamespace: 'common',
|
|
163
|
+
i18nInterface: serverError18n
|
|
151
164
|
}
|
|
152
165
|
},
|
|
153
166
|
{
|
|
154
167
|
path: '*',
|
|
155
|
-
element: '
|
|
168
|
+
element: 'NoRouteFound',
|
|
156
169
|
meta: {
|
|
157
170
|
category: 'common',
|
|
158
171
|
title: identifier.PAGE_404_TITLE,
|
|
159
172
|
description: identifier.PAGE_404_DESCRIPTION,
|
|
160
|
-
localNamespace: 'common'
|
|
173
|
+
localNamespace: 'common',
|
|
174
|
+
i18nInterface: notFound18n
|
|
161
175
|
}
|
|
162
176
|
}
|
|
163
177
|
];
|
|
@@ -177,7 +191,8 @@ export const baseNoLocaleRoutes: RouteConfigValue[] = [
|
|
|
177
191
|
title: identifier.PAGE_HOME_TITLE,
|
|
178
192
|
description: identifier.PAGE_HOME_DESCRIPTION,
|
|
179
193
|
icon: 'home',
|
|
180
|
-
localNamespace: 'common'
|
|
194
|
+
localNamespace: 'common',
|
|
195
|
+
i18nInterface: homeI18n
|
|
181
196
|
}
|
|
182
197
|
},
|
|
183
198
|
{
|
|
@@ -187,7 +202,8 @@ export const baseNoLocaleRoutes: RouteConfigValue[] = [
|
|
|
187
202
|
title: identifier.PAGE_ABOUT_TITLE,
|
|
188
203
|
description: identifier.PAGE_ABOUT_DESCRIPTION,
|
|
189
204
|
icon: 'info',
|
|
190
|
-
localNamespace: 'common'
|
|
205
|
+
localNamespace: 'common',
|
|
206
|
+
i18nInterface: aboutI18n
|
|
191
207
|
}
|
|
192
208
|
},
|
|
193
209
|
{
|
|
@@ -197,7 +213,8 @@ export const baseNoLocaleRoutes: RouteConfigValue[] = [
|
|
|
197
213
|
title: identifier.PAGE_JSONSTORAGE_TITLE,
|
|
198
214
|
description: identifier.PAGE_JSONSTORAGE_DESCRIPTION,
|
|
199
215
|
icon: 'info',
|
|
200
|
-
localNamespace: 'common'
|
|
216
|
+
localNamespace: 'common',
|
|
217
|
+
i18nInterface: jsonStorage18n
|
|
201
218
|
}
|
|
202
219
|
},
|
|
203
220
|
{
|
|
@@ -207,7 +224,8 @@ export const baseNoLocaleRoutes: RouteConfigValue[] = [
|
|
|
207
224
|
title: identifier.PAGE_REQUEST_TITLE,
|
|
208
225
|
description: identifier.PAGE_REQUEST_DESCRIPTION,
|
|
209
226
|
icon: 'info',
|
|
210
|
-
localNamespace: 'common'
|
|
227
|
+
localNamespace: 'common',
|
|
228
|
+
i18nInterface: request18n
|
|
211
229
|
}
|
|
212
230
|
},
|
|
213
231
|
{
|
|
@@ -217,37 +235,19 @@ export const baseNoLocaleRoutes: RouteConfigValue[] = [
|
|
|
217
235
|
title: identifier.PAGE_EXECUTOR_TITLE,
|
|
218
236
|
description: identifier.PAGE_EXECUTOR_DESCRIPTION,
|
|
219
237
|
icon: 'info',
|
|
220
|
-
localNamespace: 'common'
|
|
238
|
+
localNamespace: 'common',
|
|
239
|
+
i18nInterface: executorI18n
|
|
221
240
|
}
|
|
222
241
|
},
|
|
223
242
|
{
|
|
224
|
-
path: '
|
|
225
|
-
element: 'base/
|
|
243
|
+
path: 'identifier',
|
|
244
|
+
element: 'base/IdentifierPage',
|
|
226
245
|
meta: {
|
|
227
246
|
title: identifier.PAGE_ERROR_IDENTIFIER_TITLE,
|
|
228
247
|
description: identifier.PAGE_ERROR_IDENTIFIER_DESCRIPTION,
|
|
229
248
|
icon: 'info',
|
|
230
|
-
localNamespace: 'common'
|
|
231
|
-
|
|
232
|
-
},
|
|
233
|
-
{
|
|
234
|
-
path: '404',
|
|
235
|
-
element: '404',
|
|
236
|
-
meta: {
|
|
237
|
-
category: 'common',
|
|
238
|
-
title: identifier.PAGE_404_TITLE,
|
|
239
|
-
description: identifier.PAGE_404_DESCRIPTION,
|
|
240
|
-
localNamespace: 'common'
|
|
241
|
-
}
|
|
242
|
-
},
|
|
243
|
-
{
|
|
244
|
-
path: '500',
|
|
245
|
-
element: '500',
|
|
246
|
-
meta: {
|
|
247
|
-
category: 'common',
|
|
248
|
-
title: identifier.PAGE_500_TITLE,
|
|
249
|
-
description: identifier.PAGE_500_DESCRIPTION,
|
|
250
|
-
localNamespace: 'common'
|
|
249
|
+
localNamespace: 'common',
|
|
250
|
+
i18nInterface: identifiter18n
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
253
|
]
|
|
@@ -290,9 +290,8 @@ export const baseNoLocaleRoutes: RouteConfigValue[] = [
|
|
|
290
290
|
element: '404',
|
|
291
291
|
meta: {
|
|
292
292
|
category: 'common',
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
localNamespace: 'common'
|
|
293
|
+
localNamespace: 'common',
|
|
294
|
+
i18nInterface: notFound18n
|
|
296
295
|
}
|
|
297
296
|
},
|
|
298
297
|
{
|
|
@@ -300,19 +299,17 @@ export const baseNoLocaleRoutes: RouteConfigValue[] = [
|
|
|
300
299
|
element: '500',
|
|
301
300
|
meta: {
|
|
302
301
|
category: 'common',
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
localNamespace: 'common'
|
|
302
|
+
localNamespace: 'common',
|
|
303
|
+
i18nInterface: serverError18n
|
|
306
304
|
}
|
|
307
305
|
},
|
|
308
306
|
{
|
|
309
307
|
path: '*',
|
|
310
|
-
element: '
|
|
308
|
+
element: 'NoRouteFound',
|
|
311
309
|
meta: {
|
|
312
310
|
category: 'common',
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
localNamespace: 'common'
|
|
311
|
+
localNamespace: 'common',
|
|
312
|
+
i18nInterface: notFound18n
|
|
316
313
|
}
|
|
317
314
|
}
|
|
318
315
|
];
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page I18n Interface for SEO meta properties
|
|
3
|
+
*
|
|
4
|
+
* value may be undefined, which means the page does not have this meta property
|
|
5
|
+
*
|
|
6
|
+
* - if value is i18n key, it will be translated to the current language
|
|
7
|
+
* - if value is a string, it will be used as is
|
|
8
|
+
*/
|
|
9
|
+
export interface PageI18nInterface {
|
|
10
|
+
// Basic meta properties
|
|
11
|
+
title: string;
|
|
12
|
+
description: string;
|
|
13
|
+
content: string;
|
|
14
|
+
keywords: string;
|
|
15
|
+
|
|
16
|
+
// Canonical URL
|
|
17
|
+
canonical?: string;
|
|
18
|
+
|
|
19
|
+
// Robots meta
|
|
20
|
+
robots?: {
|
|
21
|
+
index?: boolean;
|
|
22
|
+
follow?: boolean;
|
|
23
|
+
noarchive?: boolean;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
// Open Graph meta properties
|
|
27
|
+
og?: {
|
|
28
|
+
title?: string;
|
|
29
|
+
description?: string;
|
|
30
|
+
type?: string;
|
|
31
|
+
image?: string;
|
|
32
|
+
url?: string;
|
|
33
|
+
siteName?: string;
|
|
34
|
+
locale?: string;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
// Twitter Card meta properties
|
|
38
|
+
twitter?: {
|
|
39
|
+
card?: 'summary' | 'summary_large_image' | 'app' | 'player';
|
|
40
|
+
site?: string;
|
|
41
|
+
creator?: string;
|
|
42
|
+
title?: string;
|
|
43
|
+
description?: string;
|
|
44
|
+
image?: string;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// Additional meta properties
|
|
48
|
+
author?: string;
|
|
49
|
+
publishedTime?: string;
|
|
50
|
+
modifiedTime?: string;
|
|
51
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as i18nKeys from '../Identifier/pages/page.about';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Home page i18n interface
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* - welcome: welcome message
|
|
8
|
+
*/
|
|
9
|
+
export type AboutI18nInterface = typeof aboutI18n;
|
|
10
|
+
|
|
11
|
+
export const aboutI18n = Object.freeze({
|
|
12
|
+
// basic meta properties
|
|
13
|
+
title: i18nKeys.PAGE_ABOUT_TITLE,
|
|
14
|
+
description: i18nKeys.PAGE_ABOUT_DESCRIPTION,
|
|
15
|
+
content: i18nKeys.PAGE_ABOUT_DESCRIPTION,
|
|
16
|
+
keywords: i18nKeys.PAGE_ABOUT_KEYWORDS,
|
|
17
|
+
|
|
18
|
+
messageTest: i18nKeys.PAGE_ABOUT_MESSAGE_TEST,
|
|
19
|
+
notificationTitle: i18nKeys.PAGE_ABOUT_NOTIFICATION_TITLE,
|
|
20
|
+
notificationDescription: i18nKeys.PAGE_ABOUT_NOTIFICATION_DESC,
|
|
21
|
+
btnMessage: i18nKeys.PAGE_ABOUT_BTN_MESSAGE,
|
|
22
|
+
btnMessage2: i18nKeys.PAGE_ABOUT_BTN_MESSAGE2,
|
|
23
|
+
btnNotification: i18nKeys.PAGE_ABOUT_BTN_NOTIFICATION,
|
|
24
|
+
btnNotification2: i18nKeys.PAGE_ABOUT_BTN_NOTIFICATION2,
|
|
25
|
+
tooltipText: i18nKeys.PAGE_ABOUT_TOOLTIP_TEXT,
|
|
26
|
+
btnTooltip: i18nKeys.PAGE_ABOUT_BTN_TOOLTIP,
|
|
27
|
+
modalTitle: i18nKeys.PAGE_ABOUT_MODAL_TITLE,
|
|
28
|
+
modalContent: i18nKeys.PAGE_ABOUT_MODAL_CONTENT,
|
|
29
|
+
btnModal: i18nKeys.PAGE_ABOUT_BTN_MODAL,
|
|
30
|
+
drawerTitle: i18nKeys.PAGE_ABOUT_DRAWER_TITLE,
|
|
31
|
+
drawerContent: i18nKeys.PAGE_ABOUT_DRAWER_CONTENT,
|
|
32
|
+
btnDrawer: i18nKeys.PAGE_ABOUT_BTN_DRAWER,
|
|
33
|
+
popoverContent: i18nKeys.PAGE_ABOUT_POPOVER_CONTENT,
|
|
34
|
+
popoverTitle: i18nKeys.PAGE_ABOUT_POPOVER_TITLE,
|
|
35
|
+
btnPopover: i18nKeys.PAGE_ABOUT_BTN_POPOVER,
|
|
36
|
+
popconfirmTitle: i18nKeys.PAGE_ABOUT_POPCONFIRM_TITLE,
|
|
37
|
+
popconfirmDesc: i18nKeys.PAGE_ABOUT_POPCONFIRM_DESC,
|
|
38
|
+
btnPopconfirm: i18nKeys.PAGE_ABOUT_BTN_POPCONFIRM,
|
|
39
|
+
alertMessage: i18nKeys.PAGE_ABOUT_ALERT_MESSAGE,
|
|
40
|
+
okText: i18nKeys.PAGE_ABOUT_OK_TEXT,
|
|
41
|
+
cancelText: i18nKeys.PAGE_ABOUT_CANCEL_TEXT
|
|
42
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as i18nKeys from '../Identifier/pages/page.executor';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Home page i18n interface
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* - welcome: welcome message
|
|
8
|
+
*/
|
|
9
|
+
export type ExecutorI18nInterface = typeof executorI18n;
|
|
10
|
+
|
|
11
|
+
export const executorI18n = Object.freeze({
|
|
12
|
+
// basic meta properties
|
|
13
|
+
title: i18nKeys.PAGE_EXECUTOR_TITLE,
|
|
14
|
+
description: i18nKeys.PAGE_EXECUTOR_DESCRIPTION,
|
|
15
|
+
content: i18nKeys.PAGE_EXECUTOR_DESCRIPTION,
|
|
16
|
+
keywords: i18nKeys.PAGE_EXECUTOR_KEYWORDS,
|
|
17
|
+
|
|
18
|
+
mainTitle: i18nKeys.PAGE_EXECUTOR_MAIN_TITLE,
|
|
19
|
+
testPluginTitle: i18nKeys.PAGE_EXECUTOR_TEST_PLUGIN_TITLE,
|
|
20
|
+
taskStatusPending: i18nKeys.PAGE_EXECUTOR_TASK_STATUS_PENDING,
|
|
21
|
+
taskStatusRunning: i18nKeys.PAGE_EXECUTOR_TASK_STATUS_RUNNING,
|
|
22
|
+
taskStatusCompleted: i18nKeys.PAGE_EXECUTOR_TASK_STATUS_COMPLETED,
|
|
23
|
+
taskStatusFailed: i18nKeys.PAGE_EXECUTOR_TASK_STATUS_FAILED,
|
|
24
|
+
taskTypeDataSync: i18nKeys.PAGE_EXECUTOR_TASK_TYPE_DATA_SYNC,
|
|
25
|
+
taskTypeReport: i18nKeys.PAGE_EXECUTOR_TASK_TYPE_REPORT,
|
|
26
|
+
taskTypeMaintenance: i18nKeys.PAGE_EXECUTOR_TASK_TYPE_MAINTENANCE,
|
|
27
|
+
taskTypeBackup: i18nKeys.PAGE_EXECUTOR_TASK_TYPE_BACKUP,
|
|
28
|
+
taskDurationUnit: i18nKeys.PAGE_EXECUTOR_TASK_DURATION_UNIT,
|
|
29
|
+
taskStart: i18nKeys.PAGE_EXECUTOR_TASK_START,
|
|
30
|
+
taskStop: i18nKeys.PAGE_EXECUTOR_TASK_STOP,
|
|
31
|
+
taskSuccess: i18nKeys.PAGE_EXECUTOR_TASK_SUCCESS,
|
|
32
|
+
taskFailure: i18nKeys.PAGE_EXECUTOR_TASK_FAILURE,
|
|
33
|
+
pluginTestSuccess: i18nKeys.PAGE_EXECUTOR_PLUGIN_TEST_SUCCESS,
|
|
34
|
+
pluginTestFailure: i18nKeys.PAGE_EXECUTOR_PLUGIN_TEST_FAILURE,
|
|
35
|
+
customTaskUrlRequired: i18nKeys.PAGE_EXECUTOR_CUSTOM_TASK_URL_REQUIRED,
|
|
36
|
+
customTaskName: i18nKeys.PAGE_EXECUTOR_CUSTOM_TASK_NAME,
|
|
37
|
+
createTaskTitle: i18nKeys.PAGE_EXECUTOR_CREATE_TASK_TITLE,
|
|
38
|
+
createButton: i18nKeys.PAGE_EXECUTOR_CREATE_BUTTON,
|
|
39
|
+
enterUrl: i18nKeys.PAGE_EXECUTOR_ENTER_URL,
|
|
40
|
+
taskListTitle: i18nKeys.PAGE_EXECUTOR_TASK_LIST_TITLE,
|
|
41
|
+
taskStatsTotal: i18nKeys.PAGE_EXECUTOR_TASK_STATS_TOTAL,
|
|
42
|
+
taskStatsRunning: i18nKeys.PAGE_EXECUTOR_TASK_STATS_RUNNING,
|
|
43
|
+
taskStatsCompleted: i18nKeys.PAGE_EXECUTOR_TASK_STATS_COMPLETED,
|
|
44
|
+
taskStatsFailed: i18nKeys.PAGE_EXECUTOR_TASK_STATS_FAILED,
|
|
45
|
+
taskHistoryTitle: i18nKeys.PAGE_EXECUTOR_TASK_HISTORY_TITLE,
|
|
46
|
+
helpTitle: i18nKeys.PAGE_EXECUTOR_HELP_TITLE,
|
|
47
|
+
helpDescription: i18nKeys.PAGE_EXECUTOR_HELP_DESCRIPTION,
|
|
48
|
+
viewGuide: i18nKeys.PAGE_EXECUTOR_VIEW_GUIDE,
|
|
49
|
+
contactSupport: i18nKeys.PAGE_EXECUTOR_CONTACT_SUPPORT,
|
|
50
|
+
requestTimeout: i18nKeys.PAGE_EXECUTOR_REQUEST_TIMEOUT
|
|
51
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as i18nKeys from '../Identifier/pages/page.home';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Home page i18n interface
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* - welcome: welcome message
|
|
8
|
+
*/
|
|
9
|
+
export type HomeI18nInterface = typeof homeI18n;
|
|
10
|
+
|
|
11
|
+
export const homeI18n = Object.freeze({
|
|
12
|
+
// basic meta properties
|
|
13
|
+
title: i18nKeys.PAGE_HOME_TITLE,
|
|
14
|
+
description: i18nKeys.PAGE_HOME_DESCRIPTION,
|
|
15
|
+
content: i18nKeys.PAGE_HOME_DESCRIPTION,
|
|
16
|
+
keywords: i18nKeys.PAGE_HOME_KEYWORDS,
|
|
17
|
+
|
|
18
|
+
welcome: i18nKeys.PAGE_HOME_WELCOME,
|
|
19
|
+
description2: i18nKeys.PAGE_HOME_DESCRIPTION2,
|
|
20
|
+
explore: i18nKeys.PAGE_HOME_EXPLORE,
|
|
21
|
+
getStartedTitle: i18nKeys.PAGE_HOME_GET_STARTED,
|
|
22
|
+
getStartedDescription: i18nKeys.PAGE_HOME_GET_STARTED_DESCRIPTION,
|
|
23
|
+
getStartedButton: i18nKeys.PAGE_HOME_GET_STARTED_BUTTON
|
|
24
|
+
});
|