@tanstack/angular-table-devtools
Version:
Angular devtools for TanStack Table.
24 lines (22 loc) • 949 B
JavaScript
import { DestroyRef, Injector, assertInInjectionContext, effect, inject, untracked } from "@angular/core";
import { createTableDevtoolsRegistrationManager } from "@tanstack/table-devtools";
//#region src/injectTanStackTableDevtools.ts
function injectTanStackTableDevtools(options) {
const enabled = () => options().enabled?.() ?? true;
let injector = options().injector;
if (!injector) {
assertInInjectionContext(injectTanStackTableDevtools);
injector = inject(Injector);
}
const destroyRef = injector.get(DestroyRef);
const registration = createTableDevtoolsRegistrationManager();
destroyRef.onDestroy(() => registration.dispose());
effect(() => {
const { table } = options();
const enabledValue = enabled();
untracked(() => registration.update(table, enabledValue));
}, { injector });
}
function injectTanStackTableDevtoolsNoOp(_options) {}
//#endregion
export { injectTanStackTableDevtools, injectTanStackTableDevtoolsNoOp };