@codeleap/mobile 2.3.0 → 2.3.2
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/components/Button/index.d.ts +0 -1
- package/dist/components/Button/index.js +5 -12
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/List/styles.js +1 -1
- package/dist/components/List/styles.js.map +1 -1
- package/dist/components/Touchable/index.js +11 -9
- package/dist/components/Touchable/index.js.map +1 -1
- package/dist/utils/theme.d.ts +1 -0
- package/dist/utils/theme.js +7 -2
- package/dist/utils/theme.js.map +1 -1
- package/package.json +1 -1
- package/src/components/ActionIcon/index.tsx +32 -0
- package/src/components/ActionIcon/styles.ts +97 -0
- package/src/components/ActivityIndicator/index.tsx +50 -0
- package/src/components/ActivityIndicator/styles.ts +68 -0
- package/src/components/Animated.tsx +34 -0
- package/src/components/AutoComplete/index.tsx +163 -0
- package/src/components/AutoComplete/styles.ts +44 -0
- package/src/components/Backdrop/index.tsx +48 -0
- package/src/components/Backdrop/styles.ts +33 -0
- package/src/components/Button/index.tsx +154 -0
- package/src/components/Button/styles.ts +129 -0
- package/src/components/Calendar/index.tsx +65 -0
- package/src/components/Calendar/style.ts +35 -0
- package/src/components/Calendar/types.ts +102 -0
- package/src/components/Checkbox/index.tsx +91 -0
- package/src/components/Checkbox/styles.ts +81 -0
- package/src/components/ContentView/index.tsx +63 -0
- package/src/components/ContentView/styles.ts +24 -0
- package/src/components/Drawer/index.tsx +33 -0
- package/src/components/Drawer/styles.ts +43 -0
- package/src/components/EmptyPlaceholder/index.tsx +88 -0
- package/src/components/EmptyPlaceholder/styles.ts +58 -0
- package/src/components/FileInput/index.tsx +181 -0
- package/src/components/FileInput/styles.ts +15 -0
- package/src/components/Grid/index.tsx +117 -0
- package/src/components/Grid/styles.ts +11 -0
- package/src/components/Icon/index.tsx +69 -0
- package/src/components/Icon/styles.ts +57 -0
- package/src/components/Image/index.tsx +91 -0
- package/src/components/Image/styles.ts +20 -0
- package/src/components/ImageView/Spotlight.tsx +157 -0
- package/src/components/ImageView/component.tsx +38 -0
- package/src/components/ImageView/index.ts +2 -0
- package/src/components/InputLabel/index.tsx +38 -0
- package/src/components/InputLabel/styles.ts +19 -0
- package/src/components/List/PaginationIndicator.tsx +71 -0
- package/src/components/List/index.tsx +114 -0
- package/src/components/List/styles.ts +19 -0
- package/src/components/Modal/index.tsx +218 -0
- package/src/components/Modal/styles.ts +153 -0
- package/src/components/MultiSelect/index.tsx +138 -0
- package/src/components/MultiSelect/styles.ts +18 -0
- package/src/components/MultiSelect/types.ts +42 -0
- package/src/components/Navigation/Navigation.tsx +54 -0
- package/src/components/Navigation/constants.ts +8 -0
- package/src/components/Navigation/index.tsx +3 -0
- package/src/components/Navigation/types.ts +35 -0
- package/src/components/Navigation/utils.tsx +57 -0
- package/src/components/Pager/index.tsx +121 -0
- package/src/components/Pager/styles.ts +81 -0
- package/src/components/RadioInput/index.tsx +106 -0
- package/src/components/RadioInput/styles.ts +67 -0
- package/src/components/Scroll/index.tsx +124 -0
- package/src/components/Scroll/styles.ts +18 -0
- package/src/components/Sections/index.tsx +91 -0
- package/src/components/SegmentedControl/index.tsx +204 -0
- package/src/components/SegmentedControl/styles.ts +89 -0
- package/src/components/Select/index.tsx +167 -0
- package/src/components/Select/styles.ts +62 -0
- package/src/components/Select/types.ts +43 -0
- package/src/components/Slider/Mark.tsx +46 -0
- package/src/components/Slider/Thumb.tsx +29 -0
- package/src/components/Slider/index.tsx +130 -0
- package/src/components/Slider/styles.ts +76 -0
- package/src/components/Slider/types.ts +30 -0
- package/src/components/Switch/index.tsx +91 -0
- package/src/components/Switch/styles.ts +38 -0
- package/src/components/Text/index.tsx +97 -0
- package/src/components/Text/styles.ts +50 -0
- package/src/components/TextInput/index.tsx +319 -0
- package/src/components/TextInput/styles.ts +127 -0
- package/src/components/Touchable/index.tsx +174 -0
- package/src/components/Touchable/styles.ts +28 -0
- package/src/components/View/index.tsx +103 -0
- package/src/components/View/styles.ts +24 -0
- package/src/components/components.ts +42 -0
- package/src/components/defaultStyles.ts +62 -0
- package/src/components/legacy/Modal/index.tsx +163 -0
- package/src/components/legacy/Modal/styles.ts +125 -0
- package/src/components/legacy/Pager/index.tsx +242 -0
- package/src/components/legacy/Pager/styles.ts +51 -0
- package/src/components/legacy/index.ts +2 -0
- package/src/modules/documentPicker.ts +7 -0
- package/src/modules/fastImage.ts +2 -0
- package/src/modules/imageCropPicker.d.ts +497 -0
- package/src/modules/index.d.ts +682 -0
- package/src/modules/reactNavigation.ts +15 -0
- package/src/modules/textInputMask.ts +11 -0
- package/src/modules/types/documentPicker.d.ts +215 -0
- package/src/modules/types/fileTypes.ts +138 -0
- package/src/modules/types/textInputMask.ts +9 -0
- package/src/types/index.ts +1 -0
- package/src/types/utility.ts +9 -0
- package/src/utils/KeyboardAware/context.tsx +75 -0
- package/src/utils/KeyboardAware/index.ts +17 -0
- package/src/utils/KeyboardAware/keyboardHooks.ts +124 -0
- package/src/utils/KeyboardAware/lib/KeyboardAwareFlatList.ts +4 -0
- package/src/utils/KeyboardAware/lib/KeyboardAwareHOC.tsx +618 -0
- package/src/utils/KeyboardAware/lib/KeyboardAwareInterface.ts +13 -0
- package/src/utils/KeyboardAware/lib/KeyboardAwareScrollView.ts +6 -0
- package/src/utils/KeyboardAware/lib/KeyboardAwareSectionList.ts +6 -0
- package/src/utils/KeyboardAware/types.ts +159 -0
- package/src/utils/ModalManager/components.tsx +112 -0
- package/src/utils/ModalManager/context.tsx +260 -0
- package/src/utils/ModalManager/index.ts +16 -0
- package/src/utils/OSAlert.ts +180 -0
- package/src/utils/PermissionManager/context.tsx +302 -0
- package/src/utils/PermissionManager/index.ts +20 -0
- package/src/utils/PermissionManager/types.ts +24 -0
- package/src/utils/hooks.ts +163 -0
- package/src/utils/index.ts +11 -0
- package/src/utils/input.ts +51 -0
- package/src/utils/misc.ts +83 -0
- package/src/utils/notifications.ts +206 -0
- package/src/utils/theme.ts +58 -0
|
@@ -67,20 +67,12 @@ exports.Badge = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
67
67
|
</View_1.View>;
|
|
68
68
|
});
|
|
69
69
|
exports.Button = (0, react_1.forwardRef)(function (buttonProps, ref) {
|
|
70
|
-
var _a = buttonProps.variants, variants = _a === void 0 ? [] : _a, children = buttonProps.children, icon = buttonProps.icon, text = buttonProps.text, loading = buttonProps.loading, _b = buttonProps.styles, styles = _b === void 0 ? {} : _b, onPress = buttonProps.onPress, disabled = buttonProps.disabled, _c = buttonProps.badge, badge = _c === void 0 ? null : _c, rightIcon = buttonProps.rightIcon,
|
|
71
|
-
var _e = React.useState(false), pressed = _e[0], setPressed = _e[1];
|
|
70
|
+
var _a = buttonProps.variants, variants = _a === void 0 ? [] : _a, children = buttonProps.children, icon = buttonProps.icon, text = buttonProps.text, loading = buttonProps.loading, _b = buttonProps.styles, styles = _b === void 0 ? {} : _b, onPress = buttonProps.onPress, disabled = buttonProps.disabled, _c = buttonProps.badge, badge = _c === void 0 ? null : _c, rightIcon = buttonProps.rightIcon, style = buttonProps.style, props = __rest(buttonProps, ["variants", "children", "icon", "text", "loading", "styles", "onPress", "disabled", "badge", "rightIcon", "style"]);
|
|
72
71
|
var variantStyles = (0, common_1.useDefaultComponentStyle)('u:Button', {
|
|
73
72
|
variants: variants,
|
|
74
73
|
transform: react_native_1.StyleSheet.flatten,
|
|
75
74
|
styles: styles,
|
|
76
75
|
});
|
|
77
|
-
function handlePress() {
|
|
78
|
-
if (!pressed) {
|
|
79
|
-
setPressed(true);
|
|
80
|
-
setTimeout(function () { return setPressed(false); }, debounce);
|
|
81
|
-
onPress && onPress();
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
76
|
function getStyles(key) {
|
|
85
77
|
return [
|
|
86
78
|
variantStyles[key],
|
|
@@ -102,8 +94,9 @@ exports.Button = (0, react_1.forwardRef)(function (buttonProps, ref) {
|
|
|
102
94
|
text: getStyles('text'),
|
|
103
95
|
icon: getStyles('icon'),
|
|
104
96
|
};
|
|
105
|
-
var childrenContent =
|
|
106
|
-
|
|
97
|
+
var childrenContent = common_1.TypeGuards.isFunction(children) ?
|
|
98
|
+
// @ts-ignore
|
|
99
|
+
children({ styles: _styles, props: buttonProps })
|
|
107
100
|
: children;
|
|
108
101
|
var _badge = null;
|
|
109
102
|
if (badge) {
|
|
@@ -112,7 +105,7 @@ exports.Button = (0, react_1.forwardRef)(function (buttonProps, ref) {
|
|
|
112
105
|
wrapper: variantStyles.badgeWrapper,
|
|
113
106
|
}, (badge === null || badge === void 0 ? void 0 : badge.styles) || {})}/>;
|
|
114
107
|
}
|
|
115
|
-
return (<Touchable_1.Touchable style={_styles.wrapper}
|
|
108
|
+
return (<Touchable_1.Touchable style={_styles.wrapper} ref={ref} disabled={disabled} styles={{
|
|
116
109
|
feedback: variantStyles.feedback,
|
|
117
110
|
}} debugComponent={'Button'} noFeedback={!onPress} {...props}>
|
|
118
111
|
{_badge}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Button/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA8B;AAC9B,2CAUyB;AAOzB,+BAAkC;AAElC,gCAA8B;AAC9B,0CAAwD;AACxD,gCAA8B;AAC9B,gCAAyC;AACzC,0DAAwD;AACxD,6CAAyC;AACzC,2CAAwB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Button/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA8B;AAC9B,2CAUyB;AAOzB,+BAAkC;AAElC,gCAA8B;AAC9B,0CAAwD;AACxD,gCAA8B;AAC9B,gCAAyC;AACzC,0DAAwD;AACxD,6CAAyC;AACzC,2CAAwB;AA4BX,QAAA,KAAK,GAAG,IAAA,kBAAU,EAA2C,UAAC,KAAK,EAAE,GAAG;IAEjF,IAAA,KAKE,KAAK,SALQ,EAAf,QAAQ,mBAAG,IAAI,KAAA,EACf,MAAM,GAIJ,KAAK,OAJD,EACN,IAAI,GAGF,KAAK,KAHH,EACJ,KAEE,KAAK,UAFO,EAAd,SAAS,mBAAG,EAAE,KAAA,EACX,SAAS,UACV,KAAK,EANH,2CAML,CADa,CACL;IAET,OAAO,CAAC,WAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAC5D;IAAA,CAAC,IAAI,IAAI,CAAC,WAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,CAC/D;IAAA,CAAC,CAAC,mBAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,uBAAM,SAAS,KAAE,MAAM,QAAA,EAAE,IAAI,MAAA,IAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC1F;EAAA,EAAE,WAAI,CAAC,CAAA;AACT,CAAC,CAAC,CAAA;AAEW,QAAA,MAAM,GAAG,IAAA,kBAAU,EAAiD,UAAC,WAAW,EAAE,GAAG;IAE9F,IAAA,KAYE,WAAW,SAZA,EAAb,QAAQ,mBAAG,EAAE,KAAA,EACb,QAAQ,GAWN,WAAW,SAXL,EACR,IAAI,GAUF,WAAW,KAVT,EACJ,IAAI,GASF,WAAW,KATT,EACJ,OAAO,GAQL,WAAW,QARN,EACP,KAOE,WAAW,OAPF,EAAX,MAAM,mBAAG,EAAE,KAAA,EACX,OAAO,GAML,WAAW,QANN,EACP,QAAQ,GAKN,WAAW,SALL,EACR,KAIE,WAAW,MAJD,EAAZ,KAAK,mBAAG,IAAI,KAAA,EACZ,SAAS,GAGP,WAAW,UAHJ,EACT,KAAK,GAEH,WAAW,MAFR,EACF,KAAK,UACN,WAAW,EAbT,mHAaL,CADS,CACK;IAEf,IAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,UAAU,EAAE;QACzD,QAAQ,UAAA;QACR,SAAS,EAAE,yBAAU,CAAC,OAAO;QAC7B,MAAM,QAAA;KACP,CAAC,CAAA;IAEF,SAAS,SAAS,CAAC,GAAgB;QACjC,OAAO;YACL,aAAa,CAAC,GAAG,CAAC;YAClB,GAAG,KAAK,SAAS,IAAI,KAAK;YAC1B,QAAQ,IAAI,aAAa,CAAC,GAAG,GAAG,WAAW,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC;YACX,QAAQ,IAAI,MAAM,CAAC,GAAG,GAAG,WAAW,CAAC;SACtC,CAAA;IACH,CAAC;IAED,IAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAEnC,IAAM,aAAa,GAAG,yBAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAC5E,IAAM,cAAc,GAAG,yBAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IAE9E,IAAM,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAA;IAEpC,IAAM,OAAO,GAAG;QACd,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC;QAC7B,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC;QAC3B,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,cAAc;QACzB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;QACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;KAExB,CAAA;IAED,IAAM,eAAe,GAAG,mBAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,aAAa;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACjD,CAAC,CAAC,QAAQ,CAAA;IAEZ,IAAI,MAAM,GAAG,IAAI,CAAA;IAEjB,IAAI,KAAK,EAAE;QACT,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAK,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAA,kBAAS,EAAC;gBACjF,IAAI,EAAE,aAAa,CAAC,SAAS;gBAC7B,OAAO,EAAE,aAAa,CAAC,YAAY;aACpC,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,KAAI,EAAE,CAAC,CAAC,EAAE,CAAA;KAE3B;IAED,OAAO,CACL,CAAC,qBAAS,CACR,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACvB,GAAG,CAAC,CAAC,GAAG,CAAC,CACT,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,MAAM,CAAC,CAAC;YACN,QAAQ,EAAE,aAAa,CAAC,QAAQ;SACjC,CAAC,CACF,cAAc,CAAC,CAAC,QAAQ,CAAC,CACzB,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CACrB,IAAI,KAAK,CAAC,CAEV;MAAA,CAAC,MAAM,CACP;MAAA,CAAC,OAAO,IAAI,CAAC,qCAAiB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAG,CACxD;MAAA,CAAC,CAAC,OAAO,IAAI,CAAC,WAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,CACnG;MAAA,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAG,CAAC,CAAC,CAAC,IAAI,CACxD;MAAA,CAAC,eAAe,CAChB;MAAA,CAAC,WAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,EACpG;IAAA,EAAE,qBAAS,CAAC,CACb,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/List/styles.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,2CAAkE;AAIlE,IAAM,eAAe,GAAG,IAAA,oCAA2B,GAAmB,CAAA;AAEzD,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE,eAAe,CAAC,UAAC,KAAK;QAC7B,IAAM,aAAa,GAAG,qBAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjD,6BACK,aAAa,KAChB,SAAS,EAAE;gBACT,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/List/styles.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,2CAAkE;AAIlE,IAAM,eAAe,GAAG,IAAA,oCAA2B,GAAmB,CAAA;AAEzD,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE,eAAe,CAAC,UAAC,KAAK;QAC7B,IAAM,aAAa,GAAG,qBAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjD,6BACK,aAAa,KAChB,SAAS,EAAE;gBACT,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;aAC/B,IACF;IACH,CAAC,CAAC;CACH,CAAA"}
|
|
@@ -47,8 +47,8 @@ var View_1 = require("../View");
|
|
|
47
47
|
var utils_1 = require("../../utils");
|
|
48
48
|
__exportStar(require("./styles"), exports);
|
|
49
49
|
exports.Touchable = (0, react_1.forwardRef)(function (touchableProps, ref) {
|
|
50
|
-
var _a = touchableProps.variants, variants = _a === void 0 ? [] : _a, children = touchableProps.children, onPress = touchableProps.onPress, style = touchableProps.style, debugName = touchableProps.debugName, debugComponent = touchableProps.debugComponent, _b = touchableProps.debounce, debounce = _b === void 0 ?
|
|
51
|
-
var
|
|
50
|
+
var _a = touchableProps.variants, variants = _a === void 0 ? [] : _a, children = touchableProps.children, onPress = touchableProps.onPress, style = touchableProps.style, debugName = touchableProps.debugName, debugComponent = touchableProps.debugComponent, _b = touchableProps.debounce, debounce = _b === void 0 ? 1000 : _b, _c = touchableProps.noFeedback, noFeedback = _c === void 0 ? false : _c, styles = touchableProps.styles, props = __rest(touchableProps, ["variants", "children", "onPress", "style", "debugName", "debugComponent", "debounce", "noFeedback", "styles"]);
|
|
51
|
+
var pressed = React.useRef(false);
|
|
52
52
|
var variantStyles = (0, common_1.useDefaultComponentStyle)('u:Touchable', {
|
|
53
53
|
variants: variants,
|
|
54
54
|
transform: react_native_1.StyleSheet.flatten,
|
|
@@ -68,12 +68,14 @@ exports.Touchable = (0, react_1.forwardRef)(function (touchableProps, ref) {
|
|
|
68
68
|
onPress && onPress();
|
|
69
69
|
};
|
|
70
70
|
if (common_1.TypeGuards.isNumber(debounce)) {
|
|
71
|
-
if (pressed) {
|
|
71
|
+
if (pressed.current) {
|
|
72
72
|
return;
|
|
73
73
|
}
|
|
74
|
-
|
|
74
|
+
pressed.current = true;
|
|
75
75
|
_onPress();
|
|
76
|
-
setTimeout(function () {
|
|
76
|
+
setTimeout(function () {
|
|
77
|
+
pressed.current = false;
|
|
78
|
+
}, debounce);
|
|
77
79
|
}
|
|
78
80
|
else {
|
|
79
81
|
_onPress();
|
|
@@ -81,14 +83,14 @@ exports.Touchable = (0, react_1.forwardRef)(function (touchableProps, ref) {
|
|
|
81
83
|
};
|
|
82
84
|
var _styles = react_native_1.StyleSheet.flatten([variantStyles.wrapper, style]);
|
|
83
85
|
var disableFeedback = !onPress || noFeedback;
|
|
84
|
-
var
|
|
86
|
+
var _d = (0, utils_1.usePressableFeedback)(_styles, {
|
|
85
87
|
hightlightPropertyIn: 'backgroundColor',
|
|
86
88
|
hightlightPropertyOut: 'backgroundColor',
|
|
87
89
|
disabled: disableFeedback,
|
|
88
90
|
feedbackConfig: variantStyles === null || variantStyles === void 0 ? void 0 : variantStyles.feedback,
|
|
89
|
-
}), rippleConfig =
|
|
91
|
+
}), rippleConfig = _d.rippleConfig, getFeedbackStyle = _d.getFeedbackStyle;
|
|
90
92
|
var Wrapper = View_1.View;
|
|
91
|
-
var
|
|
93
|
+
var _e = React.useMemo(function () {
|
|
92
94
|
var wrapperkeys = [
|
|
93
95
|
'margin',
|
|
94
96
|
'alignSelf',
|
|
@@ -136,7 +138,7 @@ exports.Touchable = (0, react_1.forwardRef)(function (touchableProps, ref) {
|
|
|
136
138
|
wrapperStyle: wrapperStyle,
|
|
137
139
|
pressableStyle: pressableStyle,
|
|
138
140
|
};
|
|
139
|
-
}, [JSON.stringify(_styles)]), wrapperStyle =
|
|
141
|
+
}, [JSON.stringify(_styles)]), wrapperStyle = _e.wrapperStyle, pressableStyle = _e.pressableStyle;
|
|
140
142
|
return (<Wrapper style={[wrapperStyle]}>
|
|
141
143
|
<react_native_1.Pressable onPress={press} style={function (_a) {
|
|
142
144
|
var pressed = _a.pressed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Touchable/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA8B;AAC9B,+BAA4D;AAC5D,2CAQyB;AACzB,6CAAoE;AAEpE,mEAAmE;AAGnE,gCAA8B;AAC9B,qCAAkD;AAgBlD,2CAAwB;AAEX,QAAA,SAAS,GAA6B,IAAA,kBAAU,EAG3D,UAAC,cAAc,EAAE,GAAG;IAElB,IAAA,KAUE,cAAc,SAVH,EAAb,QAAQ,mBAAG,EAAE,KAAA,EACb,QAAQ,GASN,cAAc,SATR,EACR,OAAO,GAQL,cAAc,QART,EACP,KAAK,GAOH,cAAc,MAPX,EACL,SAAS,GAMP,cAAc,UANP,EACT,cAAc,GAKZ,cAAc,eALF,EACd,KAIE,cAAc,SAJD,EAAf,QAAQ,mBAAG,IAAI,KAAA,EACf,KAGE,cAAc,WAHE,EAAlB,UAAU,mBAAG,KAAK,KAAA,EAClB,MAAM,GAEJ,cAAc,OAFV,EACH,KAAK,UACN,cAAc,EAXZ,+GAWL,CADS,CACQ;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Touchable/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/utils/theme.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ declare type AppValues = {
|
|
|
5
5
|
export declare function getMobileThemeValues(initialWindowMetrics: any, values: AppValues): {
|
|
6
6
|
pixel: number;
|
|
7
7
|
hasNotch: boolean;
|
|
8
|
+
hasIsland: boolean;
|
|
8
9
|
prefersConstantNavigationBar: boolean;
|
|
9
10
|
safeAreaTop: number;
|
|
10
11
|
safeAreaBottom: number;
|
package/dist/utils/theme.js
CHANGED
|
@@ -10,18 +10,23 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
13
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
17
|
exports.getMobileThemeValues = void 0;
|
|
15
18
|
var react_native_1 = require("react-native");
|
|
19
|
+
var react_native_device_info_1 = __importDefault(require("react-native-device-info"));
|
|
16
20
|
function getMobileThemeValues(initialWindowMetrics, values) {
|
|
17
21
|
var _a, _b;
|
|
18
22
|
var screenDimensions = react_native_1.Dimensions.get('screen');
|
|
19
23
|
var hasNotch = react_native_1.Platform.OS === 'ios' ? (react_native_1.Dimensions.get('window').height >= 812) : (((_a = initialWindowMetrics === null || initialWindowMetrics === void 0 ? void 0 : initialWindowMetrics.insets) === null || _a === void 0 ? void 0 : _a.top) > 24 || react_native_1.StatusBar.currentHeight > 24);
|
|
24
|
+
var hasIsland = react_native_device_info_1.default.hasDynamicIsland();
|
|
20
25
|
var bottomNavHeight = react_native_1.Platform.OS === 'android' ? (_b = initialWindowMetrics === null || initialWindowMetrics === void 0 ? void 0 : initialWindowMetrics.insets) === null || _b === void 0 ? void 0 : _b.bottom : 0;
|
|
21
26
|
var prefersConstantNavigationBar = bottomNavHeight > 0;
|
|
22
|
-
var safeAreaTop = react_native_1.Platform.OS === 'ios' ? (hasNotch ? 34 : 20) : react_native_1.StatusBar.currentHeight;
|
|
27
|
+
var safeAreaTop = react_native_1.Platform.OS === 'ios' ? (hasNotch ? 34 + (hasIsland ? 12 : 0) : 20) : react_native_1.StatusBar.currentHeight;
|
|
23
28
|
var safeAreaBottom = (hasNotch && !prefersConstantNavigationBar ? 20 : 0);
|
|
24
|
-
return __assign(__assign({}, screenDimensions), { pixel: react_native_1.StyleSheet.hairlineWidth, hasNotch: hasNotch, prefersConstantNavigationBar: prefersConstantNavigationBar, safeAreaTop: safeAreaTop, safeAreaBottom: safeAreaBottom, keyboardVerticalOffset: react_native_1.Platform.OS === 'ios' ? 57 : 47, get headerHeight() { return values.headerHeight + safeAreaTop; },
|
|
29
|
+
return __assign(__assign({}, screenDimensions), { pixel: react_native_1.StyleSheet.hairlineWidth, hasNotch: hasNotch, hasIsland: hasIsland, prefersConstantNavigationBar: prefersConstantNavigationBar, safeAreaTop: safeAreaTop, safeAreaBottom: safeAreaBottom, keyboardVerticalOffset: react_native_1.Platform.OS === 'ios' ? 57 : 47, get headerHeight() { return values.headerHeight + safeAreaTop; },
|
|
25
30
|
get tabBarHeight() { return values.tabBarHeight + (prefersConstantNavigationBar ? 0 : this.safeAreaBottom); }, bottomNavHeight: bottomNavHeight, get window() {
|
|
26
31
|
return {
|
|
27
32
|
height: screenDimensions.height - (bottomNavHeight + safeAreaTop),
|
package/dist/utils/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/utils/theme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/utils/theme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA0E;AAC1E,sFAAiD;AAOjD,SAAgB,oBAAoB,CAAC,oBAAoB,EAAE,MAAiB;;IAC1E,IAAM,gBAAgB,GAAG,yBAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAEjD,IAAM,QAAQ,GAAG,uBAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,yBAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,MAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,MAAM,0CAAE,GAAG,IAAG,EAAE,IAAI,wBAAS,CAAC,aAAa,GAAG,EAAE,CAAC,CAAA;IAC5J,IAAM,SAAS,GAAG,kCAAU,CAAC,gBAAgB,EAAE,CAAA;IAC/C,IAAM,eAAe,GAAG,uBAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,MAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,MAAM,0CAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAE5F,IAAM,4BAA4B,GAAG,eAAe,GAAG,CAAC,CAAA;IAExD,IAAM,WAAW,GAAG,uBAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,wBAAS,CAAC,aAAa,CAAA;IAEjH,IAAM,cAAc,GAAG,CAAC,QAAQ,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3E,6BACK,gBAAgB,KAEnB,KAAK,EAAE,yBAAU,CAAC,aAAa,EAC/B,QAAQ,UAAA,EACR,SAAS,WAAA,EACT,4BAA4B,8BAAA,EAC5B,WAAW,aAAA,EACX,cAAc,gBAAA,EACd,sBAAsB,EAAE,uBAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EACvD,IAAI,YAAY,KAAK,OAAO,MAAM,CAAC,YAAY,GAAG,WAAW,CAAA,CAAC,CAAC;QAC/D,IAAI,YAAY,KAAK,OAAO,MAAM,CAAC,YAAY,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA,CAAC,CAAC,EAC5G,eAAe,iBAAA,EACf,IAAI,MAAM;YACR,OAAO;gBACL,MAAM,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,eAAe,GAAG,WAAW,CAAC;gBACjE,KAAK,EAAE,gBAAgB,CAAC,KAAK;aAC9B,CAAA;QACH,CAAC,EACD,WAAW,EAAE;YACX,KAAK,EAAE;gBACL,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,QAAQ;aACf;SACF,EACD,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE;aACX;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,EAAE;aACX;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE;aACX;SACF,IACF;AACH,CAAC;AAjDD,oDAiDC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ComponentVariants, getNestedStylesByKey, useDefaultComponentStyle } from '@codeleap/common'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
import { StyleSheet } from 'react-native'
|
|
4
|
+
import { StylesOf } from '../../types'
|
|
5
|
+
import { Icon, IconProps } from '../Icon'
|
|
6
|
+
import { Touchable, TouchableProps } from '../Touchable'
|
|
7
|
+
import { ActionIconComposition, ActionIconStyles } from './styles'
|
|
8
|
+
|
|
9
|
+
export type ActionIconProps= {
|
|
10
|
+
iconProps?: Partial<IconProps>
|
|
11
|
+
icon?: IconProps['name']
|
|
12
|
+
styles?: StylesOf<ActionIconComposition>
|
|
13
|
+
} & Omit<TouchableProps, 'styles' | 'variants'> & ComponentVariants<typeof ActionIconStyles>
|
|
14
|
+
|
|
15
|
+
export const ActionIcon:React.FC<ActionIconProps> = (props) => {
|
|
16
|
+
const { icon, iconProps, variants, styles, children, ...touchableProps } = props
|
|
17
|
+
const variantStyles = useDefaultComponentStyle<'u:ActionIcon', typeof ActionIconStyles>('u:ActionIcon', {
|
|
18
|
+
variants, styles, transform: StyleSheet.flatten,
|
|
19
|
+
})
|
|
20
|
+
const touchableStyles = getNestedStylesByKey('touchable', variantStyles)
|
|
21
|
+
|
|
22
|
+
return <Touchable styles={touchableStyles} {...touchableProps}>
|
|
23
|
+
<Icon name={icon} style={
|
|
24
|
+
[
|
|
25
|
+
variantStyles.icon,
|
|
26
|
+
touchableProps?.disabled && variantStyles['icon:disabled'],
|
|
27
|
+
]} {...iconProps}/>
|
|
28
|
+
{children}
|
|
29
|
+
</Touchable>
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export * from './styles'
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { createDefaultVariantFactory, includePresets } from '@codeleap/common'
|
|
2
|
+
import { TouchableComposition } from '../Touchable'
|
|
3
|
+
|
|
4
|
+
export type ActionIconParts = 'icon' | `touchable${Capitalize<TouchableComposition>}`
|
|
5
|
+
export type ActionIconStates = ':disabled' | ''
|
|
6
|
+
export type ActionIconComposition = `${ActionIconParts}${ActionIconStates}`
|
|
7
|
+
const createActionIconStyle = createDefaultVariantFactory<ActionIconComposition>()
|
|
8
|
+
|
|
9
|
+
const presets = includePresets((style) => createActionIconStyle(() => ({ touchableWrapper: style })))
|
|
10
|
+
|
|
11
|
+
export const ActionIconStyles = {
|
|
12
|
+
...presets,
|
|
13
|
+
default: createActionIconStyle((theme) => {
|
|
14
|
+
|
|
15
|
+
return {
|
|
16
|
+
icon: {
|
|
17
|
+
color: theme.colors.icon,
|
|
18
|
+
...theme.sized(5 * 0.6),
|
|
19
|
+
|
|
20
|
+
},
|
|
21
|
+
touchableWrapper: {
|
|
22
|
+
...theme.sized(5),
|
|
23
|
+
borderRadius: theme.borderRadius.round,
|
|
24
|
+
...theme.presets.center,
|
|
25
|
+
},
|
|
26
|
+
'icon:disabled': {
|
|
27
|
+
color: theme.colors.disabled,
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
}
|
|
31
|
+
}),
|
|
32
|
+
originalColor: createActionIconStyle(theme => ({
|
|
33
|
+
icon: {
|
|
34
|
+
color: 'auto',
|
|
35
|
+
},
|
|
36
|
+
})),
|
|
37
|
+
small: createActionIconStyle((theme) => ({
|
|
38
|
+
touchableWrapper: {
|
|
39
|
+
...theme.sized(3.5),
|
|
40
|
+
|
|
41
|
+
},
|
|
42
|
+
icon: {
|
|
43
|
+
...theme.sized(3.5 * 0.6),
|
|
44
|
+
|
|
45
|
+
},
|
|
46
|
+
})),
|
|
47
|
+
large: createActionIconStyle((theme) => ({
|
|
48
|
+
touchableWrapper: {
|
|
49
|
+
...theme.sized(6.5),
|
|
50
|
+
|
|
51
|
+
},
|
|
52
|
+
icon: {
|
|
53
|
+
...theme.sized(6.5 * 0.6),
|
|
54
|
+
|
|
55
|
+
},
|
|
56
|
+
})),
|
|
57
|
+
primary: createActionIconStyle((theme) => ({
|
|
58
|
+
icon: {
|
|
59
|
+
color: theme.colors.primary,
|
|
60
|
+
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
})),
|
|
64
|
+
negative: createActionIconStyle((theme) => ({
|
|
65
|
+
icon: {
|
|
66
|
+
color: theme.colors.negative,
|
|
67
|
+
|
|
68
|
+
},
|
|
69
|
+
|
|
70
|
+
})),
|
|
71
|
+
positive: createActionIconStyle((theme) => ({
|
|
72
|
+
icon: {
|
|
73
|
+
color: theme.colors.positive,
|
|
74
|
+
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
})),
|
|
78
|
+
black: createActionIconStyle((theme) => ({
|
|
79
|
+
icon: {
|
|
80
|
+
color: theme.colors.black,
|
|
81
|
+
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
})),
|
|
85
|
+
white: createActionIconStyle((theme) => ({
|
|
86
|
+
icon: {
|
|
87
|
+
color: theme.colors.white,
|
|
88
|
+
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
})),
|
|
92
|
+
neutral: createActionIconStyle((theme) => ({
|
|
93
|
+
icon: {
|
|
94
|
+
color: theme.colors.neutral,
|
|
95
|
+
},
|
|
96
|
+
})),
|
|
97
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as React from 'react'
|
|
2
|
+
import { ComponentPropsWithoutRef, forwardRef } from 'react'
|
|
3
|
+
import { ActivityIndicator as Indicator, StyleSheet } from 'react-native'
|
|
4
|
+
import {
|
|
5
|
+
|
|
6
|
+
useDefaultComponentStyle,
|
|
7
|
+
ComponentVariants,
|
|
8
|
+
useCodeleapContext,
|
|
9
|
+
} from '@codeleap/common'
|
|
10
|
+
import { StylesOf } from '../../types'
|
|
11
|
+
import {
|
|
12
|
+
ActivityIndicatorComposition,
|
|
13
|
+
ActivityIndicatorStyles,
|
|
14
|
+
} from './styles'
|
|
15
|
+
|
|
16
|
+
export * from './styles'
|
|
17
|
+
export type ActivityIndicatorProps = ComponentPropsWithoutRef<
|
|
18
|
+
typeof Indicator
|
|
19
|
+
> & {
|
|
20
|
+
variants?: ComponentVariants<typeof ActivityIndicatorStyles>['variants']
|
|
21
|
+
styles?: StylesOf<ActivityIndicatorComposition>
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export const ActivityIndicator = forwardRef<Indicator, ActivityIndicatorProps>(
|
|
25
|
+
(activityIndicatorProps, ref) => {
|
|
26
|
+
const { variants = [], style, styles: propStyles, ...props } = activityIndicatorProps
|
|
27
|
+
|
|
28
|
+
const variantStyles = useDefaultComponentStyle('ActivityIndicator', {
|
|
29
|
+
variants,
|
|
30
|
+
transform: StyleSheet.flatten,
|
|
31
|
+
styles: propStyles,
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
const { Theme } = useCodeleapContext()
|
|
35
|
+
|
|
36
|
+
const styles = StyleSheet.flatten([variantStyles.wrapper, style])
|
|
37
|
+
const color = styles?.color || Theme.colors.gray
|
|
38
|
+
const size = styles?.height || styles?.width || 'large'
|
|
39
|
+
|
|
40
|
+
return (
|
|
41
|
+
<Indicator
|
|
42
|
+
size={size}
|
|
43
|
+
ref={ref}
|
|
44
|
+
color={color}
|
|
45
|
+
style={styles}
|
|
46
|
+
{...props}
|
|
47
|
+
/>
|
|
48
|
+
)
|
|
49
|
+
},
|
|
50
|
+
)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { createDefaultVariantFactory, includePresets } from '@codeleap/common'
|
|
2
|
+
|
|
3
|
+
export type ActivityIndicatorComposition =
|
|
4
|
+
| 'wrapper'
|
|
5
|
+
| 'backCircle'
|
|
6
|
+
| 'frontCircle'
|
|
7
|
+
| 'circle'
|
|
8
|
+
|
|
9
|
+
const createActivityIndicatorStyle =
|
|
10
|
+
createDefaultVariantFactory<ActivityIndicatorComposition>()
|
|
11
|
+
|
|
12
|
+
const presets = includePresets((styles) => createActivityIndicatorStyle(() => ({ wrapper: styles })),
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
export const getActivityIndicatorBaseStyles = (size:number) => {
|
|
16
|
+
const sizes = {
|
|
17
|
+
height: size,
|
|
18
|
+
width: size,
|
|
19
|
+
borderWidth: size * 0.25,
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return {
|
|
23
|
+
wrapper: {
|
|
24
|
+
position: 'relative',
|
|
25
|
+
...sizes,
|
|
26
|
+
} as any,
|
|
27
|
+
circle: {
|
|
28
|
+
borderRadius: 100,
|
|
29
|
+
position: 'absolute',
|
|
30
|
+
borderStyle: 'solid',
|
|
31
|
+
top: 0,
|
|
32
|
+
bottom: 0,
|
|
33
|
+
left: 0,
|
|
34
|
+
right: 0,
|
|
35
|
+
} as any,
|
|
36
|
+
backCircle: {
|
|
37
|
+
|
|
38
|
+
// borderColor: theme.colors.primary,
|
|
39
|
+
minWidth: '100%',
|
|
40
|
+
opacity: 0.5,
|
|
41
|
+
} as any,
|
|
42
|
+
frontCircle: {
|
|
43
|
+
position: 'absolute',
|
|
44
|
+
borderColor: 'transparent',
|
|
45
|
+
// borderTopColor: theme.colors.primary,
|
|
46
|
+
} as any,
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export const ActivityIndicatorStyles = {
|
|
51
|
+
...presets,
|
|
52
|
+
default: createActivityIndicatorStyle((theme) => {
|
|
53
|
+
const baseStyles = getActivityIndicatorBaseStyles(35)
|
|
54
|
+
|
|
55
|
+
return {
|
|
56
|
+
...baseStyles,
|
|
57
|
+
backCircle: {
|
|
58
|
+
...baseStyles.backCircle,
|
|
59
|
+
borderColor: theme.colors.primary,
|
|
60
|
+
},
|
|
61
|
+
frontCircle: {
|
|
62
|
+
...baseStyles.frontCircle,
|
|
63
|
+
borderTopColor: theme.colors.primary,
|
|
64
|
+
},
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
}),
|
|
68
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { onUpdate } from '@codeleap/common'
|
|
2
|
+
import React, { useRef } from 'react'
|
|
3
|
+
|
|
4
|
+
import posed from 'react-native-pose'
|
|
5
|
+
import { Touchable } from './Touchable'
|
|
6
|
+
import { View } from './View'
|
|
7
|
+
const Components = {
|
|
8
|
+
Touchable,
|
|
9
|
+
View,
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const PosedComponents = Object.fromEntries(
|
|
13
|
+
Object.entries(Components).map(([key, Render]) => [key, posed(Render)]),
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
type AnimatedComponents = typeof Components
|
|
17
|
+
type CP = keyof AnimatedComponents
|
|
18
|
+
|
|
19
|
+
type AnimatedProps<T extends CP, CFG = Record<string, any>> = {
|
|
20
|
+
component: T
|
|
21
|
+
config: CFG
|
|
22
|
+
pose: keyof CFG
|
|
23
|
+
initialPose?: keyof CFG
|
|
24
|
+
} & Omit<Parameters<AnimatedComponents[T]>[0], 'component'>
|
|
25
|
+
|
|
26
|
+
export const Animated = <T extends CP, CFG = any>({
|
|
27
|
+
config,
|
|
28
|
+
component,
|
|
29
|
+
...props
|
|
30
|
+
}: AnimatedProps<T, CFG>) => {
|
|
31
|
+
const Component = useRef(PosedComponents[component](config)).current
|
|
32
|
+
|
|
33
|
+
return <Component withParent={false} {...props} />
|
|
34
|
+
}
|