removeWidget
Remove a widget from the widget manager during the bootstrap phase.
Import
import { removeWidget } from '@evershop/evershop/lib/widget';
Syntax
removeWidget(widgetName: string): boolean
Parameters
widgetName
Type: string
The type of the widget to remove.
Return Value
Returns boolean:
trueif the widget was successfully removedfalseif the widget was not found
Examples
Basic Usage
import { removeWidget } from '@evershop/evershop/lib/widget';
export default function bootstrap() {
// Remove a widget from the manager
removeWidget('old_banner_widget');
}
Remove Multiple Widgets
import { removeWidget } from '@evershop/evershop/lib/widget';
export default function bootstrap() {
// Remove deprecated widgets
removeWidget('legacy_slider');
removeWidget('old_carousel');
removeWidget('deprecated_gallery');
}
Conditional Removal
import { removeWidget } from '@evershop/evershop/lib/widget';
import { getConfig } from '@evershop/evershop/lib/util/getConfig';
export default function bootstrap() {
// Remove widget based on configuration
const useLegacyWidgets = getConfig('widgets.useLegacy', false);
if (!useLegacyWidgets) {
removeWidget('legacy_product_list');
}
}
Bootstrap Location
Widgets must be removed in the bootstrap file:
// extensions/my-extension/bootstrap.ts
import { removeWidget } from '@evershop/evershop/lib/widget';
export default function bootstrap() {
// Remove a core widget you don't want to use
removeWidget('default_banner');
}
Notes
- Must be called during bootstrap phase before the widget manager is frozen
- Throws an error if called after
getAllWidgets()orgetEnabledWidgets()has been called - Logs a warning if the widget type is not found
- Useful for extensions that want to completely remove core widgets
- Consider using
updateWidgetto disable a widget instead of removing it
See Also
- registerWidget - Register a new widget
- updateWidget - Update an existing widget