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
19 lines
508 B
TypeScript
19 lines
508 B
TypeScript
import { Theme } from './createTheme';
|
|
import { Components } from './components';
|
|
|
|
export interface ThemeWithProps {
|
|
components?: Components<Omit<Theme, 'components'>>;
|
|
}
|
|
|
|
export type ThemedProps<Theme, Name extends keyof any> = Theme extends {
|
|
components: Record<Name, { defaultProps: infer Props }>;
|
|
}
|
|
? Props
|
|
: {};
|
|
|
|
export default function useThemeProps<
|
|
Theme extends ThemeWithProps,
|
|
Props,
|
|
Name extends keyof any,
|
|
>(params: { props: Props; name: Name }): Props & ThemedProps<Theme, Name>;
|