@cdmbase/wiki-browser 12.0.18-alpha.10
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/LICENSE +21 -0
- package/lib/components/Logo.d.ts +4 -0
- package/lib/components/Logo.d.ts.map +1 -0
- package/lib/components/Logo.js +16 -0
- package/lib/components/Logo.js.map +1 -0
- package/lib/components/help/SidebarSearch.d.ts +8 -0
- package/lib/components/help/SidebarSearch.d.ts.map +1 -0
- package/lib/components/help/SidebarSearch.js +111 -0
- package/lib/components/help/SidebarSearch.js.map +1 -0
- package/lib/components/help/index.d.ts +2 -0
- package/lib/components/help/index.d.ts.map +1 -0
- package/lib/components/landing/FeatureCard.d.ts +13 -0
- package/lib/components/landing/FeatureCard.d.ts.map +1 -0
- package/lib/components/landing/FeatureCard.js +85 -0
- package/lib/components/landing/FeatureCard.js.map +1 -0
- package/lib/components/landing/QuickLinkCard.d.ts +8 -0
- package/lib/components/landing/QuickLinkCard.d.ts.map +1 -0
- package/lib/components/landing/QuickLinkCard.js +26 -0
- package/lib/components/landing/QuickLinkCard.js.map +1 -0
- package/lib/components/landing/SearchInput.d.ts +10 -0
- package/lib/components/landing/SearchInput.d.ts.map +1 -0
- package/lib/components/landing/SearchInput.js +223 -0
- package/lib/components/landing/SearchInput.js.map +1 -0
- package/lib/components/landing/index.d.ts +4 -0
- package/lib/components/landing/index.d.ts.map +1 -0
- package/lib/components/welcome.d.ts +3 -0
- package/lib/components/welcome.d.ts.map +1 -0
- package/lib/compute.d.ts +4 -0
- package/lib/compute.d.ts.map +1 -0
- package/lib/compute.js +96 -0
- package/lib/compute.js.map +1 -0
- package/lib/config/env-config.d.ts +4 -0
- package/lib/config/env-config.d.ts.map +1 -0
- package/lib/config/env-config.js +7 -0
- package/lib/config/env-config.js.map +1 -0
- package/lib/docs.config.d.ts +48 -0
- package/lib/docs.config.d.ts.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -0
- package/lib/loaders/search.d.ts +1 -0
- package/lib/loaders/search.d.ts.map +1 -0
- package/lib/module.d.ts +4 -0
- package/lib/module.d.ts.map +1 -0
- package/lib/module.js +11 -0
- package/lib/module.js.map +1 -0
- package/lib/pages/ArticlePage/ArticlePage.d.ts +4 -0
- package/lib/pages/ArticlePage/ArticlePage.d.ts.map +1 -0
- package/lib/pages/ArticlePage/ArticlePage.js +222 -0
- package/lib/pages/ArticlePage/ArticlePage.js.map +1 -0
- package/lib/pages/ArticlePage/index.d.ts +3 -0
- package/lib/pages/ArticlePage/index.d.ts.map +1 -0
- package/lib/pages/ArticlePage/index.js +3 -0
- package/lib/pages/ArticlePage/index.js.map +1 -0
- package/lib/pages/CategoryCollection/CategoryCollection.d.ts +4 -0
- package/lib/pages/CategoryCollection/CategoryCollection.d.ts.map +1 -0
- package/lib/pages/CategoryCollection/CategoryCollection.js +103 -0
- package/lib/pages/CategoryCollection/CategoryCollection.js.map +1 -0
- package/lib/pages/CategoryCollection/index.d.ts +3 -0
- package/lib/pages/CategoryCollection/index.d.ts.map +1 -0
- package/lib/pages/CategoryCollection/index.js +3 -0
- package/lib/pages/CategoryCollection/index.js.map +1 -0
- package/lib/pages/Help/HelpIndex.d.ts +4 -0
- package/lib/pages/Help/HelpIndex.d.ts.map +1 -0
- package/lib/pages/Help/HelpIndex.js +44 -0
- package/lib/pages/Help/HelpIndex.js.map +1 -0
- package/lib/pages/Help/index.d.ts +4 -0
- package/lib/pages/Help/index.d.ts.map +1 -0
- package/lib/pages/Help/index.js +226 -0
- package/lib/pages/Help/index.js.map +1 -0
- package/lib/pages/Landing/index.d.ts +3 -0
- package/lib/pages/Landing/index.d.ts.map +1 -0
- package/lib/pages/Landing/index.js +281 -0
- package/lib/pages/Landing/index.js.map +1 -0
- package/lib/routes.json +2533 -0
- package/lib/seo.d.ts +22 -0
- package/lib/seo.d.ts.map +1 -0
- package/lib/slot-fill/FooterFill.d.ts +3 -0
- package/lib/slot-fill/FooterFill.d.ts.map +1 -0
- package/lib/slot-fill/FooterFill.js +18 -0
- package/lib/slot-fill/FooterFill.js.map +1 -0
- package/lib/slot-fill/LogoFill.d.ts +5 -0
- package/lib/slot-fill/LogoFill.d.ts.map +1 -0
- package/lib/slot-fill/LogoFill.js +74 -0
- package/lib/slot-fill/LogoFill.js.map +1 -0
- package/lib/slot-fill/consts.d.ts +5 -0
- package/lib/slot-fill/consts.d.ts.map +1 -0
- package/lib/slot-fill/consts.js +1 -0
- package/lib/slot-fill/consts.js.map +1 -0
- package/lib/slot-fill/index.d.ts +4 -0
- package/lib/slot-fill/index.d.ts.map +1 -0
- package/lib/templates/assets/images/add-link-frontend.png +0 -0
- package/lib/templates/assets/images/add-package-backend.png +0 -0
- package/lib/templates/assets/images/add-to-backend-module.png +0 -0
- package/lib/templates/assets/images/add-upload-client-frontend.png +0 -0
- package/lib/templates/assets/images/additional-parameters.png +0 -0
- package/lib/templates/assets/images/aeh-implementation.png +0 -0
- package/lib/templates/assets/images/aeh-usage.png +0 -0
- package/lib/templates/assets/images/apollo-client/recommendation_cache_mgmt.png +0 -0
- package/lib/templates/assets/images/app-deploy-new-version/jenkins1.PNG +0 -0
- package/lib/templates/assets/images/app-deploy-new-version/jenkins2.PNG +0 -0
- package/lib/templates/assets/images/auth-wrapper-code.png +0 -0
- package/lib/templates/assets/images/cdebase.png +0 -0
- package/lib/templates/assets/images/cdm-locales-directory.png +0 -0
- package/lib/templates/assets/images/client-settings.png +0 -0
- package/lib/templates/assets/images/codegen_file_update.png +0 -0
- package/lib/templates/assets/images/configuration.png +0 -0
- package/lib/templates/assets/images/copy-plugin.png +0 -0
- package/lib/templates/assets/images/docusaurus.png +0 -0
- package/lib/templates/assets/images/error-link.png +0 -0
- package/lib/templates/assets/images/error-sample.png +0 -0
- package/lib/templates/assets/images/extension copy.png +0 -0
- package/lib/templates/assets/images/extension.png +0 -0
- package/lib/templates/assets/images/graphql/graphql-folder-backend.png +0 -0
- package/lib/templates/assets/images/graphql/graphql-folder-with-gql.png +0 -0
- package/lib/templates/assets/images/i18n-config.png +0 -0
- package/lib/templates/assets/images/image.png +0 -0
- package/lib/templates/assets/images/logo.svg +10 -0
- package/lib/templates/assets/images/logo1.svg +1 -0
- package/lib/templates/assets/images/modify-upload-false-server.png +0 -0
- package/lib/templates/assets/images/navigation-auth-enabled.png +0 -0
- package/lib/templates/assets/images/org-dashboard-navigation.png +0 -0
- package/lib/templates/assets/images/org-navigation.png +0 -0
- package/lib/templates/assets/images/preferences_graphql_type.png +0 -0
- package/lib/templates/assets/images/provider.png +0 -0
- package/lib/templates/assets/images/route-config.png +0 -0
- package/lib/templates/assets/images/service-accounts.png +0 -0
- package/lib/templates/assets/images/source-code/source-code-environments.png +0 -0
- package/lib/templates/assets/images/source-code/source-code-organization.png +0 -0
- package/lib/templates/assets/images/spin-clone-develop-deployment/jenkins-changes.png +0 -0
- package/lib/templates/assets/images/spin-clone-develop-deployment/lerna-changes.png +0 -0
- package/lib/templates/assets/images/spin-clone-develop-deployment/root-package-json-changes.png +0 -0
- package/lib/templates/assets/images/spin-clone-develop-deployment/values-dev-changes.png +0 -0
- package/lib/templates/assets/images/sso-mappers.png +0 -0
- package/lib/templates/assets/images/sso-picture-mapper.png +0 -0
- package/lib/templates/assets/images/sso-settings.png +0 -0
- package/lib/templates/assets/images/timesheet_apollo_cache.png +0 -0
- package/lib/templates/assets/images/timesheet_query.png +0 -0
- package/lib/templates/assets/images/tutorial/docsVersionDropdown.png +0 -0
- package/lib/templates/assets/images/tutorial/localeDropdown.png +0 -0
- package/lib/templates/assets/images/unauthenticated.png +0 -0
- package/lib/templates/assets/images/undraw_docusaurus_mountain.svg +170 -0
- package/lib/templates/assets/images/undraw_docusaurus_react.svg +169 -0
- package/lib/templates/assets/images/undraw_docusaurus_tree.svg +1 -0
- package/lib/templates/assets/images/vite-plugin-config.png +0 -0
- package/lib/templates/content/docs/Generators/Project/generate-fullproject.md +12 -0
- package/lib/templates/content/docs/LLM/Logger.llm.md +194 -0
- package/lib/templates/content/docs/LLM/backend-proxies-services-llm.md +2687 -0
- package/lib/templates/content/docs/LLM/backend-service-llm.md +3384 -0
- package/lib/templates/content/docs/LLM/db_migration_llm.md +954 -0
- package/lib/templates/content/docs/LLM/frontend/REMIX-15.3-upgrade-llm.md +1245 -0
- package/lib/templates/content/docs/LLM/inngest/INNGEST_FUNCTION_DEVELOPMENT_GUIDE_LLM.md +1241 -0
- package/lib/templates/content/docs/LLM/inngest/INNGEST_NAMESPACE_LLM.md +384 -0
- package/lib/templates/content/docs/LLM/llm_workflow_namespace.md +384 -0
- package/lib/templates/content/docs/LLM/organization-components-form-llm.md +1395 -0
- package/lib/templates/content/docs/LLM/page-component-llm.md +173 -0
- package/lib/templates/content/docs/LLM/preferences-settings-llm.md +2781 -0
- package/lib/templates/content/docs/LLM/tailwind-css-llm.md +502 -0
- package/lib/templates/content/docs/UI/SchemaBasedUI.md +334 -0
- package/lib/templates/content/docs/UI/SlotFillComponent.md +334 -0
- package/lib/templates/content/docs/adminide-modules/account/auth0-login.md +31 -0
- package/lib/templates/content/docs/adminide-modules/account/index.md +14 -0
- package/lib/templates/content/docs/adminide-modules/account/keycloak-remix-setup.md +86 -0
- package/lib/templates/content/docs/adminide-modules/account/remix-auth-setup.md +79 -0
- package/lib/templates/content/docs/adminide-modules/account/various-auth-qatest.md +157 -0
- package/lib/templates/content/docs/adminide-modules/api-builders/graphql.md +906 -0
- package/lib/templates/content/docs/adminide-modules/billing/payments/index.md +14 -0
- package/lib/templates/content/docs/adminide-modules/billing/payments/stripe/index.md +14 -0
- package/lib/templates/content/docs/adminide-modules/billing/payments/stripe/settingup-stripe-locally.md +25 -0
- package/lib/templates/content/docs/adminide-modules/billing/tier-config.md +293 -0
- package/lib/templates/content/docs/adminide-modules/connectors/Connector.md +207 -0
- package/lib/templates/content/docs/adminide-modules/file-upload/index.md +16 -0
- package/lib/templates/content/docs/adminide-modules/file-upload/setup.md +435 -0
- package/lib/templates/content/docs/adminide-modules/file-upload/upload-file-using-signed-url.md +161 -0
- package/lib/templates/content/docs/adminide-modules/preferences/AddAdditionalPermissions.md +151 -0
- package/lib/templates/content/docs/adminide-modules/preferences/Configuration.md +241 -0
- package/lib/templates/content/docs/adminide-modules/preferences/Policy-Configuration.md +61 -0
- package/lib/templates/content/docs/adminide-modules/preferences/UI-components/ResourceSettingsLoader.md +319 -0
- package/lib/templates/content/docs/adminide-modules/preferences/contribute_scope_target.md +280 -0
- package/lib/templates/content/docs/adminide-modules/preferences/generate-urii.md +94 -0
- package/lib/templates/content/docs/adminide-modules/preferences/index.md +28 -0
- package/lib/templates/content/docs/adminide-modules/preferences/machine-configuration.md +157 -0
- package/lib/templates/content/docs/adminide-modules/preferences/pageSettings/generateCdecodeUri.md +1289 -0
- package/lib/templates/content/docs/adminide-modules/preferences/pageSettings/migratingFromUseSettings.md +215 -0
- package/lib/templates/content/docs/adminide-modules/preferences/permissions/Roles-Permissions.md +72 -0
- package/lib/templates/content/docs/adminide-modules/preferences/permissions/settingUserPermissions.md +139 -0
- package/lib/templates/content/docs/adminide-modules/preferences/preference-dependency.md +138 -0
- package/lib/templates/content/docs/adminide-modules/preferences/route-based-configuration.md +41 -0
- package/lib/templates/content/docs/adminide-modules/preferences/schema-configuration.md +71 -0
- package/lib/templates/content/docs/adminide-modules/preferences/supported.md +24 -0
- package/lib/templates/content/docs/adminide-modules/preferences/useSettingsLoader.md +248 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/auth-providers.md +1317 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/keycloak-guide.md +543 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenant-based-authentication.md +846 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenant-management.md +708 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenants.md +1117 -0
- package/lib/templates/content/docs/chrome-extension/index.md +14 -0
- package/lib/templates/content/docs/chrome-extension/setup.md +30 -0
- package/lib/templates/content/docs/contributing/adding-package.md +23 -0
- package/lib/templates/content/docs/contributing/adding_new_modules.md +99 -0
- package/lib/templates/content/docs/contributing/architecture-updates.md +19 -0
- package/lib/templates/content/docs/contributing/avoid-using-promises-ui.md +116 -0
- package/lib/templates/content/docs/contributing/coding-guidelines.md +111 -0
- package/lib/templates/content/docs/contributing/do-and-dont.md +42 -0
- package/lib/templates/content/docs/contributing/faq.md +22 -0
- package/lib/templates/content/docs/contributing/folder-setup/browser.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/config.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/containers-server.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/core.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/graphql.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/index.md +30 -0
- package/lib/templates/content/docs/contributing/folder-setup/module.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/server.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/services.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/store.md +12 -0
- package/lib/templates/content/docs/contributing/frontend-coding.md +30 -0
- package/lib/templates/content/docs/contributing/git-subtree-sharing.md +73 -0
- package/lib/templates/content/docs/contributing/graphql-subscriptions.md +69 -0
- package/lib/templates/content/docs/contributing/how-to-contribute.md +30 -0
- package/lib/templates/content/docs/contributing/how_to_check_pure_esm.md +29 -0
- package/lib/templates/content/docs/contributing/index.md +60 -0
- package/lib/templates/content/docs/contributing/installation-issues.md +23 -0
- package/lib/templates/content/docs/contributing/keyboard-shortcut.md +131 -0
- package/lib/templates/content/docs/contributing/language/locale-support.md +12 -0
- package/lib/templates/content/docs/contributing/lerna-build-tools.md +516 -0
- package/lib/templates/content/docs/contributing/lerna-yarn-workspaces.md +95 -0
- package/lib/templates/content/docs/contributing/lint-and-formatter.md +20 -0
- package/lib/templates/content/docs/contributing/mobile-setup.md +16 -0
- package/lib/templates/content/docs/contributing/project-setup.md +233 -0
- package/lib/templates/content/docs/contributing/react/index.md +14 -0
- package/lib/templates/content/docs/contributing/react/lazy-component.md +70 -0
- package/lib/templates/content/docs/contributing/run-various-options.md +124 -0
- package/lib/templates/content/docs/contributing/schema-first-graphql-types.md +37 -0
- package/lib/templates/content/docs/contributing/source-code-organization.md +57 -0
- package/lib/templates/content/docs/contributing/staging-docker.md +88 -0
- package/lib/templates/content/docs/contributing/third-party/apollo-client-v3-tutorials.md +28 -0
- package/lib/templates/content/docs/contributing/third-party/index.md +18 -0
- package/lib/templates/content/docs/contributing/typescript-contribution.md +16 -0
- package/lib/templates/content/docs/devops/app-deploy-new-version.md +30 -0
- package/lib/templates/content/docs/devops/index.md +14 -0
- package/lib/templates/content/docs/devops/mobile-jenkins-build.md +40 -0
- package/lib/templates/content/docs/devops/versioning-the-project.md +128 -0
- package/lib/templates/content/docs/error-handler/application-error-handler.md +40 -0
- package/lib/templates/content/docs/error-handler/error-handling.md +26 -0
- package/lib/templates/content/docs/error-handler/index.md +16 -0
- package/lib/templates/content/docs/error-handler/logging-errors.md +14 -0
- package/lib/templates/content/docs/feature-api/copy-operation.md +427 -0
- package/lib/templates/content/docs/feature-api/feature-browser/assets.md +46 -0
- package/lib/templates/content/docs/feature-api/feature-browser/auth-permissions.md +12 -0
- package/lib/templates/content/docs/feature-api/feature-browser/feature.md +131 -0
- package/lib/templates/content/docs/feature-api/feature-browser/index.md +22 -0
- package/lib/templates/content/docs/feature-api/feature-browser/routes-menu.md +110 -0
- package/lib/templates/content/docs/feature-api/feature-browser/routing-convention.md +124 -0
- package/lib/templates/content/docs/feature-api/feature-browser/routing.md +338 -0
- package/lib/templates/content/docs/feature-api/feature-mobile/auth-permissions.md +20 -0
- package/lib/templates/content/docs/feature-api/feature-mobile/feature.md +130 -0
- package/lib/templates/content/docs/feature-api/feature-mobile/index.md +18 -0
- package/lib/templates/content/docs/feature-api/feature-mobile/navigation.md +187 -0
- package/lib/templates/content/docs/feature-api/feature-server/Scheduling.md +44 -0
- package/lib/templates/content/docs/feature-api/feature-server/dataloader.md +320 -0
- package/lib/templates/content/docs/feature-api/feature-server/dependency-injection.md +81 -0
- package/lib/templates/content/docs/feature-api/feature-server/feature.md +65 -0
- package/lib/templates/content/docs/feature-api/feature-server/generic-dataloader.md +135 -0
- package/lib/templates/content/docs/feature-api/feature-server/index.md +40 -0
- package/lib/templates/content/docs/feature-api/feature-server/migration.md +127 -0
- package/lib/templates/content/docs/feature-api/feature-server/mongo-model.md +72 -0
- package/lib/templates/content/docs/feature-api/feature-server/permissions.md +12 -0
- package/lib/templates/content/docs/feature-api/feature-server/policies.md +57 -0
- package/lib/templates/content/docs/feature-api/feature-server/preferences.md +57 -0
- package/lib/templates/content/docs/feature-api/feature-server/repositories.md +114 -0
- package/lib/templates/content/docs/feature-api/feature-server/resolvers.md +126 -0
- package/lib/templates/content/docs/feature-api/feature-server/rules.md +132 -0
- package/lib/templates/content/docs/feature-api/feature-server/schema.md +12 -0
- package/lib/templates/content/docs/feature-api/feature-server/services.md +102 -0
- package/lib/templates/content/docs/feature-api/feature-server/setup-resource-crud.md +359 -0
- package/lib/templates/content/docs/feature-api/index.md +18 -0
- package/lib/templates/content/docs/graphql/apolloClient-mutation.md +94 -0
- package/lib/templates/content/docs/graphql/index.md +14 -0
- package/lib/templates/content/docs/graphql/scalars.md +15 -0
- package/lib/templates/content/docs/help/index.md +14 -0
- package/lib/templates/content/docs/help/intro.md +16 -0
- package/lib/templates/content/docs/intl/ant-design-menu-translation.md +74 -0
- package/lib/templates/content/docs/intl/intl-namespace.md +129 -0
- package/lib/templates/content/docs/intl/vite-plugin-intl.md +87 -0
- package/lib/templates/content/docs/intl/webpack-plugin-intl.md +12 -0
- package/lib/templates/content/docs/intro.md +18 -0
- package/lib/templates/content/docs/knowledge/basic-fullstack.md +238 -0
- package/lib/templates/content/docs/mailing/index.md +14 -0
- package/lib/templates/content/docs/mailing/mailing-template.md +148 -0
- package/lib/templates/content/docs/mobile/App-navigation-generator.md +410 -0
- package/lib/templates/content/docs/mobile/MobileTestCases.md +264 -0
- package/lib/templates/content/docs/mobile/eas-profile-build.md +107 -0
- package/lib/templates/content/docs/mobile/expo-push-notification-setup.md +216 -0
- package/lib/templates/content/docs/mobile/index.md +14 -0
- package/lib/templates/content/docs/mobile/routes.md +83 -0
- package/lib/templates/content/docs/organization/adding-account-context.md +116 -0
- package/lib/templates/content/docs/organization/adding-org-mobile-navigation.md +22 -0
- package/lib/templates/content/docs/organization/adding-org-web-navigation.md +12 -0
- package/lib/templates/content/docs/organization/index.md +20 -0
- package/lib/templates/content/docs/organization/initialization.md +20 -0
- package/lib/templates/content/docs/organization/organization-resource-vs-resource.md +112 -0
- package/lib/templates/content/docs/remix/configuration/component-structure-best-practices.md +152 -0
- package/lib/templates/content/docs/remix/configuration/configurations.md +218 -0
- package/lib/templates/content/docs/remix/configuration/css-import-and-stylesheets.md +142 -0
- package/lib/templates/content/docs/remix/configuration/dont-subcomponent-network.md +166 -0
- package/lib/templates/content/docs/remix/configuration/generated-data-loaders.md +122 -0
- package/lib/templates/content/docs/remix/configuration/generated-resource-loaders.md +257 -0
- package/lib/templates/content/docs/remix/configuration/query-params-generator.md +216 -0
- package/lib/templates/content/docs/remix/configuration/routes-extra-icons.md +103 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-advanced.md +86 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-auth.md +113 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-best-practices.md +55 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-fields.md +79 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-graphql.md +79 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-index.md +112 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-loaders.md +165 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-middleware.md +196 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-overview.md +53 -0
- package/lib/templates/content/docs/remix/data-loaders.md +43 -0
- package/lib/templates/content/docs/remix/devtools/remix-devtools.md +58 -0
- package/lib/templates/content/docs/remix/examples/changes-using-servercode.md +79 -0
- package/lib/templates/content/docs/remix/extra-icons.md +62 -0
- package/lib/templates/content/docs/remix/extra-links.md +65 -0
- package/lib/templates/content/docs/remix/generated-data-loaders.md +114 -0
- package/lib/templates/content/docs/remix/queryParamsGenerator.md +89 -0
- package/lib/templates/content/docs/remix/resources.md +16 -0
- package/lib/templates/content/docs/remix/styles.md +132 -0
- package/lib/templates/content/docs/remix/wiki.md +12 -0
- package/lib/templates/content/docs/security/auth-wrapper/auth-wrapper.md +24 -0
- package/lib/templates/content/docs/security/index.md +18 -0
- package/lib/templates/content/docs/security/secure-button-mobilenative.md +88 -0
- package/lib/templates/content/docs/security/secure-button-web.md +89 -0
- package/lib/templates/content/docs/server-side/account-customization.md +82 -0
- package/lib/templates/content/docs/server-side/apollo/caching.md +164 -0
- package/lib/templates/content/docs/server-side/backend-architecture/FINAL-DECISION.md +209 -0
- package/lib/templates/content/docs/server-side/backend-architecture/TRUE-FINAL-ARCHITECTURE.md +603 -0
- package/lib/templates/content/docs/server-side/backend-architecture/index1.md +0 -0
- package/lib/templates/content/docs/server-side/backend-coding.md +839 -0
- package/lib/templates/content/docs/server-side/e2b/manageing-template.md +197 -0
- package/lib/templates/content/docs/server-side/index.md +14 -0
- package/lib/templates/content/docs/server-side/inngest-functions-module.md +309 -0
- package/lib/templates/content/docs/server-side/listen-stripe-events.md +43 -0
- package/lib/templates/content/docs/server-side/slug-service.md +323 -0
- package/lib/templates/content/docs/tests/index.md +18 -0
- package/lib/templates/content/docs/tests/jest-test-debug-vscode.md +40 -0
- package/lib/templates/content/docs/tests/known-errors.md +116 -0
- package/lib/templates/content/docs/tests/service-test-template.md +118 -0
- package/lib/templates/content/docs/tests/test-setup.md +93 -0
- package/lib/templates/content/docs/xstate.md +23 -0
- package/lib/types.d.ts +37 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/utils/docsNavigation.d.ts +9 -0
- package/lib/utils/docsNavigation.d.ts.map +1 -0
- package/lib/utils/docsNavigation.js +37 -0
- package/lib/utils/docsNavigation.js.map +1 -0
- package/lib/utils/helpCenterUtils.d.ts +26 -0
- package/lib/utils/helpCenterUtils.d.ts.map +1 -0
- package/lib/utils/index.d.ts +3 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +3 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/markdownLoader.d.ts +36 -0
- package/lib/utils/markdownLoader.d.ts.map +1 -0
- package/lib/utils/markdownLoader.js +2242 -0
- package/lib/utils/markdownLoader.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
title: App Navigation Generator
|
|
4
|
+
description: App Navigation Generator
|
|
5
|
+
date: '2023-06-02T00:00:00'
|
|
6
|
+
updated: '2024-06-02T00:00:00'
|
|
7
|
+
excerpt: App Navigation Generator...
|
|
8
|
+
headers:
|
|
9
|
+
Cache-Control: no-cache
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# App Navigation Generator
|
|
13
|
+
|
|
14
|
+
To generate app navigations, you need to follow some steps given below.
|
|
15
|
+
|
|
16
|
+
### Requirements
|
|
17
|
+
|
|
18
|
+
- Rollup (**rollup.config.mjs**).
|
|
19
|
+
- Admin Layout Pacakge (**@admin-layout/gluestack-ui-mobile**).
|
|
20
|
+
|
|
21
|
+
### For LifeCycle Component and Interaction Manager functionality,use key in compute.ts as below
|
|
22
|
+
|
|
23
|
+
- <span style={{color:"#1877F2"}}>withLifeCycle</span> <br />
|
|
24
|
+
(Use this when only lifecylc component is needed as wrapper for component)
|
|
25
|
+
- <span style={{color:"#1877F2"}}>withInteraction</span> <br />
|
|
26
|
+
(Use this when only interaction manager functionality is needed , applied only on android)
|
|
27
|
+
- <span style={{color:"#1877F2"}}>withLifeCycleInteraction</span> <br />
|
|
28
|
+
(Use this when both lifecylc component and interaction manager functionality is required)
|
|
29
|
+
|
|
30
|
+
_Note: Default duration is 200 ms_
|
|
31
|
+
|
|
32
|
+
```js
|
|
33
|
+
{
|
|
34
|
+
withLifeCycle: true;
|
|
35
|
+
}
|
|
36
|
+
{
|
|
37
|
+
withInteraction: true;
|
|
38
|
+
}
|
|
39
|
+
{
|
|
40
|
+
withLifeCycleInteraction: true;
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
or with **_custom duration_** (_Duration is not required for withLifeCycle_)
|
|
45
|
+
|
|
46
|
+
```js
|
|
47
|
+
{
|
|
48
|
+
withInteraction: {
|
|
49
|
+
duration: 100;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
{
|
|
53
|
+
withLifeCycleInteraction: {
|
|
54
|
+
duration: 100;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### For Icons we use @expo/vector-icons,use icon with name and props in compute.ts as below ,used as Drawer icons or BottomTab icons
|
|
60
|
+
|
|
61
|
+
```tsx
|
|
62
|
+
import {MaterialCommunityIcons} from '@expo/vector-icons';
|
|
63
|
+
const MyComponent = () => {
|
|
64
|
+
return <MaterialCommunityIcons name="home" size={24} color="black" />;
|
|
65
|
+
}
|
|
66
|
+
//Similar
|
|
67
|
+
icon: {
|
|
68
|
+
// Icon Type from @expo/vector-icons directory
|
|
69
|
+
name: 'MaterialCommunityIcons',
|
|
70
|
+
// props of icon
|
|
71
|
+
props: {
|
|
72
|
+
name: 'home',
|
|
73
|
+
size: 24,
|
|
74
|
+
color:'#eee',
|
|
75
|
+
},
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### importPaths in compute.ts file is used for converting import to absolute path as below and it is handled by [@common-stack/rollup-vite-utils](https://github.com/CDEBase/common-stack/blob/b28eb57618ffd06096a2202498f2ad3b4aa5e40f/packages/rollup-vite-utils/src/rollup/rollupPluginModifyLibFiles.ts#L55)
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
{
|
|
83
|
+
importPaths: {
|
|
84
|
+
login: () => import('./screens/Login'),
|
|
85
|
+
},
|
|
86
|
+
// converted to
|
|
87
|
+
"importPaths": {
|
|
88
|
+
"login": '@yourpkg/pkgname/lib/screens/Login.js',
|
|
89
|
+
},
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### unauthenticatedComponent and customHeader are the only keys in compute.ts file is using importsPath as below and it is handled by [@admin-layout/gluestack-ui-mobile](https://github.com/CDEBase/admin-layout/blob/586cd601e94674129d94832e485aa25ae53b894e/packages/gluestack-ui/mobile/src/utils/generateMobileNavigations.ts#L169)
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
unauthenticatedComponent:'$.importPaths.homeGuestComponent',
|
|
97
|
+
customHeader:{
|
|
98
|
+
component:'$.importPaths.navigationHeader',
|
|
99
|
+
},
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Step 1:
|
|
103
|
+
|
|
104
|
+
- Create **compute.ts** file inside module package/src folder
|
|
105
|
+
- Update module package tsconfig file to **target ES6 module**
|
|
106
|
+
- Create **rollup.config.mjs** in module **package root** directory
|
|
107
|
+
- Update rollup.config.mjs **input to src/index.ts**( if index.jsx file then replace it to index.ts) and extend module package rollup config with base rollup.config.base.mjs **createRollupConfig** function
|
|
108
|
+
- Update module package **package.json** add **"type": "module"** and replace scripts **"build:lib":"tsc"** with **"build:lib": "rollup -c rollup.config.mjs"**
|
|
109
|
+
|
|
110
|
+
**[mypackage/src/compute.ts](https://github.com/CDEBase/adminIde-stack/blob/develop/packages-modules/account-api/mobile/src/compute.ts)**
|
|
111
|
+
|
|
112
|
+
```ts
|
|
113
|
+
/* eslint-disable import/no-extraneous-dependencies */
|
|
114
|
+
import { getFilteredRoutes } from '@common-stack/client-react/lib/utils/filteredRoutes.js';
|
|
115
|
+
import { IRouteData } from '@common-stack/client-react/lib/interfaces/router.js';
|
|
116
|
+
import { IPageStore } from '@adminide-stack/core/lib/interfaces/page-store.js';
|
|
117
|
+
|
|
118
|
+
export const myPageStore: IPageStore[] = [
|
|
119
|
+
{
|
|
120
|
+
key: 'home',
|
|
121
|
+
path: '/:orgName/l/home',
|
|
122
|
+
name: 'Home',
|
|
123
|
+
exact: false,
|
|
124
|
+
menu_position: 'bottom',
|
|
125
|
+
auth: true,
|
|
126
|
+
component: () => import('./screens/Home'),
|
|
127
|
+
withLifeCycleInteraction: {
|
|
128
|
+
duration: 100,
|
|
129
|
+
},
|
|
130
|
+
icon: {
|
|
131
|
+
name: 'MaterialCommunityIcons',
|
|
132
|
+
props: {
|
|
133
|
+
name: 'home-variant-outline',
|
|
134
|
+
size: 24,
|
|
135
|
+
color: '#eee',
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
importPaths: {
|
|
139
|
+
navigationHeader: () => import('./components/NavigationHeader/NavigationHeader'),
|
|
140
|
+
// homeGuestComponent: () => import('./screens/Login'),
|
|
141
|
+
},
|
|
142
|
+
// unauthenticatedComponent:'$.importPaths.homeGuestComponent',
|
|
143
|
+
customHeader: {
|
|
144
|
+
name: 'NavigationHeader',
|
|
145
|
+
component: '$.importPaths.navigationHeader',
|
|
146
|
+
props: {
|
|
147
|
+
showTitle: false,
|
|
148
|
+
showOrganizationTitle: true,
|
|
149
|
+
showToggle: true,
|
|
150
|
+
showFilter: true,
|
|
151
|
+
isSearchBack: false,
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
props: {
|
|
155
|
+
initialParams: { orgName: null },
|
|
156
|
+
options: {
|
|
157
|
+
headerShown: true,
|
|
158
|
+
title: 'Home',
|
|
159
|
+
headerTitle: 'Home',
|
|
160
|
+
priority: 1,
|
|
161
|
+
tabBarActiveTintColor: '#000',
|
|
162
|
+
tabBarInactiveTintColor: 'black',
|
|
163
|
+
tabBarLabel: 'Home',
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
];
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**[mypackage/rollup.config.mjs](https://github.com/CDEBase/adminIde-stack/blob/develop/packages-modules/account-api/mobile/rollup.config.mjs)**
|
|
171
|
+
|
|
172
|
+
```js
|
|
173
|
+
import { createRollupConfig } from '../../../rollup.config.base.mjs';
|
|
174
|
+
import json from '@rollup/plugin-json';
|
|
175
|
+
import resolve from '@rollup/plugin-node-resolve';
|
|
176
|
+
import { terser } from 'rollup-plugin-terser';
|
|
177
|
+
|
|
178
|
+
// Define any additional plugins specific to this bundle
|
|
179
|
+
const additionalPlugins = [
|
|
180
|
+
json(),
|
|
181
|
+
resolve(), // resolves node_modules
|
|
182
|
+
// terser(), // minifies the output
|
|
183
|
+
];
|
|
184
|
+
|
|
185
|
+
// Use the createRollupConfig function to merge the base and specific configurations
|
|
186
|
+
export default [
|
|
187
|
+
createRollupConfig({
|
|
188
|
+
input: ['src/index.ts'],
|
|
189
|
+
output: [
|
|
190
|
+
{
|
|
191
|
+
dir: 'lib',
|
|
192
|
+
format: 'es',
|
|
193
|
+
name: 'Accounts',
|
|
194
|
+
compact: true,
|
|
195
|
+
exports: 'named',
|
|
196
|
+
sourcemap: true,
|
|
197
|
+
preserveModules: true,
|
|
198
|
+
chunkFileNames: '[name]-[hash].[format].js',
|
|
199
|
+
globals: { react: 'React' },
|
|
200
|
+
},
|
|
201
|
+
],
|
|
202
|
+
plugins: [
|
|
203
|
+
// Spread in additional plugins specific to this config
|
|
204
|
+
...additionalPlugins,
|
|
205
|
+
],
|
|
206
|
+
// Enable caching for faster rebuilds
|
|
207
|
+
cache: true,
|
|
208
|
+
}),
|
|
209
|
+
];
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**[mypackage/package.json](https://github.com/CDEBase/adminIde-stack/blob/4c5924c62006a4d265e48b5d6164b5069b3b2974/packages-modules/account-api/mobile/package.json#L7)**
|
|
213
|
+
|
|
214
|
+
```json
|
|
215
|
+
{
|
|
216
|
+
...
|
|
217
|
+
"type": "module",
|
|
218
|
+
"scripts": {
|
|
219
|
+
...
|
|
220
|
+
"build:lib": "rollup -c rollup.config.mjs",
|
|
221
|
+
...
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Step 2:
|
|
227
|
+
|
|
228
|
+
- Create **config.json** file inside portable-devices/mobile root folder if not exists and add/update mobileConfig and modules key to update modules and app generation required mobile config.
|
|
229
|
+
- Create **generate-navigations.mjs or yourfilename.mjs** inside portable-devices/mobile root folder.
|
|
230
|
+
- Update portable-devices/mobile **package.json** scripts and add script to generate development and production app navigation files with above mjs files.
|
|
231
|
+
- Update **portable-devices/mobile/src/modules/modules.tsx** file , import **_modules and useGetModules hook_** from autogenerated **src/app/modules.ts** file and app navigation from autogenerated **src/app/navigation.tsx** file to use with src/modules/modules.tsx file for autogenerated navigation and import and add Navigation from src/modules/modules.tsx in src/App.tsx file.
|
|
232
|
+
|
|
233
|
+
**[portable-devices/mobile/config.json](https://github.com/CDEBase/admin-layout/blob/develop/portable-devices/mobile/config.json)**
|
|
234
|
+
|
|
235
|
+
```json
|
|
236
|
+
{
|
|
237
|
+
"commonPaths": {},
|
|
238
|
+
"copyOperations": [],
|
|
239
|
+
"mobileConfig": {
|
|
240
|
+
"initialRouteName": "",
|
|
241
|
+
"unauthenticatedComponentPath": "",
|
|
242
|
+
"customTabBarPath": "",
|
|
243
|
+
"customDrawerPath": "",
|
|
244
|
+
"customHeaderPath": ""
|
|
245
|
+
},
|
|
246
|
+
"modules": ["@somepkg/yourpkg1", "@admin-layout/gluestack-ui-mobile"],
|
|
247
|
+
"paths": {}
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
_Note: here mobileConfig initialRouteName is used when we want to change the app initial navigation redirect route,unauthenticatedComponentPath is the global unauthenticated component absolute path like **'@yourpkg/somemobilepkg/lib/screens/Login.js'** , same for other customTabBarPath,customDrawerPath or customHeaderPath._
|
|
252
|
+
|
|
253
|
+
**[portable-devices/mobile/generate-navigations.mjs](https://github.com/CDEBase/admin-layout/blob/develop/portable-devices/mobile/generate-navigations.mjs)**
|
|
254
|
+
|
|
255
|
+
```js
|
|
256
|
+
import path from 'path';
|
|
257
|
+
import { fileURLToPath } from 'url';
|
|
258
|
+
import {
|
|
259
|
+
GenerateMobileNavigations,
|
|
260
|
+
readJsonFile,
|
|
261
|
+
} from '@admin-layout/gluestack-ui-mobile/lib/utils/generateMobileNavigations.js';
|
|
262
|
+
if (process.env.NODE_ENV === 'development') {
|
|
263
|
+
import('dotenv').then((dotenv) => {
|
|
264
|
+
dotenv.config({ path: `${process.cwd()}/${process.env.ENV_FILE}` });
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
268
|
+
const __dirname = path.dirname(__filename);
|
|
269
|
+
// App navigations setting config file path
|
|
270
|
+
const configFilePath = path.join(__dirname, 'config.json');
|
|
271
|
+
// Default app navigations directory path
|
|
272
|
+
const appDirPath = path.join(__dirname, './src/app');
|
|
273
|
+
|
|
274
|
+
const generateNavigations = async () => {
|
|
275
|
+
const config = await readJsonFile(configFilePath);
|
|
276
|
+
//App navigations generator class only appDirPath and modules are required
|
|
277
|
+
const app = new GenerateMobileNavigations({
|
|
278
|
+
appDirPath: appDirPath,
|
|
279
|
+
modules: config.modules,
|
|
280
|
+
initialRouteName: config.mobileConfig.initialRouteName, // (Optional)
|
|
281
|
+
unauthenticatedComponentPath: config.mobileConfig.unauthenticatedComponentPath, // (Optional)
|
|
282
|
+
customTabBarPath: config.mobileConfig.customTabBarPath, // (Optional)
|
|
283
|
+
customDrawerPath: config.mobileConfig.customDrawerPath, // (Optional)
|
|
284
|
+
customHeaderPath: config.mobileConfig.customHeaderPath, // (Optional)
|
|
285
|
+
});
|
|
286
|
+
try {
|
|
287
|
+
await app.generateAppNavigations();
|
|
288
|
+
console.log('app navigation generated');
|
|
289
|
+
} catch (error) {
|
|
290
|
+
console.error('Error generating app navigation:', error);
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
generateNavigations();
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
_Note: generate-navigations.mjs will generate app navigations inside src/app directory_
|
|
298
|
+
|
|
299
|
+
**[portable-devices/mobile/package.json](https://github.com/CDEBase/admin-layout/blob/586cd601e94674129d94832e485aa25ae53b894e/portable-devices/mobile/package.json#L43)**
|
|
300
|
+
|
|
301
|
+
```json
|
|
302
|
+
{
|
|
303
|
+
...
|
|
304
|
+
"scripts": {
|
|
305
|
+
...
|
|
306
|
+
"eas-build-post-install": "lerna exec --scope='{@messenger-box/core,...}' yarn build && yarn generate-app-navigations-prod",
|
|
307
|
+
"watch": "yarn generate-app-navigations && cross-env NODE_ENV=development ENV_FILE=../../config/development/dev.env expo start --clear --localhost",
|
|
308
|
+
"generate-app-navigations": "yarn cross-env NODE_ENV=development ENV_FILE=../../config/development/dev.env node generate-navigations.mjs",
|
|
309
|
+
"generate-app-navigations-prod": "node generate-navigations.mjs",
|
|
310
|
+
...
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
**[portable-devices/mobile/src/modules/modules.tsx](https://github.com/CDEBase/admin-layout/blob/develop/portable-devices/mobile/src/modules/modules.tsx)**
|
|
316
|
+
|
|
317
|
+
```tsx {11,12,18,22,39}
|
|
318
|
+
import * as React from 'react';
|
|
319
|
+
import { enableScreens } from 'react-native-screens';
|
|
320
|
+
import {
|
|
321
|
+
ErrorBoundary,
|
|
322
|
+
NavigationContainerComponent,
|
|
323
|
+
ApplicationErrorHandler,
|
|
324
|
+
Box,
|
|
325
|
+
Spinner,
|
|
326
|
+
} from '@admin-layout/gluestack-ui-mobile';
|
|
327
|
+
import { InversifyProvider, PluginArea } from '@common-stack/client-react';
|
|
328
|
+
import appModules, { useGetModules } from '../app/modules';
|
|
329
|
+
import AppNavigations from '../app/navigation';
|
|
330
|
+
|
|
331
|
+
enableScreens(true);
|
|
332
|
+
|
|
333
|
+
export const MainRoute = ({ container }: any) => {
|
|
334
|
+
const [mainFeatures, setMainFeatures] = React.useState<any>(null);
|
|
335
|
+
const { appRouteConfig } = useGetModules();
|
|
336
|
+
|
|
337
|
+
React.useEffect(() => {
|
|
338
|
+
if (appRouteConfig) {
|
|
339
|
+
appModules.routeConfig = appRouteConfig;
|
|
340
|
+
setMainFeatures(appModules);
|
|
341
|
+
}
|
|
342
|
+
}, [appRouteConfig]);
|
|
343
|
+
|
|
344
|
+
const loadingComponent = () => <Box flex={1}>{<Spinner />}</Box>;
|
|
345
|
+
|
|
346
|
+
if (!mainFeatures || mainFeatures?.routeConfig?.length == 0) return loadingComponent();
|
|
347
|
+
|
|
348
|
+
const plugins = mainFeatures?.getComponentFillPlugins();
|
|
349
|
+
const configuredRoutes = mainFeatures?.getConfiguredRoutes2('/');
|
|
350
|
+
|
|
351
|
+
return (
|
|
352
|
+
<InversifyProvider container={container} modules={mainFeatures}>
|
|
353
|
+
{mainFeatures?.getWrappedRoot(
|
|
354
|
+
<ErrorBoundary>
|
|
355
|
+
<NavigationContainerComponent configurableRoutes={configuredRoutes} independent={true}>
|
|
356
|
+
<AppNavigations />
|
|
357
|
+
<PluginArea />
|
|
358
|
+
<ApplicationErrorHandler plugins={plugins} />
|
|
359
|
+
</NavigationContainerComponent>
|
|
360
|
+
</ErrorBoundary>,
|
|
361
|
+
)}
|
|
362
|
+
</InversifyProvider>
|
|
363
|
+
);
|
|
364
|
+
};
|
|
365
|
+
|
|
366
|
+
export default appModules;
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
**[portable-devices/mobile/src/App.tsx](https://github.com/CDEBase/admin-layout/blob/develop/portable-devices/mobile/src/App.tsx)**
|
|
370
|
+
|
|
371
|
+
```tsx {14,28}
|
|
372
|
+
import 'reflect-metadata';
|
|
373
|
+
import React from 'react';
|
|
374
|
+
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
375
|
+
import { ApolloProvider } from '@apollo/client/index.js';
|
|
376
|
+
import { Provider } from 'react-redux';
|
|
377
|
+
import { GluestackUIProvider } from '@admin-layout/gluestack-ui-mobile';
|
|
378
|
+
import { config } from './config/gluestack-ui.config';
|
|
379
|
+
import { SlotFillProvider } from '@common-stack/components-pro';
|
|
380
|
+
import { persistStore } from 'redux-persist';
|
|
381
|
+
import { PersistGate } from 'redux-persist/integration/react';
|
|
382
|
+
import { createReduxStore, history } from './config/redux-config';
|
|
383
|
+
import { createClientContainer } from './config/client.service';
|
|
384
|
+
import { LogBox, SafeAreaView } from 'react-native';
|
|
385
|
+
import { MainRoute } from './modules/modules';
|
|
386
|
+
|
|
387
|
+
const { apolloClient: client, container, serviceFunc } = createClientContainer();
|
|
388
|
+
const { store } = createReduxStore(history, client, serviceFunc(), container);
|
|
389
|
+
|
|
390
|
+
export default function () {
|
|
391
|
+
let persistor = persistStore(store as any);
|
|
392
|
+
return (
|
|
393
|
+
<SlotFillProvider>
|
|
394
|
+
<ApolloProvider client={client}>
|
|
395
|
+
<Provider store={store}>
|
|
396
|
+
<PersistGate persistor={persistor}>
|
|
397
|
+
<SafeAreaView style={{ flex: 1 }}>
|
|
398
|
+
<GluestackUIProvider config={config} colorMode="light">
|
|
399
|
+
<MainRoute container={container} />
|
|
400
|
+
</GluestackUIProvider>
|
|
401
|
+
</SafeAreaView>
|
|
402
|
+
</PersistGate>
|
|
403
|
+
</Provider>
|
|
404
|
+
</ApolloProvider>
|
|
405
|
+
</SlotFillProvider>
|
|
406
|
+
);
|
|
407
|
+
}
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
For testing or adding route config in **portable-devices/mobile** create compute.ts file inside **portable-devices/mobile/src/compute.ts** and add routeConfig as above from step 1. This will generate route config json in src/app/main_routes.json and include your routes in generated navigations.
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
title: Mobile Test Cases
|
|
4
|
+
description: Mobile Test Cases
|
|
5
|
+
date: '2023-06-02T00:00:00'
|
|
6
|
+
updated: '2024-06-02T00:00:00'
|
|
7
|
+
excerpt: Mobile Test Cases...
|
|
8
|
+
headers:
|
|
9
|
+
Cache-Control: no-cache
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Mobile Test Cases
|
|
13
|
+
|
|
14
|
+
### 1. Inbox Test Cases
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
**_Example Config:_**
|
|
19
|
+
|
|
20
|
+
> **_ Channel Roles: _** _ Host/Guest_
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
import { Inbox } from '@messenger-box/platform-mobile';
|
|
24
|
+
import { IRoomType } from '@messenger-box/platform-client';
|
|
25
|
+
const inboxConfig = {
|
|
26
|
+
['//l/inbox']: {
|
|
27
|
+
exact: true,
|
|
28
|
+
name: 'Inbox',
|
|
29
|
+
props: {
|
|
30
|
+
initialParams: { channelId: null },
|
|
31
|
+
component:(props: any) => (
|
|
32
|
+
<Inbox {...props}
|
|
33
|
+
channelFilters={{type: IRoomType.Direct,orgName:orgName}}
|
|
34
|
+
channelRole={'Guest'}
|
|
35
|
+
supportServices={true} />
|
|
36
|
+
),
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
- [x] ** Inbox with channelFilters (default type direct).**
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
<Inbox channelFilters={{type: IRoomType.Direct}} />
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
- [x] ** Inbox with channelFilters (default type direct and orgName null).**
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
<Inbox channelFilters={{type: IRoomType.Direct,orgName:orgName}} />
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
- [x] ** Inbox with channelRole (default all type).**
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
<Inbox channelFilters={{type: IRoomType.Direct}} channelRole={'Guest'} />
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
- [x] ** Inbox with supportServices (default false).**
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
<Inbox channelFilters={{type: IRoomType.Direct}} supportServices={true} />
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
- **Expected Result:** The inbox should display a list of all direct channels by default.Additionally, it should support filtering the displayed channels based on specified criteria (channelFilters).When supportServices=true, it should display all fitered channels with all support service channels (By default supportServices=false).
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### 2. Inbox Conversation Test Cases
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
**_Example Config:_**
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
import { DialogMessages } from '@messenger-box/platform-mobile';
|
|
78
|
+
import { IRoomType } from '@messenger-box/platform-client';
|
|
79
|
+
const inboxConversationConfig = {
|
|
80
|
+
['//inbox/dialogmessage']: {
|
|
81
|
+
exact: true,
|
|
82
|
+
name: 'Inbox.DialogMessages',
|
|
83
|
+
props: {
|
|
84
|
+
component:(props: any) => (
|
|
85
|
+
<DialogMessages {...props}
|
|
86
|
+
channelId={props?.route?.params?.channelId}
|
|
87
|
+
role={'Guest'}
|
|
88
|
+
isShowThreadMessage={true}
|
|
89
|
+
/>
|
|
90
|
+
),
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
- [x] ** Inbox Conversation with ChannelId.**
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
<DialogMessages channelId={props?.route?.params?.channelId} />
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
- [x] ** Inbox Service Conversation with ChannelId and postParentId.**
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
<DialogThreadMessages
|
|
106
|
+
channelId={props?.route?.params?.channelId}
|
|
107
|
+
postParentId={props?.route?.params?.postParentId}
|
|
108
|
+
/>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
- [x] ** Inbox Conversation with Role.**
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
<DialogMessages channelId={props?.route?.params?.channelId} role={'Guest'} />
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
- [x] ** Inbox Conversation with Thread Messages (Default true).**
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
<DialogMessages
|
|
121
|
+
channelId={props?.route?.params?.channelId}
|
|
122
|
+
isShowThreadMessage={false} />
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
- **Expected Result:** The inbox conversation component should display a list of all direct channel messages by default for given channelId.Additionally, it should support filtering the displayed channel messages based on specified criteria (role and isShowThreadMessage).When isShowThreadMessage=false, it should display all fitered channel messages with thread messages view disabled (By default isShowThreadMessage=true).
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
<!-- #### Test Case 1.2: Inbox with suportService
|
|
130
|
+
- **Description:** Ensure that the inbox displays a list of all direct channel with service channel.
|
|
131
|
+
- **Steps:**
|
|
132
|
+
- [ ] Navigate to the navigation.ts.
|
|
133
|
+
- [ ] Import Inbox component from import { Inbox } from '@messenger-box/platform-mobile'.
|
|
134
|
+
- [ ] Pass supportServices props to inbox component .
|
|
135
|
+
```
|
|
136
|
+
import { Inbox } from '@messenger-box/platform-mobile';
|
|
137
|
+
|
|
138
|
+
const inboxConfig = {
|
|
139
|
+
['//l/inbox']: {
|
|
140
|
+
exact: true,
|
|
141
|
+
name: 'Inbox',
|
|
142
|
+
props: {
|
|
143
|
+
initialParams: { channelId: null },
|
|
144
|
+
component:(props: any) => (
|
|
145
|
+
<Inbox {...props} supportServices={true} />
|
|
146
|
+
),
|
|
147
|
+
options: {
|
|
148
|
+
headerShown: true,
|
|
149
|
+
title: 'Direct messages',
|
|
150
|
+
headerTitle: 'Direct messages',
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
- **Expected Result:** The inbox should display a list of all direct and support service channels list. -->
|
|
158
|
+
|
|
159
|
+
<!-- #### Test Case 1.2: Email Pagination
|
|
160
|
+
- **Description:** Verify that pagination works correctly when there are more emails than can fit on one page.
|
|
161
|
+
- **Steps:**
|
|
162
|
+
1. Navigate to the Inbox page.
|
|
163
|
+
2. Ensure there are more emails than the maximum displayed per page.
|
|
164
|
+
3. Click the "Next" button to go to the next page.
|
|
165
|
+
4. Verify that the next set of emails is displayed.
|
|
166
|
+
- **Expected Result:** Emails should be paginated correctly.
|
|
167
|
+
- [ ] Test Case 1.2: Email Pagination
|
|
168
|
+
|
|
169
|
+
### 2. Email Details
|
|
170
|
+
#### Test Case 2.1: Viewing an Email
|
|
171
|
+
- **Description:** Ensure that clicking on an email opens the email in detail view.
|
|
172
|
+
- **Steps:**
|
|
173
|
+
1. Navigate to the Inbox page.
|
|
174
|
+
2. Click on an email from the list.
|
|
175
|
+
3. Verify that the email detail view is displayed.
|
|
176
|
+
- **Expected Result:** The email's full content is displayed.
|
|
177
|
+
- [ ] Test Case 2.1: Viewing an Email
|
|
178
|
+
|
|
179
|
+
### 3. Composing Emails
|
|
180
|
+
#### Test Case 3.1: Composing a New Email
|
|
181
|
+
- **Description:** Verify that the user can compose and send a new email.
|
|
182
|
+
- **Steps:**
|
|
183
|
+
1. Click on the "Compose" button.
|
|
184
|
+
2. Fill in the recipient's email address, subject, and body.
|
|
185
|
+
3. Click "Send."
|
|
186
|
+
4. Verify that the email is sent and appears in the Sent folder.
|
|
187
|
+
- **Expected Result:** The email is successfully sent and appears in the Sent folder.
|
|
188
|
+
- [ ] Test Case 3.1: Composing a New Email
|
|
189
|
+
|
|
190
|
+
### 4. Replying to Emails
|
|
191
|
+
#### Test Case 4.1: Replying to an Email
|
|
192
|
+
- **Description:** Ensure that the user can reply to an email.
|
|
193
|
+
- **Steps:**
|
|
194
|
+
1. Open an email from the Inbox.
|
|
195
|
+
2. Click on the "Reply" button.
|
|
196
|
+
3. Enter the reply message.
|
|
197
|
+
4. Click "Send."
|
|
198
|
+
5. Verify that the reply is sent and appears in the Sent folder.
|
|
199
|
+
- **Expected Result:** The reply is successfully sent and appears in the Sent folder.
|
|
200
|
+
- [ ] Test Case 4.1: Replying to an Email
|
|
201
|
+
|
|
202
|
+
### 5. Email Management
|
|
203
|
+
#### Test Case 5.1: Marking an Email as Read/Unread
|
|
204
|
+
- **Description:** Verify that the user can mark an email as read or unread.
|
|
205
|
+
- **Steps:**
|
|
206
|
+
1. Navigate to the Inbox.
|
|
207
|
+
2. Select an email.
|
|
208
|
+
3. Click on the "Mark as Read/Unread" button.
|
|
209
|
+
4. Verify that the email's state changes accordingly.
|
|
210
|
+
- **Expected Result:** The email is marked as read or unread.
|
|
211
|
+
- [ ] Test Case 5.1: Marking an Email as Read/Unread
|
|
212
|
+
|
|
213
|
+
#### Test Case 5.2: Deleting an Email
|
|
214
|
+
- **Description:** Ensure that the user can delete an email.
|
|
215
|
+
- **Steps:**
|
|
216
|
+
1. Navigate to the Inbox.
|
|
217
|
+
2. Select an email.
|
|
218
|
+
3. Click on the "Delete" button.
|
|
219
|
+
4. Confirm the deletion.
|
|
220
|
+
5. Verify that the email is removed from the Inbox.
|
|
221
|
+
- **Expected Result:** The email is successfully deleted.
|
|
222
|
+
- [ ] Test Case 5.2: Deleting an Email
|
|
223
|
+
|
|
224
|
+
#### Test Case 5.3: Restoring a Deleted Email
|
|
225
|
+
- **Description:** Verify that the user can restore a deleted email from the Trash.
|
|
226
|
+
- **Steps:**
|
|
227
|
+
1. Navigate to the Trash folder.
|
|
228
|
+
2. Select a deleted email.
|
|
229
|
+
3. Click on the "Restore" button.
|
|
230
|
+
4. Verify that the email is moved back to the Inbox.
|
|
231
|
+
- **Expected Result:** The email is restored to the Inbox.
|
|
232
|
+
- [ ] Test Case 5.3: Restoring a Deleted Email
|
|
233
|
+
|
|
234
|
+
#### Test Case 5.4: Permanently Deleting an Email
|
|
235
|
+
- **Description:** Ensure that the user can permanently delete an email from the Trash.
|
|
236
|
+
- **Steps:**
|
|
237
|
+
1. Navigate to the Trash folder.
|
|
238
|
+
2. Select a deleted email.
|
|
239
|
+
3. Click on the "Permanently Delete" button.
|
|
240
|
+
4. Confirm the deletion.
|
|
241
|
+
5. Verify that the email is removed permanently.
|
|
242
|
+
- **Expected Result:** The email is permanently deleted and cannot be recovered.
|
|
243
|
+
- [ ] Test Case 5.4: Permanently Deleting an Email
|
|
244
|
+
|
|
245
|
+
### 6. Searching Emails
|
|
246
|
+
#### Test Case 6.1: Searching for an Email by Subject
|
|
247
|
+
- **Description:** Verify that the search functionality works for finding emails by subject.
|
|
248
|
+
- **Steps:**
|
|
249
|
+
1. Navigate to the Inbox.
|
|
250
|
+
2. Enter a keyword in the search bar that matches the subject of an email.
|
|
251
|
+
3. Click the "Search" button.
|
|
252
|
+
4. Verify that the search results display the correct emails.
|
|
253
|
+
- **Expected Result:** Emails with the matching subject are displayed in the search results.
|
|
254
|
+
- [ ] Test Case 6.1: Searching for an Email by Subject
|
|
255
|
+
|
|
256
|
+
#### Test Case 6.2: Searching for an Email by Sender
|
|
257
|
+
- **Description:** Ensure that the search functionality works for finding emails by sender.
|
|
258
|
+
- **Steps:**
|
|
259
|
+
1. Navigate to the Inbox.
|
|
260
|
+
2. Enter the sender's name or email address in the search bar.
|
|
261
|
+
3. Click the "Search" button.
|
|
262
|
+
4. Verify that the search results display the correct emails.
|
|
263
|
+
- **Expected Result:** Emails from the specified sender are displayed in the search results.
|
|
264
|
+
- [ ] Test Case 6.2: Searching for an Email by Sender -->
|