Files
cloudbeaver/common-react/@dbeaver/ui-kit/src/componentProviderWrapper.tsx
T
Alexeyandmr-anton-t 9c3cc17bd9 dbeaver/pro#5394 feat: null and boolean formatter for base grid (#3359)
* dbeaver/pro#5394 feat: null and boolean formatter for base grid

* feat: reuse base grid formatters

* chore: try to adjust workflow concurrency

* chore: trigger workflow

* chore: trigger workflow cancel

* chore: fix label styles

---------

Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
2025-04-09 15:06:32 +08:00

14 lines
597 B
TypeScript

import { use } from 'react';
import { ComponentProvider, type IComponentProvider } from './ComponentProvider.js';
export function componentProviderWrapper<T extends keyof IComponentProvider>(
key: T,
component: Required<IComponentProvider>[T],
): Required<IComponentProvider>[T] {
return function componentProviderWrapperInner(props: Required<IComponentProvider>[T] extends React.FC<infer P> ? P : never) {
const provider = use(ComponentProvider);
const Component = provider[key] || component;
return <Component {...(props as any)} />;
} as Required<IComponentProvider>[T];
}