@react-native-styled-system/core 1.1.1 → 1.2.0
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/lib/commonjs/hook/useSx.js +14 -4
- package/lib/commonjs/hook/useSx.js.map +1 -1
- package/lib/commonjs/hook/useSxStyle.js +13 -5
- package/lib/commonjs/hook/useSxStyle.js.map +1 -1
- package/lib/module/hook/useSx.js +14 -4
- package/lib/module/hook/useSx.js.map +1 -1
- package/lib/module/hook/useSxStyle.js +13 -5
- package/lib/module/hook/useSxStyle.js.map +1 -1
- package/lib/typescript/src/hook/useSx.d.ts +2 -1
- package/lib/typescript/src/hook/useSx.d.ts.map +1 -1
- package/lib/typescript/src/hook/useSxStyle.d.ts +2 -1
- package/lib/typescript/src/hook/useSxStyle.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/hook/useSx.test.ts +5 -1
- package/src/hook/useSx.ts +16 -6
- package/src/hook/useSxStyle.ts +13 -5
|
@@ -21,7 +21,8 @@ const useSx = (props, {
|
|
|
21
21
|
theme: optionTheme,
|
|
22
22
|
styleType = defaultUseSxOptions.styleType,
|
|
23
23
|
transform = defaultUseSxOptions.transform,
|
|
24
|
-
fallback
|
|
24
|
+
fallback,
|
|
25
|
+
cache
|
|
25
26
|
} = defaultUseSxOptions) => {
|
|
26
27
|
const styledSystemContext = (0, _react.useContext)(_StyledSystemProvider.StyledSystemContext);
|
|
27
28
|
const getStyle = (0, _useStableCallback.useStableCallback)(() => {
|
|
@@ -56,13 +57,22 @@ const useSx = (props, {
|
|
|
56
57
|
const composedStyle = !mergedSxStyle ? props?.style : props?.style ? _reactNative.StyleSheet.compose(mergedSxStyle, props.style) : mergedSxStyle;
|
|
57
58
|
if (_jsUtil.is.function(transform)) {
|
|
58
59
|
const transformedSx = transform(_reactNative.StyleSheet.flatten(composedStyle));
|
|
59
|
-
|
|
60
|
+
const ret = _reactNative.StyleSheet.compose(composedStyle, (0, _propsToThemedStyle.propsToThemedStyle)({
|
|
60
61
|
theme,
|
|
61
62
|
sx: transformedSx,
|
|
62
63
|
styleType
|
|
63
|
-
}))
|
|
64
|
+
}));
|
|
65
|
+
if (cache) {
|
|
66
|
+
return (0, _StyleHash.getCachedStyle)(ret);
|
|
67
|
+
} else {
|
|
68
|
+
return ret;
|
|
69
|
+
}
|
|
64
70
|
} else {
|
|
65
|
-
|
|
71
|
+
if (cache) {
|
|
72
|
+
return (0, _StyleHash.getCachedStyle)(composedStyle);
|
|
73
|
+
} else {
|
|
74
|
+
return composedStyle;
|
|
75
|
+
}
|
|
66
76
|
}
|
|
67
77
|
});
|
|
68
78
|
const filteredProps = (0, _react.useMemo)(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_jsUtil","_SxProps","_useStableCallback","_mutateShortcutPropToOriginalKeys","_printWarning","_StyleHash","_StyledSystemProvider","_propsToThemedStyle","defaultUseSxOptions","styleType","useSx","props","theme","optionTheme","transform","fallback","styledSystemContext","useContext","StyledSystemContext","getStyle","useStableCallback","skip","is","function","propsToThemedStyle","sx","printWarning","mergedSx","mutateShortcutPropToOriginalKeys","mergedSxStyle","composedStyle","style","StyleSheet","compose","transformedSx","flatten","getCachedStyle","filteredProps","useMemo","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_jsUtil","_SxProps","_useStableCallback","_mutateShortcutPropToOriginalKeys","_printWarning","_StyleHash","_StyledSystemProvider","_propsToThemedStyle","defaultUseSxOptions","styleType","useSx","props","theme","optionTheme","transform","fallback","cache","styledSystemContext","useContext","StyledSystemContext","getStyle","useStableCallback","skip","is","function","propsToThemedStyle","sx","printWarning","mergedSx","mutateShortcutPropToOriginalKeys","mergedSxStyle","composedStyle","style","StyleSheet","compose","transformedSx","flatten","ret","getCachedStyle","filteredProps","useMemo","_viewStylePropList","forEach","keyName","_textStylePropList","exports"],"sourceRoot":"../../../src","sources":["hook/useSx.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,7 +11,8 @@ var _StyledSystemProvider = require("../provider/StyledSystemProvider");
|
|
|
11
11
|
var _propsToThemedStyle = require("../util/propsToThemedStyle");
|
|
12
12
|
const defaultOptions = {};
|
|
13
13
|
const useSxStyle = ({
|
|
14
|
-
theme: optionTheme
|
|
14
|
+
theme: optionTheme,
|
|
15
|
+
cache
|
|
15
16
|
} = defaultOptions) => {
|
|
16
17
|
const styledSystemContext = (0, _react.useContext)(_StyledSystemProvider.StyledSystemContext);
|
|
17
18
|
return sx => {
|
|
@@ -20,10 +21,17 @@ const useSxStyle = ({
|
|
|
20
21
|
(0, _printWarning.printWarning)('theme not found from useSxStyle, empty style will be returned.');
|
|
21
22
|
return {};
|
|
22
23
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
if (cache) {
|
|
25
|
+
return (0, _StyleHash.getCachedStyle)((0, _propsToThemedStyle.propsToThemedStyle)({
|
|
26
|
+
theme,
|
|
27
|
+
sx
|
|
28
|
+
}));
|
|
29
|
+
} else {
|
|
30
|
+
return (0, _propsToThemedStyle.propsToThemedStyle)({
|
|
31
|
+
theme,
|
|
32
|
+
sx
|
|
33
|
+
});
|
|
34
|
+
}
|
|
27
35
|
};
|
|
28
36
|
};
|
|
29
37
|
exports.useSxStyle = useSxStyle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_printWarning","_StyleHash","_StyledSystemProvider","_propsToThemedStyle","defaultOptions","useSxStyle","theme","optionTheme","styledSystemContext","useContext","StyledSystemContext","sx","printWarning","getCachedStyle","propsToThemedStyle","exports"],"sourceRoot":"../../../src","sources":["hook/useSxStyle.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","require","_printWarning","_StyleHash","_StyledSystemProvider","_propsToThemedStyle","defaultOptions","useSxStyle","theme","optionTheme","cache","styledSystemContext","useContext","StyledSystemContext","sx","printWarning","getCachedStyle","propsToThemedStyle","exports"],"sourceRoot":"../../../src","sources":["hook/useSxStyle.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AAMA,MAAMK,cAAiC,GAAG,CAAC,CAAC;AAErC,MAAMC,UAAU,GAAGA,CAAC;EAAEC,KAAK,EAAEC,WAAW;EAAEC;AAAyB,CAAC,GAAGJ,cAAc,KAAK;EAC/F,MAAMK,mBAAmB,GAAG,IAAAC,iBAAU,EAACC,yCAAmB,CAAC;EAE3D,OAAQC,EAAe,IAA2B;IAChD,MAAMN,KAAK,GAAGC,WAAW,IAAIE,mBAAmB,EAAEH,KAAK;IAEvD,IAAI,CAACA,KAAK,EAAE;MACV,IAAAO,0BAAY,EAAC,gEAAgE,CAAC;MAE9E,OAAO,CAAC,CAAC;IACX;IAEA,IAAIL,KAAK,EAAE;MACT,OAAO,IAAAM,yBAAc,EACnB,IAAAC,sCAAkB,EAAC;QACjBT,KAAK;QACLM;MACF,CAAC,CACH,CAAC;IACH,CAAC,MAAM;MACL,OAAO,IAAAG,sCAAkB,EAAC;QACxBT,KAAK;QACLM;MACF,CAAC,CAAC;IACJ;EACF,CAAC;AACH,CAAC;AAACI,OAAA,CAAAX,UAAA,GAAAA,UAAA","ignoreList":[]}
|
package/lib/module/hook/useSx.js
CHANGED
|
@@ -15,7 +15,8 @@ export const useSx = (props, {
|
|
|
15
15
|
theme: optionTheme,
|
|
16
16
|
styleType = defaultUseSxOptions.styleType,
|
|
17
17
|
transform = defaultUseSxOptions.transform,
|
|
18
|
-
fallback
|
|
18
|
+
fallback,
|
|
19
|
+
cache
|
|
19
20
|
} = defaultUseSxOptions) => {
|
|
20
21
|
const styledSystemContext = useContext(StyledSystemContext);
|
|
21
22
|
const getStyle = useStableCallback(() => {
|
|
@@ -50,13 +51,22 @@ export const useSx = (props, {
|
|
|
50
51
|
const composedStyle = !mergedSxStyle ? props?.style : props?.style ? StyleSheet.compose(mergedSxStyle, props.style) : mergedSxStyle;
|
|
51
52
|
if (is.function(transform)) {
|
|
52
53
|
const transformedSx = transform(StyleSheet.flatten(composedStyle));
|
|
53
|
-
|
|
54
|
+
const ret = StyleSheet.compose(composedStyle, propsToThemedStyle({
|
|
54
55
|
theme,
|
|
55
56
|
sx: transformedSx,
|
|
56
57
|
styleType
|
|
57
|
-
}))
|
|
58
|
+
}));
|
|
59
|
+
if (cache) {
|
|
60
|
+
return getCachedStyle(ret);
|
|
61
|
+
} else {
|
|
62
|
+
return ret;
|
|
63
|
+
}
|
|
58
64
|
} else {
|
|
59
|
-
|
|
65
|
+
if (cache) {
|
|
66
|
+
return getCachedStyle(composedStyle);
|
|
67
|
+
} else {
|
|
68
|
+
return composedStyle;
|
|
69
|
+
}
|
|
60
70
|
}
|
|
61
71
|
});
|
|
62
72
|
const filteredProps = useMemo(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","useMemo","StyleSheet","is","_textStylePropList","_viewStylePropList","useStableCallback","mutateShortcutPropToOriginalKeys","printWarning","getCachedStyle","StyledSystemContext","propsToThemedStyle","defaultUseSxOptions","styleType","useSx","props","theme","optionTheme","transform","fallback","styledSystemContext","getStyle","skip","function","sx","mergedSx","mergedSxStyle","composedStyle","style","compose","transformedSx","flatten","
|
|
1
|
+
{"version":3,"names":["useContext","useMemo","StyleSheet","is","_textStylePropList","_viewStylePropList","useStableCallback","mutateShortcutPropToOriginalKeys","printWarning","getCachedStyle","StyledSystemContext","propsToThemedStyle","defaultUseSxOptions","styleType","useSx","props","theme","optionTheme","transform","fallback","cache","styledSystemContext","getStyle","skip","function","sx","mergedSx","mergedSxStyle","composedStyle","style","compose","transformedSx","flatten","ret","filteredProps","forEach","keyName"],"sourceRoot":"../../../src","sources":["hook/useSx.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,8 @@ import { StyledSystemContext } from '../provider/StyledSystemProvider';
|
|
|
5
5
|
import { propsToThemedStyle } from '../util/propsToThemedStyle';
|
|
6
6
|
const defaultOptions = {};
|
|
7
7
|
export const useSxStyle = ({
|
|
8
|
-
theme: optionTheme
|
|
8
|
+
theme: optionTheme,
|
|
9
|
+
cache
|
|
9
10
|
} = defaultOptions) => {
|
|
10
11
|
const styledSystemContext = useContext(StyledSystemContext);
|
|
11
12
|
return sx => {
|
|
@@ -14,10 +15,17 @@ export const useSxStyle = ({
|
|
|
14
15
|
printWarning('theme not found from useSxStyle, empty style will be returned.');
|
|
15
16
|
return {};
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
if (cache) {
|
|
19
|
+
return getCachedStyle(propsToThemedStyle({
|
|
20
|
+
theme,
|
|
21
|
+
sx
|
|
22
|
+
}));
|
|
23
|
+
} else {
|
|
24
|
+
return propsToThemedStyle({
|
|
25
|
+
theme,
|
|
26
|
+
sx
|
|
27
|
+
});
|
|
28
|
+
}
|
|
21
29
|
};
|
|
22
30
|
};
|
|
23
31
|
//# sourceMappingURL=useSxStyle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","printWarning","getCachedStyle","StyledSystemContext","propsToThemedStyle","defaultOptions","useSxStyle","theme","optionTheme","styledSystemContext","sx"],"sourceRoot":"../../../src","sources":["hook/useSxStyle.ts"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAKlC,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,cAAc,QAAQ,4BAA4B;AAC3D,SAASC,mBAAmB,QAAQ,kCAAkC;AACtE,SAASC,kBAAkB,QAAQ,4BAA4B;
|
|
1
|
+
{"version":3,"names":["useContext","printWarning","getCachedStyle","StyledSystemContext","propsToThemedStyle","defaultOptions","useSxStyle","theme","optionTheme","cache","styledSystemContext","sx"],"sourceRoot":"../../../src","sources":["hook/useSxStyle.ts"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAKlC,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,SAASC,cAAc,QAAQ,4BAA4B;AAC3D,SAASC,mBAAmB,QAAQ,kCAAkC;AACtE,SAASC,kBAAkB,QAAQ,4BAA4B;AAM/D,MAAMC,cAAiC,GAAG,CAAC,CAAC;AAE5C,OAAO,MAAMC,UAAU,GAAGA,CAAC;EAAEC,KAAK,EAAEC,WAAW;EAAEC;AAAyB,CAAC,GAAGJ,cAAc,KAAK;EAC/F,MAAMK,mBAAmB,GAAGV,UAAU,CAACG,mBAAmB,CAAC;EAE3D,OAAQQ,EAAe,IAA2B;IAChD,MAAMJ,KAAK,GAAGC,WAAW,IAAIE,mBAAmB,EAAEH,KAAK;IAEvD,IAAI,CAACA,KAAK,EAAE;MACVN,YAAY,CAAC,gEAAgE,CAAC;MAE9E,OAAO,CAAC,CAAC;IACX;IAEA,IAAIQ,KAAK,EAAE;MACT,OAAOP,cAAc,CACnBE,kBAAkB,CAAC;QACjBG,KAAK;QACLI;MACF,CAAC,CACH,CAAC;IACH,CAAC,MAAM;MACL,OAAOP,kBAAkB,CAAC;QACxBG,KAAK;QACLI;MACF,CAAC,CAAC;IACJ;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -12,8 +12,9 @@ export type UseSxOptions = {
|
|
|
12
12
|
styleType?: ThemedStyleType;
|
|
13
13
|
transform?: StyleTransform;
|
|
14
14
|
fallback?: StyleFallback;
|
|
15
|
+
cache?: boolean;
|
|
15
16
|
};
|
|
16
|
-
export declare const useSx: <S extends ViewStyle = ViewStyle, P extends Props = Props>(props?: P | null, { theme: optionTheme, styleType, transform, fallback, }?: UseSxOptions) => {
|
|
17
|
+
export declare const useSx: <S extends ViewStyle = ViewStyle, P extends Props = Props>(props?: P | null, { theme: optionTheme, styleType, transform, fallback, cache, }?: UseSxOptions) => {
|
|
17
18
|
getStyle: () => StyleProp<S> | undefined;
|
|
18
19
|
filteredProps: Omit<P, keyof {
|
|
19
20
|
flex: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSx.d.ts","sourceRoot":"","sources":["../../../../src/hook/useSx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlE,KAAK,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;CAAE,GAAG,WAAW,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,WAAW,CAAC;AAC/D,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACpD,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,QAAQ,CAAC,EAAE,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"useSx.d.ts","sourceRoot":"","sources":["../../../../src/hook/useSx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlE,KAAK,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;CAAE,GAAG,WAAW,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,WAAW,CAAC;AAC/D,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACpD,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,KAAK,qEACR,CAAC,GAAG,IAAI,mEAOb,YAAY;oBAIwB,UAAU,CAAC,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEhE,CAAC"}
|
|
@@ -3,6 +3,7 @@ import type { TextSxProps } from '../@types/SxProps';
|
|
|
3
3
|
import type { ThemedDict } from '../@types/ThemedDict';
|
|
4
4
|
export type UseSxStyleOptions = {
|
|
5
5
|
theme?: ThemedDict;
|
|
6
|
+
cache?: boolean;
|
|
6
7
|
};
|
|
7
|
-
export declare const useSxStyle: ({ theme: optionTheme }?: UseSxStyleOptions) => (sx: TextSxProps) => StyleProp<TextStyle>;
|
|
8
|
+
export declare const useSxStyle: ({ theme: optionTheme, cache }?: UseSxStyleOptions) => (sx: TextSxProps) => StyleProp<TextStyle>;
|
|
8
9
|
//# sourceMappingURL=useSxStyle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSxStyle.d.ts","sourceRoot":"","sources":["../../../../src/hook/useSxStyle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMvD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"useSxStyle.d.ts","sourceRoot":"","sources":["../../../../src/hook/useSxStyle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMvD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAGF,eAAO,MAAM,UAAU,mCAAmC,iBAAiB,UAG7D,WAAW,KAAG,UAAU,SAAS,CAuB9C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-native-styled-system/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "React Native Styled System",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"types": "lib/typescript/src/index.d.ts",
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"**/*.test.*"
|
|
68
68
|
]
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "1b189c9a564f64eff637162378cb59e7610cf89e"
|
|
71
71
|
}
|
package/src/hook/useSx.test.ts
CHANGED
|
@@ -20,19 +20,21 @@ function expectResult(
|
|
|
20
20
|
styleType,
|
|
21
21
|
transform,
|
|
22
22
|
fallback,
|
|
23
|
+
cache,
|
|
23
24
|
}: {
|
|
24
25
|
expectation: object;
|
|
25
26
|
filteredPropsExpectation?: object;
|
|
26
27
|
styleType?: ThemedStyleType;
|
|
27
28
|
transform?: StyleTransform;
|
|
28
29
|
fallback?: StyleFallback;
|
|
30
|
+
cache?: boolean;
|
|
29
31
|
},
|
|
30
32
|
) {
|
|
31
33
|
const {
|
|
32
34
|
result: {
|
|
33
35
|
current: { getStyle, filteredProps },
|
|
34
36
|
},
|
|
35
|
-
} = renderHook(() => useSx(props, { theme, styleType, transform, fallback }));
|
|
37
|
+
} = renderHook(() => useSx(props, { theme, styleType, transform, fallback, cache }));
|
|
36
38
|
|
|
37
39
|
if (expectation) {
|
|
38
40
|
expect(StyleSheet.flatten(getStyle())).toEqual(expectation);
|
|
@@ -362,6 +364,7 @@ describe('cache', () => {
|
|
|
362
364
|
emptyTheme,
|
|
363
365
|
{ bg: 'red', mt: 2 },
|
|
364
366
|
{
|
|
367
|
+
cache: true,
|
|
365
368
|
expectation: { marginTop: 2, backgroundColor: 'red' },
|
|
366
369
|
},
|
|
367
370
|
);
|
|
@@ -370,6 +373,7 @@ describe('cache', () => {
|
|
|
370
373
|
emptyTheme,
|
|
371
374
|
{ mt: 2, sx: { bg: 'red' } },
|
|
372
375
|
{
|
|
376
|
+
cache: true,
|
|
373
377
|
expectation: { marginTop: 2, backgroundColor: 'red' },
|
|
374
378
|
},
|
|
375
379
|
);
|
package/src/hook/useSx.ts
CHANGED
|
@@ -23,6 +23,7 @@ export type UseSxOptions = {
|
|
|
23
23
|
styleType?: ThemedStyleType;
|
|
24
24
|
transform?: StyleTransform;
|
|
25
25
|
fallback?: StyleFallback;
|
|
26
|
+
cache?: boolean;
|
|
26
27
|
};
|
|
27
28
|
const defaultUseSxOptions: UseSxOptions = { styleType: 'ViewStyle' };
|
|
28
29
|
export const useSx = <S extends ViewStyle = ViewStyle, P extends Props = Props>(
|
|
@@ -32,6 +33,7 @@ export const useSx = <S extends ViewStyle = ViewStyle, P extends Props = Props>(
|
|
|
32
33
|
styleType = defaultUseSxOptions.styleType,
|
|
33
34
|
transform = defaultUseSxOptions.transform,
|
|
34
35
|
fallback,
|
|
36
|
+
cache,
|
|
35
37
|
}: UseSxOptions = defaultUseSxOptions,
|
|
36
38
|
) => {
|
|
37
39
|
const styledSystemContext = useContext(StyledSystemContext);
|
|
@@ -76,14 +78,22 @@ export const useSx = <S extends ViewStyle = ViewStyle, P extends Props = Props>(
|
|
|
76
78
|
if (is.function(transform)) {
|
|
77
79
|
const transformedSx = transform(StyleSheet.flatten(composedStyle));
|
|
78
80
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
propsToThemedStyle({ theme, sx: transformedSx, styleType }) as S,
|
|
83
|
-
),
|
|
81
|
+
const ret = StyleSheet.compose(
|
|
82
|
+
composedStyle,
|
|
83
|
+
propsToThemedStyle({ theme, sx: transformedSx, styleType }),
|
|
84
84
|
);
|
|
85
|
+
|
|
86
|
+
if (cache) {
|
|
87
|
+
return getCachedStyle(ret);
|
|
88
|
+
} else {
|
|
89
|
+
return ret as StyleProp<S>;
|
|
90
|
+
}
|
|
85
91
|
} else {
|
|
86
|
-
|
|
92
|
+
if (cache) {
|
|
93
|
+
return getCachedStyle(composedStyle);
|
|
94
|
+
} else {
|
|
95
|
+
return composedStyle as StyleProp<S>;
|
|
96
|
+
}
|
|
87
97
|
}
|
|
88
98
|
});
|
|
89
99
|
|
package/src/hook/useSxStyle.ts
CHANGED
|
@@ -10,10 +10,11 @@ import { propsToThemedStyle } from '../util/propsToThemedStyle';
|
|
|
10
10
|
|
|
11
11
|
export type UseSxStyleOptions = {
|
|
12
12
|
theme?: ThemedDict;
|
|
13
|
+
cache?: boolean;
|
|
13
14
|
};
|
|
14
15
|
const defaultOptions: UseSxStyleOptions = {};
|
|
15
16
|
|
|
16
|
-
export const useSxStyle = ({ theme: optionTheme }: UseSxStyleOptions = defaultOptions) => {
|
|
17
|
+
export const useSxStyle = ({ theme: optionTheme, cache }: UseSxStyleOptions = defaultOptions) => {
|
|
17
18
|
const styledSystemContext = useContext(StyledSystemContext);
|
|
18
19
|
|
|
19
20
|
return (sx: TextSxProps): StyleProp<TextStyle> => {
|
|
@@ -25,11 +26,18 @@ export const useSxStyle = ({ theme: optionTheme }: UseSxStyleOptions = defaultOp
|
|
|
25
26
|
return {};
|
|
26
27
|
}
|
|
27
28
|
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
if (cache) {
|
|
30
|
+
return getCachedStyle(
|
|
31
|
+
propsToThemedStyle({
|
|
32
|
+
theme,
|
|
33
|
+
sx,
|
|
34
|
+
}),
|
|
35
|
+
);
|
|
36
|
+
} else {
|
|
37
|
+
return propsToThemedStyle({
|
|
30
38
|
theme,
|
|
31
39
|
sx,
|
|
32
|
-
})
|
|
33
|
-
|
|
40
|
+
});
|
|
41
|
+
}
|
|
34
42
|
};
|
|
35
43
|
};
|