mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
14 lines
597 B
TypeScript
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];
|
|
}
|