@fluentui-react-native/default-theme 0.16.20 → 0.16.22

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.
@@ -21,11 +21,11 @@ beforeAll(() => {
21
21
  });
22
22
 
23
23
  it('defaultFluentTheme test', () => {
24
- expect(defaultFluentTheme).toMatchSnapshot();
24
+ expect(defaultFluentTheme()).toMatchSnapshot();
25
25
  });
26
26
 
27
27
  it('defaultFluentDarkTheme test', () => {
28
- expect(defaultFluentDarkTheme).toMatchSnapshot();
28
+ expect(defaultFluentDarkTheme()).toMatchSnapshot();
29
29
  });
30
30
 
31
31
  describe('createDefaultTheme test', () => {
@@ -10,11 +10,11 @@ export function createDefaultTheme(options: ThemeOptions = {}): ThemeReference {
10
10
  const current = getCurrentAppearance(options.appearance, options.defaultAppearance || 'light');
11
11
  switch (current) {
12
12
  case 'light':
13
- return defaultFluentTheme;
13
+ return defaultFluentTheme();
14
14
  case 'dark':
15
- return defaultFluentDarkTheme;
15
+ return defaultFluentDarkTheme();
16
16
  case 'highContrast':
17
- return defaultFluentHighConstrastTheme;
17
+ return defaultFluentHighConstrastTheme();
18
18
  default:
19
19
  assertNever(current);
20
20
  }
@@ -3,6 +3,7 @@ import { Platform } from 'react-native';
3
3
  import { getStockWebPalette, getStockWebDarkPalette, getStockWebHCPalette } from './defaultColors';
4
4
  import { globalTokens } from '@fluentui-react-native/theme-tokens';
5
5
  import { createShadowAliasTokens } from './createAliasTokens';
6
+ import { memoize } from '@fluentui-react-native/memo-cache';
6
7
 
7
8
  function _defaultTypography(): Typography {
8
9
  const defaultsDict = {
@@ -77,29 +78,43 @@ export function defaultSpacing(): Spacing {
77
78
  return { s2: '4px', s1: '8px', m: '16px', l1: '20px', l2: '32px' };
78
79
  }
79
80
 
80
- export const defaultFluentTheme: Theme = {
81
- colors: getStockWebPalette(),
82
- typography: _defaultTypography(),
83
- spacing: defaultSpacing(),
84
- shadows: createShadowAliasTokens('light'),
85
- components: {},
86
- host: { appearance: 'light' },
87
- };
81
+ function defaultFluentThemeWorker(): Theme {
82
+ return {
83
+ colors: getStockWebPalette(),
84
+ typography: _defaultTypography(),
85
+ spacing: defaultSpacing(),
86
+ shadows: createShadowAliasTokens('light'),
87
+ components: {},
88
+ host: { appearance: 'light' },
89
+ };
90
+ }
91
+
92
+ export const defaultFluentTheme = memoize(defaultFluentThemeWorker);
88
93
 
89
- export const defaultFluentDarkTheme: Theme = {
90
- colors: getStockWebDarkPalette(),
91
- typography: defaultFluentTheme.typography,
92
- shadows: createShadowAliasTokens('dark'),
93
- spacing: defaultFluentTheme.spacing,
94
- components: {},
95
- host: { appearance: 'dark' },
96
- };
94
+ function defaultFluentDarkThemeWorker(): Theme {
95
+ const defaultTheme = defaultFluentTheme();
96
+ return {
97
+ colors: getStockWebDarkPalette(),
98
+ typography: defaultTheme.typography,
99
+ shadows: createShadowAliasTokens('dark'),
100
+ spacing: defaultTheme.spacing,
101
+ components: {},
102
+ host: { appearance: 'dark' },
103
+ };
104
+ }
105
+
106
+ export const defaultFluentDarkTheme = memoize(defaultFluentDarkThemeWorker);
107
+
108
+ function defaultFluentHighConstrastThemeWorker(): Theme {
109
+ const defaultTheme = defaultFluentTheme();
110
+ return {
111
+ colors: getStockWebHCPalette(),
112
+ typography: defaultTheme.typography,
113
+ shadows: createShadowAliasTokens('highContrast'),
114
+ spacing: defaultTheme.spacing,
115
+ components: {},
116
+ host: { appearance: 'highContrast' },
117
+ };
118
+ }
97
119
 
98
- export const defaultFluentHighConstrastTheme: Theme = {
99
- colors: getStockWebHCPalette(),
100
- typography: defaultFluentTheme.typography,
101
- shadows: createShadowAliasTokens('highContrast'),
102
- spacing: defaultFluentTheme.spacing,
103
- components: {},
104
- host: { appearance: 'highContrast' },
105
- };
120
+ export const defaultFluentHighConstrastTheme = memoize(defaultFluentHighConstrastThemeWorker);