@codeleap/mobile 1.4.0 → 1.5.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/dist/components/ActivityIndicator.js +3 -4
- package/dist/components/ActivityIndicator.js.map +1 -1
- package/dist/components/Button.d.ts +1 -1
- package/dist/components/Button.js +1 -1
- package/dist/components/Button.js.map +1 -1
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/Checkbox/index.js.map +1 -1
- package/dist/components/FileInput.js +2 -2
- package/dist/components/FileInput.js.map +1 -1
- package/dist/components/Icon.d.ts +2 -1
- package/dist/components/Icon.js +9 -3
- package/dist/components/Icon.js.map +1 -1
- package/dist/components/Image.d.ts +2 -1
- package/dist/components/Image.js +9 -3
- package/dist/components/Image.js.map +1 -1
- package/dist/components/Modal/styles.d.ts +1 -1
- package/dist/components/Modal/styles.js +9 -1
- package/dist/components/Modal/styles.js.map +1 -1
- package/dist/components/Navigation/Navigation.js +11 -3
- package/dist/components/Navigation/Navigation.js.map +1 -1
- package/dist/components/Navigation/types.js.map +1 -1
- package/dist/components/Navigation/utils.js +3 -0
- package/dist/components/Navigation/utils.js.map +1 -1
- package/dist/components/Overlay.js +1 -1
- package/dist/components/Overlay.js.map +1 -1
- package/dist/components/Pager/index.js +2 -2
- package/dist/components/Pager/index.js.map +1 -1
- package/dist/components/RadioInput/index.js +2 -2
- package/dist/components/RadioInput/index.js.map +1 -1
- package/dist/components/Select/index.js +10 -9
- package/dist/components/Select/index.js.map +1 -1
- package/dist/components/Switch.js.map +1 -1
- package/dist/components/TextInput.d.ts +2 -0
- package/dist/components/TextInput.js +3 -3
- package/dist/components/TextInput.js.map +1 -1
- package/dist/components/Touchable.d.ts +1 -1
- package/dist/modules/documentPicker.js.map +1 -1
- package/dist/utils/OSAlert.d.ts +3 -3
- package/dist/utils/OSAlert.js +63 -10
- package/dist/utils/OSAlert.js.map +1 -1
- package/package.json +3 -1
- package/src/components/ActivityIndicator.tsx +6 -7
- package/src/components/Animated.tsx +7 -7
- package/src/components/Button.tsx +12 -14
- package/src/components/Checkbox/index.tsx +7 -6
- package/src/components/Checkbox/styles.ts +2 -2
- package/src/components/ContentView.tsx +4 -4
- package/src/components/FileInput.tsx +28 -27
- package/src/components/Icon.tsx +14 -4
- package/src/components/Image.tsx +19 -9
- package/src/components/List.tsx +7 -7
- package/src/components/Modal/index.tsx +15 -15
- package/src/components/Modal/styles.ts +18 -3
- package/src/components/Navigation/Navigation.tsx +22 -15
- package/src/components/Navigation/index.tsx +2 -2
- package/src/components/Navigation/types.ts +3 -5
- package/src/components/Navigation/utils.tsx +25 -20
- package/src/components/Overlay.tsx +9 -8
- package/src/components/Pager/index.tsx +20 -21
- package/src/components/Pager/styles.ts +1 -1
- package/src/components/RadioInput/index.tsx +17 -16
- package/src/components/RadioInput/styles.ts +3 -3
- package/src/components/Scroll.tsx +7 -7
- package/src/components/Sections.tsx +100 -0
- package/src/components/Select/index.tsx +36 -33
- package/src/components/Select/styles.ts +7 -7
- package/src/components/Select/types.ts +18 -18
- package/src/components/Slider/Mark.tsx +7 -7
- package/src/components/Slider/Thumb.tsx +1 -1
- package/src/components/Slider/index.tsx +14 -14
- package/src/components/Slider/types.ts +18 -18
- package/src/components/Switch.tsx +6 -7
- package/src/components/Text.tsx +3 -3
- package/src/components/TextInput.tsx +14 -13
- package/src/components/Touchable.tsx +7 -7
- package/src/components/View.tsx +3 -3
- package/src/modules/documentPicker.ts +3 -4
- package/src/modules/index.d.ts +82 -82
- package/src/modules/types/documentPicker.d.ts +191 -191
- package/src/modules/types/fileTypes.ts +138 -138
- package/src/types/utility.ts +1 -1
- package/src/utils/OSAlert.ts +83 -27
- package/src/utils/misc.ts +2 -2
|
@@ -1,138 +1,138 @@
|
|
|
1
|
-
declare const mimeTypes: Readonly<{
|
|
2
|
-
readonly allFiles: '*/*'
|
|
3
|
-
readonly audio: 'audio/*'
|
|
4
|
-
readonly csv: 'text/csv'
|
|
5
|
-
readonly doc: 'application/msword'
|
|
6
|
-
readonly docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
|
|
7
|
-
readonly images: 'image/*'
|
|
8
|
-
readonly pdf: 'application/pdf'
|
|
9
|
-
readonly plainText: 'text/plain'
|
|
10
|
-
readonly ppt: 'application/vnd.ms-powerpoint'
|
|
11
|
-
readonly pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
|
|
12
|
-
readonly video: 'video/*'
|
|
13
|
-
readonly xls: 'application/vnd.ms-excel'
|
|
14
|
-
readonly xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
|
15
|
-
readonly zip: 'application/zip'
|
|
16
|
-
}>
|
|
17
|
-
declare const utis: Readonly<{
|
|
18
|
-
readonly allFiles: 'public.item'
|
|
19
|
-
readonly audio: 'public.audio'
|
|
20
|
-
readonly csv: 'public.comma-separated-values-text'
|
|
21
|
-
readonly doc: 'com.microsoft.word.doc'
|
|
22
|
-
readonly docx: 'org.openxmlformats.wordprocessingml.document'
|
|
23
|
-
readonly images: 'public.image'
|
|
24
|
-
readonly pdf: 'com.adobe.pdf'
|
|
25
|
-
readonly plainText: 'public.plain-text'
|
|
26
|
-
readonly ppt: 'com.microsoft.powerpoint.ppt'
|
|
27
|
-
readonly pptx: 'org.openxmlformats.presentationml.presentation'
|
|
28
|
-
readonly video: 'public.movie'
|
|
29
|
-
readonly xls: 'com.microsoft.excel.xls'
|
|
30
|
-
readonly xlsx: 'org.openxmlformats.spreadsheetml.sheet'
|
|
31
|
-
readonly zip: 'public.zip-archive'
|
|
32
|
-
}>
|
|
33
|
-
declare const extensions: Readonly<{
|
|
34
|
-
readonly allFiles: '*'
|
|
35
|
-
readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
|
|
36
|
-
readonly csv: '.csv'
|
|
37
|
-
readonly doc: '.doc'
|
|
38
|
-
readonly docx: '.docx'
|
|
39
|
-
readonly images: '.jpeg .jpg .png'
|
|
40
|
-
readonly pdf: '.pdf'
|
|
41
|
-
readonly plainText: '.txt'
|
|
42
|
-
readonly ppt: '.ppt'
|
|
43
|
-
readonly pptx: '.pptx'
|
|
44
|
-
readonly video: '.mp4'
|
|
45
|
-
readonly xls: '.xls'
|
|
46
|
-
readonly xlsx: '.xlsx'
|
|
47
|
-
readonly zip: '.zip .gz'
|
|
48
|
-
}>
|
|
49
|
-
export declare type PlatformTypes = {
|
|
50
|
-
android: typeof mimeTypes
|
|
51
|
-
ios: typeof utis
|
|
52
|
-
windows: typeof extensions
|
|
53
|
-
}
|
|
54
|
-
export declare type SupportedPlatforms = 'ios' | 'android' | 'windows'
|
|
55
|
-
export declare const perPlatformTypes: {
|
|
56
|
-
android: Readonly<{
|
|
57
|
-
readonly allFiles: '*/*'
|
|
58
|
-
readonly audio: 'audio/*'
|
|
59
|
-
readonly csv: 'text/csv'
|
|
60
|
-
readonly doc: 'application/msword'
|
|
61
|
-
readonly docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
|
|
62
|
-
readonly images: 'image/*'
|
|
63
|
-
readonly pdf: 'application/pdf'
|
|
64
|
-
readonly plainText: 'text/plain'
|
|
65
|
-
readonly ppt: 'application/vnd.ms-powerpoint'
|
|
66
|
-
readonly pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
|
|
67
|
-
readonly video: 'video/*'
|
|
68
|
-
readonly xls: 'application/vnd.ms-excel'
|
|
69
|
-
readonly xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
|
70
|
-
readonly zip: 'application/zip'
|
|
71
|
-
}
|
|
72
|
-
ios: Readonly<{
|
|
73
|
-
readonly allFiles: 'public.item'
|
|
74
|
-
readonly audio: 'public.audio'
|
|
75
|
-
readonly csv: 'public.comma-separated-values-text'
|
|
76
|
-
readonly doc: 'com.microsoft.word.doc'
|
|
77
|
-
readonly docx: 'org.openxmlformats.wordprocessingml.document'
|
|
78
|
-
readonly images: 'public.image'
|
|
79
|
-
readonly pdf: 'com.adobe.pdf'
|
|
80
|
-
readonly plainText: 'public.plain-text'
|
|
81
|
-
readonly ppt: 'com.microsoft.powerpoint.ppt'
|
|
82
|
-
readonly pptx: 'org.openxmlformats.presentationml.presentation'
|
|
83
|
-
readonly video: 'public.movie'
|
|
84
|
-
readonly xls: 'com.microsoft.excel.xls'
|
|
85
|
-
readonly xlsx: 'org.openxmlformats.spreadsheetml.sheet'
|
|
86
|
-
readonly zip: 'public.zip-archive'
|
|
87
|
-
}
|
|
88
|
-
windows: Readonly<{
|
|
89
|
-
readonly allFiles: '*'
|
|
90
|
-
readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
|
|
91
|
-
readonly csv: '.csv'
|
|
92
|
-
readonly doc: '.doc'
|
|
93
|
-
readonly docx: '.docx'
|
|
94
|
-
readonly images: '.jpeg .jpg .png'
|
|
95
|
-
readonly pdf: '.pdf'
|
|
96
|
-
readonly plainText: '.txt'
|
|
97
|
-
readonly ppt: '.ppt'
|
|
98
|
-
readonly pptx: '.pptx'
|
|
99
|
-
readonly video: '.mp4'
|
|
100
|
-
readonly xls: '.xls'
|
|
101
|
-
readonly xlsx: '.xlsx'
|
|
102
|
-
readonly zip: '.zip .gz'
|
|
103
|
-
}
|
|
104
|
-
macos: Readonly<{
|
|
105
|
-
readonly allFiles: '*'
|
|
106
|
-
readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
|
|
107
|
-
readonly csv: '.csv'
|
|
108
|
-
readonly doc: '.doc'
|
|
109
|
-
readonly docx: '.docx'
|
|
110
|
-
readonly images: '.jpeg .jpg .png'
|
|
111
|
-
readonly pdf: '.pdf'
|
|
112
|
-
readonly plainText: '.txt'
|
|
113
|
-
readonly ppt: '.ppt'
|
|
114
|
-
readonly pptx: '.pptx'
|
|
115
|
-
readonly video: '.mp4'
|
|
116
|
-
readonly xls: '.xls'
|
|
117
|
-
readonly xlsx: '.xlsx'
|
|
118
|
-
readonly zip: '.zip .gz'
|
|
119
|
-
}
|
|
120
|
-
web: Readonly<{
|
|
121
|
-
readonly allFiles: '*'
|
|
122
|
-
readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
|
|
123
|
-
readonly csv: '.csv'
|
|
124
|
-
readonly doc: '.doc'
|
|
125
|
-
readonly docx: '.docx'
|
|
126
|
-
readonly images: '.jpeg .jpg .png'
|
|
127
|
-
readonly pdf: '.pdf'
|
|
128
|
-
readonly plainText: '.txt'
|
|
129
|
-
readonly ppt: '.ppt'
|
|
130
|
-
readonly pptx: '.pptx'
|
|
131
|
-
readonly video: '.mp4'
|
|
132
|
-
readonly xls: '.xls'
|
|
133
|
-
readonly xlsx: '.xlsx'
|
|
134
|
-
readonly zip: '.zip .gz'
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
export declare const typesAreEqual: true
|
|
138
|
-
export {}
|
|
1
|
+
declare const mimeTypes: Readonly<{
|
|
2
|
+
readonly allFiles: '*/*'
|
|
3
|
+
readonly audio: 'audio/*'
|
|
4
|
+
readonly csv: 'text/csv'
|
|
5
|
+
readonly doc: 'application/msword'
|
|
6
|
+
readonly docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
|
|
7
|
+
readonly images: 'image/*'
|
|
8
|
+
readonly pdf: 'application/pdf'
|
|
9
|
+
readonly plainText: 'text/plain'
|
|
10
|
+
readonly ppt: 'application/vnd.ms-powerpoint'
|
|
11
|
+
readonly pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
|
|
12
|
+
readonly video: 'video/*'
|
|
13
|
+
readonly xls: 'application/vnd.ms-excel'
|
|
14
|
+
readonly xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
|
15
|
+
readonly zip: 'application/zip'
|
|
16
|
+
}>
|
|
17
|
+
declare const utis: Readonly<{
|
|
18
|
+
readonly allFiles: 'public.item'
|
|
19
|
+
readonly audio: 'public.audio'
|
|
20
|
+
readonly csv: 'public.comma-separated-values-text'
|
|
21
|
+
readonly doc: 'com.microsoft.word.doc'
|
|
22
|
+
readonly docx: 'org.openxmlformats.wordprocessingml.document'
|
|
23
|
+
readonly images: 'public.image'
|
|
24
|
+
readonly pdf: 'com.adobe.pdf'
|
|
25
|
+
readonly plainText: 'public.plain-text'
|
|
26
|
+
readonly ppt: 'com.microsoft.powerpoint.ppt'
|
|
27
|
+
readonly pptx: 'org.openxmlformats.presentationml.presentation'
|
|
28
|
+
readonly video: 'public.movie'
|
|
29
|
+
readonly xls: 'com.microsoft.excel.xls'
|
|
30
|
+
readonly xlsx: 'org.openxmlformats.spreadsheetml.sheet'
|
|
31
|
+
readonly zip: 'public.zip-archive'
|
|
32
|
+
}>
|
|
33
|
+
declare const extensions: Readonly<{
|
|
34
|
+
readonly allFiles: '*'
|
|
35
|
+
readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
|
|
36
|
+
readonly csv: '.csv'
|
|
37
|
+
readonly doc: '.doc'
|
|
38
|
+
readonly docx: '.docx'
|
|
39
|
+
readonly images: '.jpeg .jpg .png'
|
|
40
|
+
readonly pdf: '.pdf'
|
|
41
|
+
readonly plainText: '.txt'
|
|
42
|
+
readonly ppt: '.ppt'
|
|
43
|
+
readonly pptx: '.pptx'
|
|
44
|
+
readonly video: '.mp4'
|
|
45
|
+
readonly xls: '.xls'
|
|
46
|
+
readonly xlsx: '.xlsx'
|
|
47
|
+
readonly zip: '.zip .gz'
|
|
48
|
+
}>
|
|
49
|
+
export declare type PlatformTypes = {
|
|
50
|
+
android: typeof mimeTypes
|
|
51
|
+
ios: typeof utis
|
|
52
|
+
windows: typeof extensions
|
|
53
|
+
}
|
|
54
|
+
export declare type SupportedPlatforms = 'ios' | 'android' | 'windows'
|
|
55
|
+
export declare const perPlatformTypes: {
|
|
56
|
+
android: Readonly<{
|
|
57
|
+
readonly allFiles: '*/*'
|
|
58
|
+
readonly audio: 'audio/*'
|
|
59
|
+
readonly csv: 'text/csv'
|
|
60
|
+
readonly doc: 'application/msword'
|
|
61
|
+
readonly docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
|
|
62
|
+
readonly images: 'image/*'
|
|
63
|
+
readonly pdf: 'application/pdf'
|
|
64
|
+
readonly plainText: 'text/plain'
|
|
65
|
+
readonly ppt: 'application/vnd.ms-powerpoint'
|
|
66
|
+
readonly pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
|
|
67
|
+
readonly video: 'video/*'
|
|
68
|
+
readonly xls: 'application/vnd.ms-excel'
|
|
69
|
+
readonly xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
|
70
|
+
readonly zip: 'application/zip'
|
|
71
|
+
}>
|
|
72
|
+
ios: Readonly<{
|
|
73
|
+
readonly allFiles: 'public.item'
|
|
74
|
+
readonly audio: 'public.audio'
|
|
75
|
+
readonly csv: 'public.comma-separated-values-text'
|
|
76
|
+
readonly doc: 'com.microsoft.word.doc'
|
|
77
|
+
readonly docx: 'org.openxmlformats.wordprocessingml.document'
|
|
78
|
+
readonly images: 'public.image'
|
|
79
|
+
readonly pdf: 'com.adobe.pdf'
|
|
80
|
+
readonly plainText: 'public.plain-text'
|
|
81
|
+
readonly ppt: 'com.microsoft.powerpoint.ppt'
|
|
82
|
+
readonly pptx: 'org.openxmlformats.presentationml.presentation'
|
|
83
|
+
readonly video: 'public.movie'
|
|
84
|
+
readonly xls: 'com.microsoft.excel.xls'
|
|
85
|
+
readonly xlsx: 'org.openxmlformats.spreadsheetml.sheet'
|
|
86
|
+
readonly zip: 'public.zip-archive'
|
|
87
|
+
}>
|
|
88
|
+
windows: Readonly<{
|
|
89
|
+
readonly allFiles: '*'
|
|
90
|
+
readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
|
|
91
|
+
readonly csv: '.csv'
|
|
92
|
+
readonly doc: '.doc'
|
|
93
|
+
readonly docx: '.docx'
|
|
94
|
+
readonly images: '.jpeg .jpg .png'
|
|
95
|
+
readonly pdf: '.pdf'
|
|
96
|
+
readonly plainText: '.txt'
|
|
97
|
+
readonly ppt: '.ppt'
|
|
98
|
+
readonly pptx: '.pptx'
|
|
99
|
+
readonly video: '.mp4'
|
|
100
|
+
readonly xls: '.xls'
|
|
101
|
+
readonly xlsx: '.xlsx'
|
|
102
|
+
readonly zip: '.zip .gz'
|
|
103
|
+
}>
|
|
104
|
+
macos: Readonly<{
|
|
105
|
+
readonly allFiles: '*'
|
|
106
|
+
readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
|
|
107
|
+
readonly csv: '.csv'
|
|
108
|
+
readonly doc: '.doc'
|
|
109
|
+
readonly docx: '.docx'
|
|
110
|
+
readonly images: '.jpeg .jpg .png'
|
|
111
|
+
readonly pdf: '.pdf'
|
|
112
|
+
readonly plainText: '.txt'
|
|
113
|
+
readonly ppt: '.ppt'
|
|
114
|
+
readonly pptx: '.pptx'
|
|
115
|
+
readonly video: '.mp4'
|
|
116
|
+
readonly xls: '.xls'
|
|
117
|
+
readonly xlsx: '.xlsx'
|
|
118
|
+
readonly zip: '.zip .gz'
|
|
119
|
+
}>
|
|
120
|
+
web: Readonly<{
|
|
121
|
+
readonly allFiles: '*'
|
|
122
|
+
readonly audio: '.3g2 .3gp .aac .adt .adts .aif .aifc .aiff .asf .au .m3u .m4a .m4b .mid .midi .mp2 .mp3 .mp4 .rmi .snd .wav .wax .wma'
|
|
123
|
+
readonly csv: '.csv'
|
|
124
|
+
readonly doc: '.doc'
|
|
125
|
+
readonly docx: '.docx'
|
|
126
|
+
readonly images: '.jpeg .jpg .png'
|
|
127
|
+
readonly pdf: '.pdf'
|
|
128
|
+
readonly plainText: '.txt'
|
|
129
|
+
readonly ppt: '.ppt'
|
|
130
|
+
readonly pptx: '.pptx'
|
|
131
|
+
readonly video: '.mp4'
|
|
132
|
+
readonly xls: '.xls'
|
|
133
|
+
readonly xlsx: '.xlsx'
|
|
134
|
+
readonly zip: '.zip .gz'
|
|
135
|
+
}>
|
|
136
|
+
}
|
|
137
|
+
export declare const typesAreEqual: true
|
|
138
|
+
export {}
|
package/src/types/utility.ts
CHANGED
package/src/utils/OSAlert.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/* eslint no-restricted-imports: 'off' */
|
|
2
|
+
/* eslint prefer-const: 'off' */
|
|
2
3
|
import { Alert, AlertButton } from 'react-native'
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -13,16 +14,44 @@ import { Alert, AlertButton } from 'react-native'
|
|
|
13
14
|
* @property {function} run callback function to run on press
|
|
14
15
|
*/
|
|
15
16
|
|
|
16
|
-
type NativeAlertArgs = Parameters<typeof Alert.alert
|
|
17
|
+
type NativeAlertArgs = Parameters<typeof Alert.alert>
|
|
17
18
|
|
|
18
19
|
type OSAlertArgs = {
|
|
19
|
-
title: NativeAlertArgs['0']
|
|
20
|
-
body?: NativeAlertArgs['1']
|
|
21
|
-
options?: NativeAlertArgs['2']
|
|
22
|
-
}
|
|
23
|
-
type AlertEvent = AlertButton['onPress']
|
|
20
|
+
title: NativeAlertArgs['0']
|
|
21
|
+
body?: NativeAlertArgs['1']
|
|
22
|
+
options?: NativeAlertArgs['2']
|
|
23
|
+
}
|
|
24
|
+
type AlertEvent = AlertButton['onPress']
|
|
25
|
+
type OSAlertType = 'info' | 'error' | 'warn' | 'ask'
|
|
26
|
+
type NamedEvents<E extends string> = Partial<Record<E, AlertEvent>>
|
|
27
|
+
|
|
28
|
+
const currentAlerts = {
|
|
29
|
+
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function generateAlertID(from:OSAlertArgs & {type: OSAlertType}) {
|
|
33
|
+
return [
|
|
34
|
+
from.type,
|
|
35
|
+
from.title,
|
|
36
|
+
from.body,
|
|
37
|
+
].join('-')
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function shouldShowAlert(args:OSAlertArgs, type: OSAlertType) {
|
|
41
|
+
const alertId = generateAlertID({ ...args, type })
|
|
24
42
|
|
|
25
|
-
|
|
43
|
+
if (!Object.keys(currentAlerts).includes(alertId)) {
|
|
44
|
+
currentAlerts[alertId] = true
|
|
45
|
+
|
|
46
|
+
return alertId
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return ''
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function popAlert(id:string) {
|
|
53
|
+
delete currentAlerts[id]
|
|
54
|
+
}
|
|
26
55
|
|
|
27
56
|
function ask({ title, body, options = null }: OSAlertArgs) {
|
|
28
57
|
if (!title) {
|
|
@@ -35,12 +64,17 @@ function ask({ title, body, options = null }: OSAlertArgs) {
|
|
|
35
64
|
})
|
|
36
65
|
}
|
|
37
66
|
|
|
38
|
-
function warn({
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
67
|
+
function warn(args: OSAlertArgs & NamedEvents<'onReject' | 'onAccept'>) {
|
|
68
|
+
const id = shouldShowAlert(args, 'warn')
|
|
69
|
+
|
|
70
|
+
if (!id) return
|
|
71
|
+
let {
|
|
72
|
+
title,
|
|
73
|
+
body,
|
|
74
|
+
onAccept,
|
|
75
|
+
onReject,
|
|
76
|
+
} = args
|
|
77
|
+
|
|
44
78
|
if (!title) {
|
|
45
79
|
title = 'Hang on'
|
|
46
80
|
}
|
|
@@ -56,22 +90,33 @@ function warn({
|
|
|
56
90
|
options: [
|
|
57
91
|
{
|
|
58
92
|
text: 'Cancel',
|
|
59
|
-
onPress:
|
|
93
|
+
onPress: () => {
|
|
94
|
+
popAlert(id)
|
|
95
|
+
onReject()
|
|
96
|
+
},
|
|
60
97
|
},
|
|
61
98
|
{
|
|
62
99
|
text: 'OK',
|
|
63
100
|
style: 'destructive',
|
|
64
|
-
onPress:
|
|
101
|
+
onPress: () => {
|
|
102
|
+
popAlert(id)
|
|
103
|
+
onAccept?.()
|
|
104
|
+
},
|
|
65
105
|
},
|
|
66
106
|
],
|
|
67
107
|
})
|
|
68
108
|
}
|
|
69
109
|
|
|
70
|
-
function info({
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
110
|
+
function info(args: OSAlertArgs & NamedEvents<'onDismiss'>) {
|
|
111
|
+
const id = shouldShowAlert(args, 'info')
|
|
112
|
+
|
|
113
|
+
if (!id) return
|
|
114
|
+
let {
|
|
115
|
+
title,
|
|
116
|
+
body,
|
|
117
|
+
onDismiss = () => null,
|
|
118
|
+
} = args
|
|
119
|
+
|
|
75
120
|
if (!title) {
|
|
76
121
|
title = 'FYI'
|
|
77
122
|
}
|
|
@@ -81,17 +126,25 @@ function info({
|
|
|
81
126
|
options: [
|
|
82
127
|
{
|
|
83
128
|
text: 'OK',
|
|
84
|
-
onPress:
|
|
129
|
+
onPress: () => {
|
|
130
|
+
popAlert(id)
|
|
131
|
+
onDismiss?.()
|
|
132
|
+
},
|
|
85
133
|
},
|
|
86
134
|
],
|
|
87
135
|
})
|
|
88
136
|
}
|
|
89
137
|
|
|
90
|
-
function OSError({
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
138
|
+
function OSError(args: OSAlertArgs & NamedEvents<'onDismiss'>) {
|
|
139
|
+
const id = shouldShowAlert(args, 'error')
|
|
140
|
+
|
|
141
|
+
if (!id) return
|
|
142
|
+
|
|
143
|
+
let {
|
|
144
|
+
title,
|
|
145
|
+
body,
|
|
146
|
+
} = args
|
|
147
|
+
|
|
95
148
|
if (!title) {
|
|
96
149
|
title = 'Whoops!'
|
|
97
150
|
}
|
|
@@ -104,7 +157,10 @@ function OSError({
|
|
|
104
157
|
options: [
|
|
105
158
|
{
|
|
106
159
|
text: 'OK',
|
|
107
|
-
onPress: () =>
|
|
160
|
+
onPress: () => {
|
|
161
|
+
popAlert(id)
|
|
162
|
+
args?.onDismiss?.()
|
|
163
|
+
},
|
|
108
164
|
},
|
|
109
165
|
],
|
|
110
166
|
})
|
package/src/utils/misc.ts
CHANGED
|
@@ -8,7 +8,7 @@ export const stringToFile = (str: string): MobileInputFile => {
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
const fileData = parseFilePathData(str)
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
const data: MobileInputFile['file'] = {
|
|
13
13
|
name: fileData.name,
|
|
14
14
|
type: 'image/' + fileData.extension,
|
|
@@ -16,7 +16,7 @@ export const stringToFile = (str: string): MobileInputFile => {
|
|
|
16
16
|
uri: str,
|
|
17
17
|
fileCopyUri: str,
|
|
18
18
|
}
|
|
19
|
-
|
|
19
|
+
|
|
20
20
|
return {
|
|
21
21
|
file: data,
|
|
22
22
|
preview: data.uri,
|