Some checks failed
CI/CD Pipeline / unit-tests (push) Failing after 1m16s
CI/CD Pipeline / integration-tests (push) Failing after 2m32s
CI/CD Pipeline / lint (push) Successful in 5m22s
CI/CD Pipeline / e2e-tests (push) Has been skipped
CI/CD Pipeline / build (push) Has been skipped
18 lines
458 B
TypeScript
18 lines
458 B
TypeScript
export {};
|
|
|
|
interface ThemeWithProps<Components> {
|
|
components?: { [K in keyof Components]: { defaultProps?: Partial<Components[K]> } };
|
|
}
|
|
|
|
type ThemedProps<Theme, Name extends keyof any> = Theme extends {
|
|
components: Record<Name, { defaultProps: infer Props }>;
|
|
}
|
|
? Props
|
|
: {};
|
|
|
|
export default function getThemeProps<Theme, Props, Name extends keyof any>(params: {
|
|
props: Props;
|
|
name: Name;
|
|
theme?: Theme;
|
|
}): Props & ThemedProps<Theme, Name>;
|