Skip to content

Conversation

@ivan-kalachikov
Copy link
Contributor

@ivan-kalachikov ivan-kalachikov commented Nov 19, 2025

Copilot finished reviewing on behalf of ivan-kalachikov November 19, 2025 18:29
Copy link
Contributor

Copilot AI left a 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 centralized useExtensionRegistry
  • Updates all affected Vue components to use ExtensionPoint and ExtensionPointList components
  • 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.

@goldenmaya
Copy link
Contributor

The refactoring looks a bit unfinished to me. VariationsTable and VariationsDefault components still use the old useCustomProductComponents system.
Are there any blockers or risks to refactor them as well?

goldenmaya
goldenmaya previously approved these changes Nov 24, 2025
ivan-kalachikov and others added 10 commits November 26, 2025 11:31
## 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
@sonarqubecloud
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants