ComponentEx
Extended Component
Import:
import { ComponentEx } from 'obsidian-dev-utils/obsidian/components/component-ex';Signature:
export class ComponentEx extends Component implements DisposableExtends: Component
Implements: Disposable
Methods
| Method | Returns | Description |
|---|---|---|
| [Symbol.dispose]() | void | Disposes of the component. |
| addChild(component) | TComponent | Adds a child component. Mirrors the native Component.addChild contract: if this component is already loaded, the child is loaded immediately, so child._loaded is set before this method returns even when this component has async load logic. The child's async tail (if any) is sequenced into the load promise so a later loadWithPromises call awaits it. |
| ensureLoaded() | void | Ensures the component is loaded, throwing if it is not. Use this to guard public methods that register teardown-bearing resources (via Component.register, Component.registerEvent, Component.registerDomEvent, etc.). Registering before load is unsafe: Component.unload is a no-op while the component is not loaded, so any teardown registered beforehand would never run if the component is unloaded without first being loaded. |
| load() | void | Loads the component. |
| loadWithPromises() | null | Promise<void> | Loads the component with promises. Unlike load, this method never rejects with an individual error: every failure raised by onloadAsync or a child's load is collected, and once everything settles the returned Promise rejects with a single AggregateError holding all of them. Non-Error throwables are normalized via ErrorWrapper.create. |
| onloadAsync() | Promise<void> | Asynchronously loads the component. Override to add async load logic, which is executed after Component.onload. |
| registerDisposable(disposable) | TDisposable | Registers a Disposable so it is disposed when this component unloads, and returns it unchanged.The recurring "tie a disposable to the component's lifecycle, then keep using it" idiom: the disposable is disposed on Component.unload (or earlier, if the caller disposes it directly — dispose is expected to be idempotent). Guard with ensureLoaded at the call site when registering before load would be unsafe. |
| removeChild(component) | TComponent | Removes a child component. |
Links to this page:
- CommandHandlerComponent
- AbortSignalComponent
- AllWindowsEventComponent
- AsyncErrorHandlerComponent
- CaseInsensitiveFileIndexComponent
- ConsoleDebugComponent
- EmbedExtensionsComponent
- GenerateMarkdownLinkDefaultParamsComponent
- LayoutReadyComponent
- MenuEventRegistrarComponent
- MonkeyAroundComponent
- PluginContextComponent
- PluginNoticeComponent
- PluginSettingsComponentBase
- PluginSettingsTabComponent
- RegistryComponent
- RenameDeleteHandlerComponent
- ResourceLockComponent