@contember/react-utils 1.2.0-beta.3 → 1.2.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/development/context/createOptionalContextFactory.js +13 -0
- package/dist/development/context/createOptionalContextFactory.js.map +1 -0
- package/dist/development/debug-context/Context.js +3 -3
- package/dist/development/debug-context/Context.js.map +1 -1
- package/dist/development/hooks/useAddClassNameDuringResize.js +3 -0
- package/dist/development/hooks/useAddClassNameDuringResize.js.map +1 -1
- package/dist/development/hooks/useContainerWidth.js +14 -0
- package/dist/development/hooks/useContainerWidth.js.map +1 -0
- package/dist/development/hooks/useDocumentTitle.js +22 -0
- package/dist/development/hooks/useDocumentTitle.js.map +1 -0
- package/dist/development/hooks/useExpectSameValueReference.js +7 -4
- package/dist/development/hooks/useExpectSameValueReference.js.map +1 -1
- package/dist/development/index.js +23 -0
- package/dist/development/index.js.map +1 -1
- package/dist/development/theming/ColorSchemeProvider.js +18 -0
- package/dist/development/theming/ColorSchemeProvider.js.map +1 -0
- package/dist/development/theming/GlobalClassNamePrefixContext.js +6 -0
- package/dist/development/theming/GlobalClassNamePrefixContext.js.map +1 -0
- package/dist/development/theming/contexts.js +12 -0
- package/dist/development/theming/contexts.js.map +1 -0
- package/dist/development/theming/useClassName.js +17 -0
- package/dist/development/theming/useClassName.js.map +1 -0
- package/dist/development/theming/useClassNameFactory.js +20 -0
- package/dist/development/theming/useClassNameFactory.js.map +1 -0
- package/dist/development/theming/useThemedClassName.js +17 -0
- package/dist/development/theming/useThemedClassName.js.map +1 -0
- package/dist/development/theming/useThemedClassNameFactory.js +27 -0
- package/dist/development/theming/useThemedClassNameFactory.js.map +1 -0
- package/dist/production/context/createOptionalContextFactory.js +13 -0
- package/dist/production/context/createOptionalContextFactory.js.map +1 -0
- package/dist/production/debug-context/Context.js +3 -3
- package/dist/production/debug-context/Context.js.map +1 -1
- package/dist/production/hooks/useAddClassNameDuringResize.js +3 -0
- package/dist/production/hooks/useAddClassNameDuringResize.js.map +1 -1
- package/dist/production/hooks/useContainerWidth.js +14 -0
- package/dist/production/hooks/useContainerWidth.js.map +1 -0
- package/dist/production/hooks/useDocumentTitle.js +22 -0
- package/dist/production/hooks/useDocumentTitle.js.map +1 -0
- package/dist/production/hooks/useExpectSameValueReference.js.map +1 -1
- package/dist/production/index.js +23 -0
- package/dist/production/index.js.map +1 -1
- package/dist/production/theming/ColorSchemeProvider.js +14 -0
- package/dist/production/theming/ColorSchemeProvider.js.map +1 -0
- package/dist/production/theming/GlobalClassNamePrefixContext.js +6 -0
- package/dist/production/theming/GlobalClassNamePrefixContext.js.map +1 -0
- package/dist/production/theming/contexts.js +12 -0
- package/dist/production/theming/contexts.js.map +1 -0
- package/dist/production/theming/useClassName.js +17 -0
- package/dist/production/theming/useClassName.js.map +1 -0
- package/dist/production/theming/useClassNameFactory.js +20 -0
- package/dist/production/theming/useClassNameFactory.js.map +1 -0
- package/dist/production/theming/useThemedClassName.js +17 -0
- package/dist/production/theming/useThemedClassName.js.map +1 -0
- package/dist/production/theming/useThemedClassNameFactory.js +27 -0
- package/dist/production/theming/useThemedClassNameFactory.js.map +1 -0
- package/dist/types/context/createOptionalContextFactory.d.ts +3 -0
- package/dist/types/context/createOptionalContextFactory.d.ts.map +1 -0
- package/dist/types/context/index.d.ts +1 -0
- package/dist/types/context/index.d.ts.map +1 -1
- package/dist/types/debug-context/Context.d.ts +2 -2
- package/dist/types/debug-context/Context.d.ts.map +1 -1
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/hooks/index.d.ts.map +1 -1
- package/dist/types/hooks/useAddClassNameDuringResize.d.ts.map +1 -1
- package/dist/types/hooks/useContainerWidth.d.ts +4 -0
- package/dist/types/hooks/useContainerWidth.d.ts.map +1 -0
- package/dist/types/hooks/useDocumentTitle.d.ts +2 -0
- package/dist/types/hooks/useDocumentTitle.d.ts.map +1 -0
- package/dist/types/hooks/useExpectSameValueReference.d.ts +22 -0
- package/dist/types/hooks/useExpectSameValueReference.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/theming/ColorSchemeProvider.d.ts +7 -0
- package/dist/types/theming/ColorSchemeProvider.d.ts.map +1 -0
- package/dist/types/theming/GlobalClassNamePrefixContext.d.ts +2 -0
- package/dist/types/theming/GlobalClassNamePrefixContext.d.ts.map +1 -0
- package/dist/types/theming/contexts.d.ts +12 -0
- package/dist/types/theming/contexts.d.ts.map +1 -0
- package/dist/types/theming/index.d.ts +8 -0
- package/dist/types/theming/index.d.ts.map +1 -0
- package/dist/types/theming/useClassName.d.ts +11 -0
- package/dist/types/theming/useClassName.d.ts.map +1 -0
- package/dist/types/theming/useClassNameFactory.d.ts +17 -0
- package/dist/types/theming/useClassNameFactory.d.ts.map +1 -0
- package/dist/types/theming/useThemedClassName.d.ts +39 -0
- package/dist/types/theming/useThemedClassName.d.ts.map +1 -0
- package/dist/types/theming/useThemedClassNameFactory.d.ts +3 -0
- package/dist/types/theming/useThemedClassNameFactory.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/context/createOptionalContextFactory.ts +13 -0
- package/src/context/index.ts +1 -0
- package/src/debug-context/Context.tsx +5 -5
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useAddClassNameDuringResize.ts +4 -0
- package/src/hooks/useContainerWidth.ts +13 -0
- package/src/hooks/useDocumentTitle.ts +21 -0
- package/src/hooks/useExpectSameValueReference.ts +27 -2
- package/src/index.ts +1 -0
- package/src/theming/ColorSchemeProvider.tsx +19 -0
- package/src/theming/GlobalClassNamePrefixContext.ts +3 -0
- package/src/theming/contexts.ts +18 -0
- package/src/theming/index.ts +7 -0
- package/src/theming/useClassName.ts +28 -0
- package/src/theming/useClassNameFactory.ts +47 -0
- package/src/theming/useThemedClassName.ts +54 -0
- package/src/theming/useThemedClassNameFactory.ts +41 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { NestedClassName, colorSchemeClassName, deduplicateClassName, filterThemedClassName, flatClassNameList } from '@contember/utilities'
|
|
2
|
+
import { useContext } from 'react'
|
|
3
|
+
import { GlobalClassNamePrefixContext } from './GlobalClassNamePrefixContext'
|
|
4
|
+
import { useColorScheme } from './contexts'
|
|
5
|
+
|
|
6
|
+
export function useThemedClassNameFactory(
|
|
7
|
+
componentClassName: NestedClassName,
|
|
8
|
+
glue: string | null = '-',
|
|
9
|
+
prefixOverride?: string | null | undefined,
|
|
10
|
+
) {
|
|
11
|
+
const contextPrefix = useContext(GlobalClassNamePrefixContext)
|
|
12
|
+
const classNamePrefix: string = prefixOverride === null || prefixOverride === '' ? '' : prefixOverride || contextPrefix
|
|
13
|
+
|
|
14
|
+
const componentClassNameList: string[] = flatClassNameList(componentClassName).map(
|
|
15
|
+
componentClassName => `${classNamePrefix}${componentClassName}`,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
const colorScheme = colorSchemeClassName(useColorScheme())
|
|
19
|
+
|
|
20
|
+
return function componentClassNameFor(
|
|
21
|
+
suffix: string | null | undefined = null,
|
|
22
|
+
additionalClassName: NestedClassName = null,
|
|
23
|
+
): string {
|
|
24
|
+
const classNameSuffix: string = suffix ?? ''
|
|
25
|
+
|
|
26
|
+
return deduplicateClassName((classNameSuffix
|
|
27
|
+
? (classNameSuffix.match(/^[a-zA-Z0-9]/)
|
|
28
|
+
? componentClassNameList.map(componentClassName => `${componentClassName}${glue}${classNameSuffix}`)
|
|
29
|
+
: componentClassNameList.map(componentClassName => `${componentClassName}${classNameSuffix}`)
|
|
30
|
+
)
|
|
31
|
+
: componentClassNameList
|
|
32
|
+
).concat(
|
|
33
|
+
flatClassNameList(
|
|
34
|
+
filterThemedClassName(
|
|
35
|
+
additionalClassName,
|
|
36
|
+
colorScheme,
|
|
37
|
+
),
|
|
38
|
+
),
|
|
39
|
+
)).join(' ')
|
|
40
|
+
}
|
|
41
|
+
}
|