From 7797cb45db759335c72b130e6437e8ea10edc0d6 Mon Sep 17 00:00:00 2001 From: izhulien Date: Sun, 13 Nov 2022 12:08:44 +0200 Subject: [PATCH] [@mantine/styles] Add access to theme in defaultProps. --- src/mantine-styles/src/theme/MantineProvider.tsx | 5 ++++- src/mantine-styles/src/theme/types/MantineTheme.ts | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mantine-styles/src/theme/MantineProvider.tsx b/src/mantine-styles/src/theme/MantineProvider.tsx index 6596e296325..3dc26cf49b4 100644 --- a/src/mantine-styles/src/theme/MantineProvider.tsx +++ b/src/mantine-styles/src/theme/MantineProvider.tsx @@ -53,7 +53,10 @@ export function useComponentDefaultProps, U extend [Key in Extract]-?: U[Key] & T[Key]; } { const theme = useMantineTheme(); - const contextProps = theme.components[component]?.defaultProps; + const contextPropsPayload = theme.components[component]?.defaultProps; + const contextProps = + typeof contextPropsPayload === 'function' ? contextPropsPayload(theme) : contextPropsPayload; + return { ...defaultProps, ...contextProps, ...filterProps(props) }; } diff --git a/src/mantine-styles/src/theme/types/MantineTheme.ts b/src/mantine-styles/src/theme/types/MantineTheme.ts index 25842efe202..d86630b9624 100644 --- a/src/mantine-styles/src/theme/types/MantineTheme.ts +++ b/src/mantine-styles/src/theme/types/MantineTheme.ts @@ -105,7 +105,7 @@ export interface MantineTheme { } interface ThemeComponent { - defaultProps?: Record; + defaultProps?: Record | ((theme: MantineTheme) => Record); classNames?: Record; styles?: | Record