mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-29 03:45:15 +00:00
16 lines
437 B
TypeScript
16 lines
437 B
TypeScript
|
export {};
|
||
|
|
||
|
interface ThemeWithProps<Components> {
|
||
|
props?: { [K in keyof Components]: Partial<Components[K]> };
|
||
|
}
|
||
|
|
||
|
type ThemedProps<Theme, Name extends keyof any> = Theme extends { props: Record<Name, infer Props> }
|
||
|
? Props
|
||
|
: {};
|
||
|
|
||
|
export default function getThemeProps<
|
||
|
Theme extends ThemeWithProps<any>,
|
||
|
Props,
|
||
|
Name extends keyof any
|
||
|
>(params: { props: Props; name: Name; theme?: Theme }): Props & ThemedProps<Theme, Name>;
|