@evlop/native-components 1.0.145 → 1.0.146

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.
@@ -1,5 +1,19 @@
1
+ import { Action } from '@evlop/commons';
1
2
  import React from 'react';
2
- export declare const BaseActionable: ({ action, ...props }: any) => JSX.Element;
3
- declare const _default: React.ForwardRefExoticComponent<Pick<any, string | number | symbol> & React.RefAttributes<any>>;
3
+ declare type EffectType = 'none' | 'scale' | 'opacity' | 'both' | 'elevation' | 'border' | 'color' | 'ripple' | 'spring';
4
+ declare type FeedbackType = 'none' | 'light' | 'medium' | 'heavy' | 'success' | 'error' | 'warning';
5
+ interface ActionableProps {
6
+ effect?: EffectType;
7
+ feedback?: FeedbackType;
8
+ action: Action;
9
+ [key: string]: any;
10
+ }
11
+ export declare const BaseActionable: React.ComponentType<ActionableProps>;
12
+ declare const _default: React.ForwardRefExoticComponent<Pick<React.PropsWithChildren<ActionableProps & {
13
+ model?: string;
14
+ dataModel?: string;
15
+ configModel?: string;
16
+ action?: Action;
17
+ }>, string | number> & React.RefAttributes<any>>;
4
18
  export default _default;
5
19
  //# sourceMappingURL=Actionable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actionable.d.ts","sourceRoot":"","sources":["../../src/Actionable.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,eAAO,MAAM,cAAc,yBAAwB,GAAG,gBAKrD,CAAA;;AAED,wBAMqB"}
1
+ {"version":3,"file":"Actionable.d.ts","sourceRoot":"","sources":["../../src/Actionable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA2B,MAAM,gBAAgB,CAAC;AAEjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,aAAK,UAAU,GACT,MAAM,GACN,OAAO,GACP,SAAS,GACT,MAAM,GACN,WAAW,GACX,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,CAAC;AAEf,aAAK,YAAY,GACX,MAAM,GACN,OAAO,GACP,QAAQ,GACR,OAAO,GACP,SAAS,GACT,OAAO,GACP,SAAS,CAAC;AAEhB,UAAU,eAAe;IACrB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AA8ED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,eAAe,CAkB/D,CAAA;;;;;;;AAED,wBAImB"}
@@ -16,22 +16,95 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.BaseActionable = void 0;
18
18
  const commons_1 = require("@evlop/commons");
19
+ const lodash_1 = require("lodash");
19
20
  const react_1 = __importDefault(require("react"));
20
21
  const react_native_1 = require("react-native");
21
22
  const native_1 = __importDefault(require("styled-components/native"));
22
23
  const styled_system_1 = require("styled-system");
23
24
  const StyledPressable = (0, native_1.default)(react_native_1.Pressable)(styled_system_1.border, styled_system_1.background, styled_system_1.layout, styled_system_1.space);
25
+ const getPressEffect = (0, lodash_1.memoize)((effect = 'none') => {
26
+ return ({ pressed }) => {
27
+ switch (effect) {
28
+ case 'scale':
29
+ return {
30
+ transform: [{ scale: pressed ? 0.95 : 1 }],
31
+ };
32
+ case 'opacity':
33
+ return {
34
+ opacity: pressed ? 0.7 : 1,
35
+ };
36
+ case 'both':
37
+ return {
38
+ transform: [{ scale: pressed ? 0.95 : 1 }],
39
+ opacity: pressed ? 0.7 : 1,
40
+ };
41
+ case 'elevation':
42
+ return {
43
+ transform: [{ scale: pressed ? 0.98 : 1 }],
44
+ shadowOpacity: pressed ? 0.2 : 0.5,
45
+ shadowRadius: pressed ? 2 : 4,
46
+ elevation: pressed ? 2 : 4,
47
+ };
48
+ case 'border':
49
+ return {
50
+ borderWidth: pressed ? 2 : 1,
51
+ borderColor: pressed ? '#007AFF' : '#E5E5EA',
52
+ };
53
+ case 'color':
54
+ return {
55
+ backgroundColor: pressed ? '#F2F2F7' : '#FFFFFF',
56
+ };
57
+ case 'ripple':
58
+ return {
59
+ transform: [{ scale: pressed ? 0.98 : 1 }],
60
+ backgroundColor: pressed ? 'rgba(0, 0, 0, 0.05)' : 'transparent',
61
+ };
62
+ case 'spring':
63
+ return {
64
+ transform: [
65
+ { scale: pressed ? 0.97 : 1 },
66
+ { translateY: pressed ? 1 : 0 }
67
+ ],
68
+ };
69
+ default:
70
+ return {};
71
+ }
72
+ };
73
+ });
74
+ const getFeedbackPattern = (0, lodash_1.memoize)((type) => {
75
+ switch (type) {
76
+ case 'light':
77
+ return 20; // 20ms vibration
78
+ case 'medium':
79
+ return 50; // 50ms vibration
80
+ case 'heavy':
81
+ return 100; // 100ms vibration
82
+ case 'success':
83
+ return [0, 30, 50, 30]; // Success pattern: short-long-short
84
+ case 'error':
85
+ return [0, 50, 50, 50]; // Error pattern: three short vibrations
86
+ case 'warning':
87
+ return [0, 100, 50, 100]; // Warning pattern: long-short-long
88
+ default:
89
+ return 0;
90
+ }
91
+ });
24
92
  const BaseActionable = (_a) => {
25
- var { action } = _a, props = __rest(_a, ["action"]);
93
+ var { action, effect = 'none', feedback = 'none' } = _a, props = __rest(_a, ["action", "effect", "feedback"]);
26
94
  const onPress = (0, commons_1.useAction)(action);
27
- return react_1.default.createElement(StyledPressable, Object.assign({ onPress: action ? onPress : undefined, android_ripple: true }, props));
95
+ const handlePress = (event) => {
96
+ if (feedback !== 'none') {
97
+ const pattern = getFeedbackPattern(feedback);
98
+ react_native_1.Vibration.vibrate(pattern, react_native_1.Platform.OS === 'ios');
99
+ }
100
+ onPress === null || onPress === void 0 ? void 0 : onPress(event);
101
+ };
102
+ return (react_1.default.createElement(StyledPressable, Object.assign({ onPress: action ? handlePress : undefined, style: getPressEffect(effect) }, props)));
28
103
  };
29
104
  exports.BaseActionable = BaseActionable;
30
105
  exports.default = (0, commons_1.withSettings)({
31
106
  name: 'Actionable',
32
107
  configurationOptions: [],
33
- valueOptions: [
34
- { type: 'app-action', name: 'action', label: 'Action' },
35
- ],
108
+ valueOptions: [],
36
109
  })(exports.BaseActionable);
37
110
  //# sourceMappingURL=Actionable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actionable.js","sourceRoot":"","sources":["../../src/Actionable.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4CAAyD;AACzD,kDAA0B;AAC1B,+CAAyC;AACzC,sEAA8C;AAC9C,iDAAkE;AAElE,MAAM,eAAe,GAAG,IAAA,gBAAM,EAAC,wBAAS,CAAC,CACrC,sBAAM,EACN,0BAAU,EACV,sBAAM,EACN,qBAAK,CACR,CAAA;AAEM,MAAM,cAAc,GAAG,CAAC,EAAuB,EAAE,EAAE;QAA3B,EAAC,MAAM,OAAgB,EAAX,KAAK,cAAjB,UAAkB,CAAD;IAC5C,MAAM,OAAO,GAAG,IAAA,mBAAS,EAAC,MAAM,CAAC,CAAC;IAGlC,OAAO,8BAAC,eAAe,kBAAC,OAAO,EAAE,MAAM,CAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,cAAc,UAAK,KAAK,EAAI,CAAE;AAChG,CAAC,CAAA;AALY,QAAA,cAAc,kBAK1B;AAED,kBAAe,IAAA,sBAAY,EAAC;IACxB,IAAI,EAAE,YAAY;IAClB,oBAAoB,EAAE,EAAE;IACxB,YAAY,EAAE;QACV,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAC;KACxD;CACF,CAAC,CAAC,sBAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"Actionable.js","sourceRoot":"","sources":["../../src/Actionable.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evlop/native-components",
3
- "version": "1.0.145",
3
+ "version": "1.0.146",
4
4
  "description": "",
5
5
  "main": "dist/main.js",
6
6
  "scripts": {