-
Notifications
You must be signed in to change notification settings - Fork 38
chore(VCST-3470): refactor extension points #2067
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR refactors the extension points system by consolidating multiple component-specific composables into a centralized extension registry. The changes remove custom composables for mobile menu, mobile header, and header link components, migrating all extension point registrations to use the unified useExtensionRegistry composable and related ExtensionPoint/ExtensionPointList components.
- Removes three separate composables (
useCustomMobileMenuLinkComponents,useCustomMobileHeaderComponents,useCustomHeaderLinkComponents) in favor of the centralizeduseExtensionRegistry - Updates all affected Vue components to use
ExtensionPointandExtensionPointListcomponents - Migrates push-messages and back-in-stock modules to register components using the new extension registry pattern
Reviewed Changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| client-app/shared/layout/composables/useCustomMobileMenuLinkComponents.ts | Deleted - functionality replaced by centralized extension registry |
| client-app/shared/layout/composables/useCustomMobileHeaderComponents.ts | Deleted - functionality replaced by centralized extension registry |
| client-app/shared/layout/composables/useCustomHeaderLinkComponents.ts | Deleted - functionality replaced by centralized extension registry |
| client-app/shared/layout/components/header/_internal/mobile-menu/menus/main-menu.vue | Replaced dynamic component rendering with ExtensionPoint wrapper |
| client-app/shared/layout/components/header/_internal/mobile-menu/menus/default-menu.vue | Replaced conditional component rendering with ExtensionPoint wrapper |
| client-app/shared/layout/components/header/_internal/mobile-header.vue | Replaced custom component iteration with ExtensionPointList |
| client-app/shared/layout/components/header/_internal/bottom-header.vue | Replaced dynamic component rendering with ExtensionPoint wrapper |
| client-app/shared/common/constants/index.ts | Added export for EXTENSION_NAMES constant |
| client-app/shared/catalog/components/product-price.vue | Migrated from useCustomProductComponents pattern to ExtensionPoint with $canRenderExtensionPoint |
| client-app/shared/catalog/components/product-card.vue | Migrated from useCustomProductComponents pattern to ExtensionPoint with $canRenderExtensionPoint |
| client-app/modules/push-messages/index.ts | Refactored to use new extension registry for component registration |
| client-app/modules/back-in-stock/index.ts | Refactored to use new extension registry with updated condition functions |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
The refactoring looks a bit unfinished to me. |
## Description ### Before <img width="448" height="329" alt="image" src="https://github.com/user-attachments/assets/1a5b54d0-faa1-4474-a36b-68447e09fabe" /> ### After <img width="353" height="186" alt="Screenshot 2025-11-26 at 18 50 08" src="https://github.com/user-attachments/assets/a79052ef-d9a4-4f7e-a6a6-3ebf97d23ad1" /> <img width="352" height="214" alt="Screenshot 2025-11-26 at 19 00 44" src="https://github.com/user-attachments/assets/e8314693-3629-433f-8cf8-744d56212054" /> ## References ### Jira-link: <!-- Put link to your task in Jira here --> https://virtocommerce.atlassian.net/browse/VCST-4285 ### Artifact URL: https://vc3prerelease.blob.core.windows.net/packages/vc-theme-b2b-vue-2.36.0-pr-2079-20f6-20f66b29.zip
## Description ## References ### Jira-link: <!-- Put link to your task in Jira here --> https://virtocommerce.atlassian.net/browse/VCST-4337 ### Artifact URL: https://vc3prerelease.blob.core.windows.net/packages/vc-theme-b2b-vue-2.36.0-pr-2084-5b11-5b117efe.zip --------- Co-authored-by: Elena Mutykova <[email protected]>
## Description ## References ### Jira-link: https://virtocommerce.atlassian.net/browse/VCST-4335 ### Artifact URL: https://vc3prerelease.blob.core.windows.net/packages/vc-theme-b2b-vue-2.36.0-pr-2080-f209-f209639c.zip
#2056) …ations https://virtocommerce.atlassian.net/browse/VCST-3965 https://vc3prerelease.blob.core.windows.net/packages/vc-theme-b2b-vue-2.35.0-pr-2056-0ae1-0ae1be1c.zip Co-authored-by: Aleksandra-Mitricheva <[email protected]>
## Description ## References ### Jira-link: https://virtocommerce.atlassian.net/browse/VCST-4220 ### Artifact URL: https://vc3prerelease.blob.core.windows.net/packages/vc-theme-b2b-vue-2.36.0-pr-2068-c169-c169d114.zip Co-authored-by: Aleksandra-Mitricheva <[email protected]>
## Description ## References ### Jira-link: https://virtocommerce.atlassian.net/browse/VCST-4232 ### Artifact URL: https://vc3prerelease.blob.core.windows.net/packages/vc-theme-b2b-vue-2.36.0-pr-2066-a8c0-a8c0b3d9.zip Co-authored-by: Elena Mutykova <[email protected]>
|



Description
References
Jira-link:
https://virtocommerce.atlassian.net/browse/VCST-3470
Artifact URL:
https://vc3prerelease.blob.core.windows.net/packages/vc-theme-b2b-vue-2.36.0-pr-2067-baad-baad6653.zip