mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
* dbeaver/dbeaver-vscode#83 refactor: data grid * chore: try to fix build scripts * chore: commit artifacts * chore: update yarn.lock * fix: adjust grid auto-sizing * chore: fix prettier * chore: add documentation about typescript crashes * fix: cell menu * fix: grid inline editor styles * fix: cell menu styles * fix: cell items alignment * fix: data sync * feat: support reactive values in grid * chore: try to fix strange build bug * chore: restore original file name * fix: add specific to inline editor styles * fix: remove delete row shortcut (not working) * chore: enable common cache
20 lines
555 B
TypeScript
20 lines
555 B
TypeScript
import { useMemo } from 'react';
|
|
import type { IGridReactiveValue, IGridReactiveValueSubscribe } from './IGridReactiveValue.js';
|
|
|
|
type NoInfer<T> = intrinsic;
|
|
export function useCreateGridReactiveValue<T, TArgs extends any[]>(
|
|
get: (...args: TArgs) => T,
|
|
subscribe: NoInfer<IGridReactiveValueSubscribe<TArgs>> | null,
|
|
deps: React.DependencyList,
|
|
): IGridReactiveValue<T, TArgs> {
|
|
const value = useMemo<IGridReactiveValue<T, TArgs>>(
|
|
() => ({
|
|
get,
|
|
subscribe: subscribe ?? (() => () => {}),
|
|
}),
|
|
deps,
|
|
);
|
|
|
|
return value;
|
|
}
|