@codeleap/mobile 2.1.7 → 2.1.10
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/AutoComplete/styles.js +0 -1
- package/dist/components/AutoComplete/styles.js.map +1 -1
- package/dist/components/Drawer/index.js +1 -1
- package/dist/components/Drawer/index.js.map +1 -1
- package/dist/components/Drawer/styles.js +2 -2
- package/dist/components/Drawer/styles.js.map +1 -1
- package/dist/components/Modal/index.d.ts +3 -2
- package/dist/components/Modal/index.js +5 -3
- package/dist/components/Modal/index.js.map +1 -1
- package/dist/components/Modal/styles.d.ts +1 -1
- package/dist/components/Modal/styles.js +7 -4
- package/dist/components/Modal/styles.js.map +1 -1
- package/dist/components/MultiSelect/index.js +15 -3
- package/dist/components/MultiSelect/index.js.map +1 -1
- package/dist/components/MultiSelect/types.d.ts +3 -0
- package/dist/components/Scroll/index.js +19 -5
- package/dist/components/Scroll/index.js.map +1 -1
- package/dist/components/Scroll/styles.js +4 -12
- package/dist/components/Scroll/styles.js.map +1 -1
- package/dist/components/Select/index.js +30 -3
- package/dist/components/Select/index.js.map +1 -1
- package/dist/components/Select/styles.js +1 -3
- package/dist/components/Select/styles.js.map +1 -1
- package/dist/components/Select/types.d.ts +3 -0
- package/dist/utils/KeyboardAware/index.d.ts +1 -0
- package/dist/utils/KeyboardAware/index.js +1 -0
- package/dist/utils/KeyboardAware/index.js.map +1 -1
- package/dist/utils/KeyboardAware/keyboardHooks.d.ts +14 -0
- package/dist/utils/KeyboardAware/keyboardHooks.js +79 -0
- package/dist/utils/KeyboardAware/keyboardHooks.js.map +1 -0
- package/dist/utils/KeyboardAware/lib/KeyboardAwareHOC.d.ts +1 -1
- package/dist/utils/PermissionManager/context.d.ts +2 -2
- package/dist/utils/PermissionManager/context.js +25 -29
- package/dist/utils/PermissionManager/context.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/input.d.ts +35 -0
- package/dist/utils/input.js +49 -0
- package/dist/utils/input.js.map +1 -0
- package/package.json +1 -1
- package/src/components/AutoComplete/styles.ts +0 -1
- package/src/components/Drawer/index.tsx +1 -1
- package/src/components/Drawer/styles.ts +2 -2
- package/src/components/Modal/index.tsx +8 -7
- package/src/components/Modal/styles.ts +17 -6
- package/src/components/MultiSelect/index.tsx +19 -1
- package/src/components/MultiSelect/types.ts +3 -0
- package/src/components/Scroll/index.tsx +26 -20
- package/src/components/Scroll/styles.ts +2 -1
- package/src/components/Select/index.tsx +34 -9
- package/src/components/Select/styles.ts +2 -0
- package/src/components/Select/types.ts +3 -0
- package/src/utils/KeyboardAware/index.ts +1 -0
- package/src/utils/KeyboardAware/keyboardHooks.ts +91 -0
- package/src/utils/PermissionManager/context.tsx +31 -22
- package/src/utils/index.ts +1 -0
- package/src/utils/input.ts +51 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyboardHooks.js","sourceRoot":"","sources":["../../../src/utils/KeyboardAware/keyboardHooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,5 +63,5 @@ export declare type KeyboardAwareHOCOptions = {
|
|
|
63
63
|
refPropName: string;
|
|
64
64
|
extractNativeRef: Function;
|
|
65
65
|
};
|
|
66
|
-
declare const listenToKeyboardEvents: <C extends React.
|
|
66
|
+
declare const listenToKeyboardEvents: <C extends React.ComponentClass<{}, any> | React.ComponentType<{}>>(configOrComp: C) => C;
|
|
67
67
|
export default listenToKeyboardEvents;
|
|
@@ -19,8 +19,8 @@ declare type AskManyOpts<T extends string | number | symbol> = {
|
|
|
19
19
|
breakOnDenied?: T[];
|
|
20
20
|
};
|
|
21
21
|
export declare type UsePermissions<_PermissionNames extends string, PermissionNames extends string = `${_PermissionNames}?` | _PermissionNames> = () => TPermissionContext & {
|
|
22
|
-
askPermission: (name: PermissionNames, onResolve?: (status: PermissionTypes.PermissionStatus) => any) =>
|
|
23
|
-
askMany<T extends PermissionNames, R = TAskManyResults<T>>(perms: T[], onResolve?: (res: R) => any, options?: AskManyOpts<T>): Promise<
|
|
22
|
+
askPermission: (name: PermissionNames, onResolve?: (status: PermissionTypes.PermissionStatus) => any) => Promise<PermissionTypes.PermissionStatus>;
|
|
23
|
+
askMany<T extends PermissionNames, R = TAskManyResults<T>>(perms: T[], onResolve?: (res: R) => any, options?: AskManyOpts<T>): Promise<R>;
|
|
24
24
|
};
|
|
25
25
|
export declare const usePermissions: UsePermissions<any>;
|
|
26
26
|
export declare function usePermissionModal(permissionName: string): {
|
|
@@ -111,38 +111,33 @@ var usePermissions = function () {
|
|
|
111
111
|
var modalCtx = mobile_1.ModalManager.useModalContext();
|
|
112
112
|
var permissionCtx = (0, react_1.useContext)(PermissionContext);
|
|
113
113
|
function askPermission(name, onResolve) {
|
|
114
|
-
return
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
onResolve === null || onResolve === void 0 ? void 0 : onResolve(status.status);
|
|
138
|
-
}
|
|
139
|
-
return [2 /*return*/];
|
|
114
|
+
return new Promise(function (resolve, reject) {
|
|
115
|
+
permissionCtx.manager.get(name, {
|
|
116
|
+
ask: false,
|
|
117
|
+
askOnDenied: false,
|
|
118
|
+
askOnPending: false,
|
|
119
|
+
}).then(function (status) {
|
|
120
|
+
var permissionModalName = "permissions.".concat(name);
|
|
121
|
+
if (!status.isGranted) {
|
|
122
|
+
modalCtx.toggleModal(permissionModalName, true, {
|
|
123
|
+
onPermissionResolve: function (status) {
|
|
124
|
+
modalCtx.toggleModal(permissionModalName, false, {});
|
|
125
|
+
setTimeout(function () {
|
|
126
|
+
onResolve === null || onResolve === void 0 ? void 0 : onResolve(status, permissionModalName);
|
|
127
|
+
resolve(status);
|
|
128
|
+
}, modalCtx.transitionDuration);
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
onResolve === null || onResolve === void 0 ? void 0 : onResolve(status.status);
|
|
134
|
+
resolve(status);
|
|
140
135
|
}
|
|
141
136
|
});
|
|
142
137
|
});
|
|
143
138
|
}
|
|
144
139
|
var askMany = function (perms, onResolve, options) { return __awaiter(void 0, void 0, void 0, function () {
|
|
145
|
-
var prevModal, results, _loop_1, _i, perms_1, _permission, state_1;
|
|
140
|
+
var prevModal, results, _loop_1, _i, perms_1, _permission, state_1, res;
|
|
146
141
|
return __generator(this, function (_a) {
|
|
147
142
|
switch (_a.label) {
|
|
148
143
|
case 0:
|
|
@@ -223,8 +218,9 @@ var usePermissions = function () {
|
|
|
223
218
|
modalCtx.toggleModal(prevModal, false, {});
|
|
224
219
|
});
|
|
225
220
|
}
|
|
226
|
-
|
|
227
|
-
|
|
221
|
+
res = __assign(__assign({}, results), { overall: Object.values(results).every(function (x) { return x === 'granted'; }) ? 'granted' : 'denied' });
|
|
222
|
+
onResolve(res);
|
|
223
|
+
return [2 /*return*/, res];
|
|
228
224
|
}
|
|
229
225
|
});
|
|
230
226
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/utils/PermissionManager/context.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAmD;AACnD,2CAA+C;AAC/C,2CAA6H;AAC7H,6CAAgD;AAShD,IAAM,iBAAiB,GAAG,eAAK,CAAC,aAAa,CAAC,EAAwB,CAAC,CAAA;AAQvE,SAAS,WAAW,CAAC,KAAwB;IAC3C,IAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAC,EAAM;YAAL,CAAC,QAAA,EAAE,CAAC,QAAA;QAAM,OAAA,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;IAAb,CAAa,CAAC,CAAA;IACrE,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;AACrC,CAAC;AAED,SAAgB,QAAQ,CAAC,EAAiE;QAA/D,QAAQ,cAAA,EAAE,cAAc,oBAAA,EAAE,WAAW,iBAAA;IAExD,IAAA,KAAoB,IAAA,gBAAQ,EAAC,cAAM,OAAA,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,EAAlC,CAAkC,CAAC,EAArE,KAAK,QAAA,EAAE,QAAQ,QAAsD,CAAA;IAE5E,IAAA,gBAAO,EAAC;QAEN,uBAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAC,KAAK;YACxC,IAAI,KAAK,KAAK,QAAQ,EAAE;gBACtB,cAAc,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAC,IAAI;oBAChC,IAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;oBAClC,IAAI,CAAC,IAAA,kBAAS,EAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;wBAC/B,QAAQ,cAAM,QAAQ,EAAG,CAAA;qBAC1B;gBACH,CAAC,CAAC,CAAA;aACH;QACH,CAAC,CAAC,CAAA;IAEJ,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxC,KAAK,OAAA;YACL,WAAW,EAAE,WAAW;YACxB,OAAO,EAAE,cAAc;SACxB,CAAC,CACA;IAAA,CAAC,QAAQ,CACX;EAAA,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;AAC/B,CAAC;AA1BD,4BA0BC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/utils/PermissionManager/context.tsx"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
package/dist/utils/index.js
CHANGED
|
@@ -35,4 +35,5 @@ __exportStar(require("./ModalManager"), exports);
|
|
|
35
35
|
var Permissions = __importStar(require("./PermissionManager"));
|
|
36
36
|
exports.Permissions = Permissions;
|
|
37
37
|
__exportStar(require("./KeyboardAware"), exports);
|
|
38
|
+
__exportStar(require("./input"), exports);
|
|
38
39
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,0CAAuB;AACvB,yCAAsB;AACtB,kDAA+B;AAC/B,iDAA8B;AAC9B,+DAAkD;AAEzC,kCAAW;AACpB,kDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,0CAAuB;AACvB,yCAAsB;AACtB,kDAA+B;AAC/B,iDAA8B;AAC9B,+DAAkD;AAEzC,kCAAW;AACpB,kDAA+B;AAC/B,0CAAuB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export declare const mobileInputPresets: {
|
|
2
|
+
email: () => {
|
|
3
|
+
keyboardType: "email-address";
|
|
4
|
+
autoCapitalize: "none";
|
|
5
|
+
autoComplete: "email";
|
|
6
|
+
textContentType: "emailAddress";
|
|
7
|
+
};
|
|
8
|
+
name: () => {
|
|
9
|
+
autoCapitalize: "words";
|
|
10
|
+
autoComplete: "name";
|
|
11
|
+
textContentType: "name";
|
|
12
|
+
};
|
|
13
|
+
chat: () => {
|
|
14
|
+
returnKeyType: "send";
|
|
15
|
+
};
|
|
16
|
+
password: (options?: {
|
|
17
|
+
new?: boolean;
|
|
18
|
+
}) => {
|
|
19
|
+
autoCapitalize: "none";
|
|
20
|
+
autoComplete: "password" | "password-new";
|
|
21
|
+
textContentType: "password" | "newPassword";
|
|
22
|
+
};
|
|
23
|
+
search: () => {
|
|
24
|
+
returnKeyType: "search";
|
|
25
|
+
};
|
|
26
|
+
redeemCode: (action?: 'join' | 'obtain') => {
|
|
27
|
+
returnKeyType: "join";
|
|
28
|
+
textContentType: "oneTimeCode";
|
|
29
|
+
autoComplete: "sms-otp";
|
|
30
|
+
} | {
|
|
31
|
+
returnKeyType: "done";
|
|
32
|
+
textContentType: "oneTimeCode";
|
|
33
|
+
autoComplete: "sms-otp";
|
|
34
|
+
};
|
|
35
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mobileInputPresets = void 0;
|
|
4
|
+
var createInputPresets = function (p) {
|
|
5
|
+
return p;
|
|
6
|
+
};
|
|
7
|
+
exports.mobileInputPresets = createInputPresets({
|
|
8
|
+
email: function () { return ({
|
|
9
|
+
keyboardType: 'email-address',
|
|
10
|
+
autoCapitalize: 'none',
|
|
11
|
+
autoComplete: 'email',
|
|
12
|
+
textContentType: 'emailAddress',
|
|
13
|
+
}); },
|
|
14
|
+
name: function () { return ({
|
|
15
|
+
autoCapitalize: 'words',
|
|
16
|
+
autoComplete: 'name',
|
|
17
|
+
textContentType: 'name',
|
|
18
|
+
}); },
|
|
19
|
+
chat: function () { return ({
|
|
20
|
+
returnKeyType: 'send',
|
|
21
|
+
}); },
|
|
22
|
+
password: function (options) {
|
|
23
|
+
return {
|
|
24
|
+
autoCapitalize: 'none',
|
|
25
|
+
autoComplete: (options === null || options === void 0 ? void 0 : options.new) ? 'password-new' : 'password',
|
|
26
|
+
textContentType: (options === null || options === void 0 ? void 0 : options.new) ? 'newPassword' : 'password',
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
search: function () { return ({
|
|
30
|
+
returnKeyType: 'search',
|
|
31
|
+
}); },
|
|
32
|
+
redeemCode: function (action) {
|
|
33
|
+
if (action === void 0) { action = 'obtain'; }
|
|
34
|
+
var isJoin = action === 'join';
|
|
35
|
+
if (isJoin) {
|
|
36
|
+
return {
|
|
37
|
+
returnKeyType: 'join',
|
|
38
|
+
textContentType: 'oneTimeCode',
|
|
39
|
+
autoComplete: 'sms-otp',
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
returnKeyType: 'done',
|
|
44
|
+
textContentType: 'oneTimeCode',
|
|
45
|
+
autoComplete: 'sms-otp',
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/utils/input.ts"],"names":[],"mappings":";;;AAEA,IAAM,kBAAkB,GAAG,UAAuE,CAAG;IACnG,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAEY,QAAA,kBAAkB,GAAG,kBAAkB,CAAC;IACnD,KAAK,EAAE,cAAM,OAAA,CAAC;QACZ,YAAY,EAAE,eAAe;QAC7B,cAAc,EAAE,MAAM;QACtB,YAAY,EAAE,OAAO;QACrB,eAAe,EAAE,cAAc;KAEhC,CAAC,EANW,CAMX;IACF,IAAI,EAAE,cAAM,OAAA,CAAC;QACX,cAAc,EAAE,OAAO;QACvB,YAAY,EAAE,MAAM;QACpB,eAAe,EAAE,MAAM;KAExB,CAAC,EALU,CAKV;IACF,IAAI,EAAE,cAAM,OAAA,CAAC;QACX,aAAa,EAAE,MAAM;KAEtB,CAAC,EAHU,CAGV;IACF,QAAQ,EAAE,UAAC,OAAyB;QAClC,OAAO;YACL,cAAc,EAAE,MAAM;YACtB,YAAY,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,EAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU;YACxD,eAAe,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,EAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU;SAC3D,CAAA;IACH,CAAC;IACD,MAAM,EAAE,cAAM,OAAA,CAAC;QACb,aAAa,EAAE,QAAQ;KACxB,CAAC,EAFY,CAEZ;IACF,UAAU,EAAE,UAAC,MAAiC;QAAjC,uBAAA,EAAA,iBAAiC;QAC5C,IAAM,MAAM,GAAG,MAAM,KAAK,MAAM,CAAA;QAChC,IAAI,MAAM,EAAE;YACV,OAAO;gBACL,aAAa,EAAE,MAAM;gBACrB,eAAe,EAAE,aAAa;gBAC9B,YAAY,EAAE,SAAS;aACxB,CAAA;SACF;QACD,OAAO;YACL,aAAa,EAAE,MAAM;YACrB,eAAe,EAAE,aAAa;YAC9B,YAAY,EAAE,SAAS;SACxB,CAAA;IAEH,CAAC;CACF,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -13,10 +13,10 @@ export const DrawerStyles = {
|
|
|
13
13
|
...defaultStyle,
|
|
14
14
|
box: {
|
|
15
15
|
width: '100%',
|
|
16
|
-
maxHeight: theme.values.height * 0.
|
|
16
|
+
maxHeight: theme.values.height * 0.99,
|
|
17
17
|
paddingBottom: (theme.values.bottomNavHeight ?? 0) + theme.spacing.value(1),
|
|
18
18
|
},
|
|
19
|
-
|
|
19
|
+
innerWrapper: {
|
|
20
20
|
...theme.presets.justifyEnd,
|
|
21
21
|
},
|
|
22
22
|
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
getNestedStylesByKey,
|
|
8
8
|
IconPlaceholder,
|
|
9
9
|
onUpdate,
|
|
10
|
+
PropsOf,
|
|
10
11
|
TypeGuards,
|
|
11
12
|
useDefaultComponentStyle,
|
|
12
13
|
} from '@codeleap/common'
|
|
@@ -43,8 +44,8 @@ export type ModalProps = Omit<ViewProps, 'variants' | 'styles'> & {
|
|
|
43
44
|
zIndex?: number
|
|
44
45
|
scroll?: boolean
|
|
45
46
|
header?: React.ReactElement
|
|
46
|
-
keyboardAware?: boolean
|
|
47
47
|
renderHeader?: (props: ModalHeaderProps) => React.ReactElement
|
|
48
|
+
scrollProps?: PropsOf<typeof Scroll>
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
export type ModalHeaderProps = Omit<ModalProps, 'styles' | 'renderHeader'> & {
|
|
@@ -95,8 +96,8 @@ export const Modal: React.FC<ModalProps> = (modalProps) => {
|
|
|
95
96
|
debugName,
|
|
96
97
|
scroll = true,
|
|
97
98
|
renderHeader,
|
|
98
|
-
keyboardAware = true,
|
|
99
99
|
zIndex = null,
|
|
100
|
+
scrollProps = {},
|
|
100
101
|
...props
|
|
101
102
|
} = modalProps
|
|
102
103
|
|
|
@@ -127,7 +128,7 @@ export const Modal: React.FC<ModalProps> = (modalProps) => {
|
|
|
127
128
|
}, [visible])
|
|
128
129
|
const wrapperStyle = getStyles('wrapper')
|
|
129
130
|
const ScrollComponent = scroll ? Scroll : View
|
|
130
|
-
const scrollStyle = scroll ? getStyles('
|
|
131
|
+
const scrollStyle = scroll ? getStyles('scroll') : getStyles('innerWrapper')
|
|
131
132
|
|
|
132
133
|
const headerProps:ModalHeaderProps = {
|
|
133
134
|
...modalProps,
|
|
@@ -138,7 +139,6 @@ export const Modal: React.FC<ModalProps> = (modalProps) => {
|
|
|
138
139
|
},
|
|
139
140
|
}
|
|
140
141
|
const Header = renderHeader || DefaultHeader
|
|
141
|
-
|
|
142
142
|
return (
|
|
143
143
|
<View
|
|
144
144
|
style={[wrapperStyle, { zIndex: TypeGuards.isNumber(zIndex) ? zIndex : wrapperStyle?.zIndex }]}
|
|
@@ -156,9 +156,8 @@ export const Modal: React.FC<ModalProps> = (modalProps) => {
|
|
|
156
156
|
/>
|
|
157
157
|
<ScrollComponent
|
|
158
158
|
style={scrollStyle}
|
|
159
|
-
contentContainerStyle={getStyles('
|
|
160
|
-
|
|
161
|
-
keyboardAware={keyboardAware}
|
|
159
|
+
contentContainerStyle={getStyles('scrollContent')}
|
|
160
|
+
{...scrollProps}
|
|
162
161
|
>
|
|
163
162
|
{dismissOnBackdrop &&
|
|
164
163
|
<Touchable
|
|
@@ -168,6 +167,7 @@ export const Modal: React.FC<ModalProps> = (modalProps) => {
|
|
|
168
167
|
android_ripple={null}
|
|
169
168
|
noFeedback
|
|
170
169
|
/>}
|
|
170
|
+
|
|
171
171
|
<View
|
|
172
172
|
animated
|
|
173
173
|
state={boxAnimation}
|
|
@@ -185,6 +185,7 @@ export const Modal: React.FC<ModalProps> = (modalProps) => {
|
|
|
185
185
|
</View>
|
|
186
186
|
)}
|
|
187
187
|
</View>
|
|
188
|
+
|
|
188
189
|
</ScrollComponent>
|
|
189
190
|
</View>
|
|
190
191
|
|
|
@@ -11,7 +11,9 @@ export type ModalParts =
|
|
|
11
11
|
| AnimatableParts
|
|
12
12
|
| 'wrapper'
|
|
13
13
|
| 'innerWrapper'
|
|
14
|
-
|
|
14
|
+
|
|
15
|
+
| 'scrollContent'
|
|
16
|
+
| 'scroll'
|
|
15
17
|
| 'body'
|
|
16
18
|
| 'footer'
|
|
17
19
|
| 'header'
|
|
@@ -36,8 +38,8 @@ export const ModalStyles = {
|
|
|
36
38
|
const fullSize = {
|
|
37
39
|
...Theme.presets.whole,
|
|
38
40
|
position: 'absolute',
|
|
39
|
-
width:
|
|
40
|
-
height:
|
|
41
|
+
width: '100%',
|
|
42
|
+
height: '100%',
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
return {
|
|
@@ -76,12 +78,21 @@ export const ModalStyles = {
|
|
|
76
78
|
'backdrop:hidden': {
|
|
77
79
|
opacity: 0,
|
|
78
80
|
},
|
|
79
|
-
innerWrapper: {
|
|
80
|
-
|
|
81
|
+
innerWrapper: {
|
|
82
|
+
display: 'flex',
|
|
83
|
+
alignItems: 'center',
|
|
84
|
+
...Theme.presets.justifyCenter,
|
|
85
|
+
...Theme.presets.fullHeight,
|
|
86
|
+
},
|
|
87
|
+
scroll: {
|
|
88
|
+
height: '100%',
|
|
89
|
+
width: '100%',
|
|
90
|
+
},
|
|
91
|
+
scrollContent: {
|
|
81
92
|
display: 'flex',
|
|
82
93
|
alignItems: 'center',
|
|
83
94
|
...Theme.presets.justifyCenter,
|
|
84
|
-
|
|
95
|
+
...Theme.presets.fullHeight,
|
|
85
96
|
},
|
|
86
97
|
box: {
|
|
87
98
|
width: '80%',
|
|
@@ -28,6 +28,9 @@ export const MultiSelect = <T extends string|number = string>(selectProps:MultiS
|
|
|
28
28
|
arrowIconName = 'selectArrow',
|
|
29
29
|
selectedIcon = 'multiSelectMarker',
|
|
30
30
|
inputProps = {},
|
|
31
|
+
clearable = false,
|
|
32
|
+
clearIconName = 'close',
|
|
33
|
+
validate = null,
|
|
31
34
|
...drawerProps
|
|
32
35
|
} = selectProps
|
|
33
36
|
|
|
@@ -76,6 +79,19 @@ export const MultiSelect = <T extends string|number = string>(selectProps:MultiS
|
|
|
76
79
|
icon={selectedIcon as IconPlaceholder}
|
|
77
80
|
/>
|
|
78
81
|
}
|
|
82
|
+
|
|
83
|
+
const isEmpty = value.length === 0
|
|
84
|
+
const showClearIcon = !isEmpty && clearable
|
|
85
|
+
const inputIcon = showClearIcon ? clearIconName : arrowIconName
|
|
86
|
+
|
|
87
|
+
const onPressInputIcon = () => {
|
|
88
|
+
if (showClearIcon) {
|
|
89
|
+
onValueChange([])
|
|
90
|
+
} else {
|
|
91
|
+
close?.()
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
}
|
|
79
95
|
return <>
|
|
80
96
|
{
|
|
81
97
|
!hideInput && (
|
|
@@ -83,7 +99,8 @@ export const MultiSelect = <T extends string|number = string>(selectProps:MultiS
|
|
|
83
99
|
caretHidden
|
|
84
100
|
value={selectedLabel}
|
|
85
101
|
rightIcon={{
|
|
86
|
-
icon:
|
|
102
|
+
icon: inputIcon as IconPlaceholder,
|
|
103
|
+
onPress: onPressInputIcon,
|
|
87
104
|
}}
|
|
88
105
|
editable={false}
|
|
89
106
|
touchableWrapper
|
|
@@ -96,6 +113,7 @@ export const MultiSelect = <T extends string|number = string>(selectProps:MultiS
|
|
|
96
113
|
debugName={'Select input'}
|
|
97
114
|
styles={inputStyles}
|
|
98
115
|
style={style}
|
|
116
|
+
validate={validate}
|
|
99
117
|
{...inputProps}
|
|
100
118
|
/>
|
|
101
119
|
)
|
|
@@ -35,5 +35,8 @@ export type MultiSelectProps<T> = MultiSelectDrawerProps & {
|
|
|
35
35
|
selectedIcon?: IconPlaceholder
|
|
36
36
|
hideInput?: boolean
|
|
37
37
|
listProps?: Partial<FlatListProps>
|
|
38
|
+
clearable?: boolean
|
|
39
|
+
clearIconName?: IconPlaceholder
|
|
40
|
+
validate?: TextInputProps['validate']
|
|
38
41
|
} & ComponentVariants<typeof MultiSelectStyles>
|
|
39
42
|
|
|
@@ -13,7 +13,8 @@ import { ViewProps } from '../View'
|
|
|
13
13
|
import { KeyboardAwareScrollViewTypes } from '../../modules'
|
|
14
14
|
import { StylesOf } from '../../types'
|
|
15
15
|
import { ScrollComposition, ScrollStyles } from './styles'
|
|
16
|
-
import {
|
|
16
|
+
import { useKeyboardScrollView } from '../../utils'
|
|
17
|
+
// import { KeyboardAwareScrollView } from '../../utils'
|
|
17
18
|
|
|
18
19
|
type KeyboardAwareScrollViewProps = KeyboardAwareScrollViewTypes.KeyboardAwareScrollViewProps
|
|
19
20
|
|
|
@@ -38,6 +39,7 @@ export const Scroll = forwardRef<ScrollView, ScrollProps>(
|
|
|
38
39
|
changeData,
|
|
39
40
|
styles = {},
|
|
40
41
|
refreshControlProps = {},
|
|
42
|
+
contentContainerStyle,
|
|
41
43
|
keyboardAware = true,
|
|
42
44
|
...props
|
|
43
45
|
} = scrollProps
|
|
@@ -75,31 +77,35 @@ export const Scroll = forwardRef<ScrollView, ScrollProps>(
|
|
|
75
77
|
variants,
|
|
76
78
|
styles,
|
|
77
79
|
transform: StyleSheet.flatten,
|
|
78
|
-
rootElement: '
|
|
80
|
+
rootElement: 'content',
|
|
79
81
|
})
|
|
80
82
|
|
|
81
|
-
const Component = keyboardAware ? KeyboardAwareScrollView : ScrollView
|
|
82
83
|
const refreshStyles = StyleSheet.flatten([variantStyles.refreshControl, styles.refreshControl])
|
|
84
|
+
const _scrollProps = {
|
|
85
|
+
style: [variantStyles.wrapper, style],
|
|
86
|
+
contentContainerStyle: [variantStyles.content, contentContainerStyle],
|
|
87
|
+
ref: ref as unknown as ScrollView,
|
|
88
|
+
refreshControl: hasRefresh && (
|
|
89
|
+
<RefreshControl
|
|
90
|
+
refreshing={refreshingDisplay}
|
|
91
|
+
onRefresh={onRefresh}
|
|
92
|
+
tintColor={refreshStyles?.color}
|
|
93
|
+
colors={[refreshStyles?.color]}
|
|
94
|
+
{...refreshControlProps}
|
|
95
|
+
/>
|
|
96
|
+
),
|
|
97
|
+
...props,
|
|
98
|
+
}
|
|
99
|
+
const keyboard = useKeyboardScrollView()
|
|
100
|
+
const keyboardAwareScrollProps = keyboard.getScrollProps(_scrollProps)
|
|
101
|
+
const rootProps = keyboardAware ? keyboardAwareScrollProps : _scrollProps
|
|
102
|
+
|
|
83
103
|
return (
|
|
84
|
-
<
|
|
85
|
-
|
|
86
|
-
contentContainerStyle={[variantStyles.wrapper]}
|
|
87
|
-
ref={ref as unknown as ScrollView}
|
|
88
|
-
refreshControl={
|
|
89
|
-
hasRefresh && (
|
|
90
|
-
<RefreshControl
|
|
91
|
-
refreshing={refreshingDisplay}
|
|
92
|
-
onRefresh={onRefresh}
|
|
93
|
-
tintColor={refreshStyles?.color}
|
|
94
|
-
colors={[refreshStyles?.color]}
|
|
95
|
-
{...refreshControlProps}
|
|
96
|
-
/>
|
|
97
|
-
)
|
|
98
|
-
}
|
|
99
|
-
{...props}
|
|
104
|
+
<ScrollView
|
|
105
|
+
{...rootProps}
|
|
100
106
|
>
|
|
101
107
|
{children}
|
|
102
|
-
</
|
|
108
|
+
</ScrollView>
|
|
103
109
|
)
|
|
104
110
|
},
|
|
105
111
|
)
|
|
@@ -10,7 +10,7 @@ import { TextInput } from '../TextInput'
|
|
|
10
10
|
import { Touchable } from '../Touchable'
|
|
11
11
|
import { SelectStyles } from './styles'
|
|
12
12
|
import { CustomSelectProps } from './types'
|
|
13
|
-
import { ModalManager } from '../../utils'
|
|
13
|
+
import { ModalManager, useKeyboardScrollView } from '../../utils'
|
|
14
14
|
import { Icon } from '../Icon'
|
|
15
15
|
|
|
16
16
|
export const SelectItem = ({ item, icon = null, isSelected, styles, onPress }) => {
|
|
@@ -41,9 +41,12 @@ export const Select = <T extends string|number = string>(selectProps:CustomSelec
|
|
|
41
41
|
listProps,
|
|
42
42
|
placeholder = 'Select',
|
|
43
43
|
arrowIconName = 'selectArrow',
|
|
44
|
+
clearIconName = 'close',
|
|
45
|
+
clearable = false,
|
|
44
46
|
selectedIcon = 'selectMarker',
|
|
45
47
|
inputProps = {},
|
|
46
48
|
hideInput = false,
|
|
49
|
+
keyboardAware = true,
|
|
47
50
|
...drawerProps
|
|
48
51
|
} = selectProps
|
|
49
52
|
|
|
@@ -76,7 +79,6 @@ export const Select = <T extends string|number = string>(selectProps:CustomSelec
|
|
|
76
79
|
|
|
77
80
|
return TypeGuards.isString(display) ? display : ''
|
|
78
81
|
}, [value, placeholder, options])
|
|
79
|
-
|
|
80
82
|
const Item = renderItem || SelectItem
|
|
81
83
|
|
|
82
84
|
const renderListItem = ({ item }) => {
|
|
@@ -88,6 +90,32 @@ export const Select = <T extends string|number = string>(selectProps:CustomSelec
|
|
|
88
90
|
styles={variantStyles}
|
|
89
91
|
/>
|
|
90
92
|
}
|
|
93
|
+
const isEmpty = TypeGuards.isNil(value)
|
|
94
|
+
const showClearIcon = !isEmpty && clearable
|
|
95
|
+
|
|
96
|
+
const inputIcon = showClearIcon ? clearIconName : arrowIconName
|
|
97
|
+
|
|
98
|
+
const onPressInputIcon = () => {
|
|
99
|
+
if (showClearIcon) {
|
|
100
|
+
onValueChange(null)
|
|
101
|
+
} else {
|
|
102
|
+
close?.()
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const baseListProps = {
|
|
108
|
+
data: options,
|
|
109
|
+
style: variantStyles.list,
|
|
110
|
+
contentContainerStyle: variantStyles.listContent,
|
|
111
|
+
keyExtractor: (i) => i.value,
|
|
112
|
+
renderItem: renderListItem,
|
|
113
|
+
...listProps,
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
const keyboard = useKeyboardScrollView()
|
|
117
|
+
const _listProps = keyboardAware ? keyboard.getScrollProps(baseListProps, 'contentContainerStyle', 'paddingBottom') : baseListProps
|
|
118
|
+
|
|
91
119
|
return <>
|
|
92
120
|
{
|
|
93
121
|
!hideInput && (
|
|
@@ -95,7 +123,9 @@ export const Select = <T extends string|number = string>(selectProps:CustomSelec
|
|
|
95
123
|
caretHidden
|
|
96
124
|
value={selectedLabel}
|
|
97
125
|
rightIcon={{
|
|
98
|
-
icon:
|
|
126
|
+
icon: inputIcon as IconPlaceholder,
|
|
127
|
+
onPress: onPressInputIcon,
|
|
128
|
+
noFeedback: true,
|
|
99
129
|
}}
|
|
100
130
|
editable={false}
|
|
101
131
|
touchableWrapper
|
|
@@ -116,12 +146,7 @@ export const Select = <T extends string|number = string>(selectProps:CustomSelec
|
|
|
116
146
|
|
|
117
147
|
<ModalManager.Drawer scroll={false} title={label} {...drawerProps} styles={variantStyles}>
|
|
118
148
|
<List<CustomSelectProps<any>['options']>
|
|
119
|
-
|
|
120
|
-
style={variantStyles.list}
|
|
121
|
-
contentContainerStyle={variantStyles.listContent}
|
|
122
|
-
keyExtractor={(i) => i.value}
|
|
123
|
-
renderItem={renderListItem}
|
|
124
|
-
{...listProps}
|
|
149
|
+
{..._listProps}
|
|
125
150
|
/>
|
|
126
151
|
</ModalManager.Drawer>
|
|
127
152
|
|
|
@@ -35,5 +35,8 @@ export type CustomSelectProps<T> = SelectDrawerProps & {
|
|
|
35
35
|
closeOnSelect?: boolean
|
|
36
36
|
inputProps?: Partial<TextInputProps>
|
|
37
37
|
listProps?: Partial<FlatListProps>
|
|
38
|
+
clearable?: boolean
|
|
39
|
+
clearIconName?: IconPlaceholder
|
|
40
|
+
keyboardAware?: boolean
|
|
38
41
|
} & ComponentVariants<typeof SelectStyles>
|
|
39
42
|
|