Skip to main content

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:

  • true if the widget was successfully removed
  • false if 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() or getEnabledWidgets() 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 updateWidget to disable a widget instead of removing it

See Also​