@fto-consult/expo-ui 8.78.3 → 8.80.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/bin/create-app/dependencies.js +39 -37
- package/bin/create-app/eas.json +18 -18
- package/expo-ui.json +10 -10
- package/package.json +2 -4
- package/src/auth/Login.js +67 -60
- package/src/components/Chart/appexChart/appexChart.html +23 -23
@@ -1,38 +1,40 @@
|
|
1
|
-
|
2
|
-
module.exports = {
|
3
|
-
"@emotion/native": "^11.11.0",
|
4
|
-
"@expo/html-elements": "^0.5.1",
|
5
|
-
"@expo/vector-icons": "^14.0.0",
|
6
|
-
"@pchmn/expo-material3-theme": "^1.3.2",
|
7
|
-
"@react-native-community/netinfo": "11.1.0",
|
8
|
-
"@react-native/assets-registry": "^0.72.0",
|
9
|
-
"react-native-get-random-values": "~1.8.0",
|
10
|
-
"@react-navigation/native": "^6.1.17",
|
11
|
-
"@react-navigation/native-stack": "^6.9.26",
|
12
|
-
"@react-navigation/stack": "^6.3.29",
|
13
|
-
"@shopify/flash-list": "1.6.3",
|
14
|
-
"expo": "^50.0.17",
|
15
|
-
"expo-camera": "~14.1.3",
|
16
|
-
"expo-clipboard": "~5.0.1",
|
17
|
-
"expo-font": "~11.10.3",
|
18
|
-
"expo-image-picker": "~14.7.1",
|
19
|
-
"expo-linking": "~6.2.2",
|
20
|
-
"expo-sharing": "~11.10.0",
|
21
|
-
"expo-sqlite": "~13.4.0",
|
22
|
-
"expo-status-bar": "~1.11.1",
|
23
|
-
"expo-system-ui": "~2.9.4",
|
24
|
-
"expo-web-browser": "~12.8.2",
|
25
|
-
"react": "18.2.0",
|
26
|
-
"react-native": "0.73.6",
|
27
|
-
"react-native-safe-area-context": "4.8.2",
|
28
|
-
"react-native-screens": "~3.29.0",
|
29
|
-
"react-native-svg": "14.1.0",
|
30
|
-
"react-native-webview": "13.6.4",
|
31
|
-
"react-native-gesture-handler": "~2.14.0",
|
32
|
-
"react-native-reanimated": "~3.6.2",
|
33
|
-
"react-native-view-shot": "3.8.0",
|
34
|
-
"expo-intent-launcher": "~10.11.0",
|
35
|
-
"expo-image-manipulator": "~11.8.0",
|
36
|
-
"expo-document-picker": "~11.10.1"
|
37
|
-
|
1
|
+
|
2
|
+
module.exports = {
|
3
|
+
"@emotion/native": "^11.11.0",
|
4
|
+
"@expo/html-elements": "^0.5.1",
|
5
|
+
"@expo/vector-icons": "^14.0.0",
|
6
|
+
"@pchmn/expo-material3-theme": "^1.3.2",
|
7
|
+
"@react-native-community/netinfo": "11.1.0",
|
8
|
+
"@react-native/assets-registry": "^0.72.0",
|
9
|
+
"react-native-get-random-values": "~1.8.0",
|
10
|
+
"@react-navigation/native": "^6.1.17",
|
11
|
+
"@react-navigation/native-stack": "^6.9.26",
|
12
|
+
"@react-navigation/stack": "^6.3.29",
|
13
|
+
"@shopify/flash-list": "1.6.3",
|
14
|
+
"expo": "^50.0.17",
|
15
|
+
"expo-camera": "~14.1.3",
|
16
|
+
"expo-clipboard": "~5.0.1",
|
17
|
+
"expo-font": "~11.10.3",
|
18
|
+
"expo-image-picker": "~14.7.1",
|
19
|
+
"expo-linking": "~6.2.2",
|
20
|
+
"expo-sharing": "~11.10.0",
|
21
|
+
"expo-sqlite": "~13.4.0",
|
22
|
+
"expo-status-bar": "~1.11.1",
|
23
|
+
"expo-system-ui": "~2.9.4",
|
24
|
+
"expo-web-browser": "~12.8.2",
|
25
|
+
"react": "18.2.0",
|
26
|
+
"react-native": "0.73.6",
|
27
|
+
"react-native-safe-area-context": "4.8.2",
|
28
|
+
"react-native-screens": "~3.29.0",
|
29
|
+
"react-native-svg": "14.1.0",
|
30
|
+
"react-native-webview": "13.6.4",
|
31
|
+
"react-native-gesture-handler": "~2.14.0",
|
32
|
+
"react-native-reanimated": "~3.6.2",
|
33
|
+
"react-native-view-shot": "3.8.0",
|
34
|
+
"expo-intent-launcher": "~10.11.0",
|
35
|
+
"expo-image-manipulator": "~11.8.0",
|
36
|
+
"expo-document-picker": "~11.10.1",
|
37
|
+
"react-native-web": "~0.19.6",
|
38
|
+
"react-dom": "18.2.0"
|
39
|
+
};
|
38
40
|
|
package/bin/create-app/eas.json
CHANGED
@@ -1,18 +1,18 @@
|
|
1
|
-
{
|
2
|
-
"build": {
|
3
|
-
"development": {
|
4
|
-
"developmentClient": true,
|
5
|
-
"distribution": "internal"
|
6
|
-
},
|
7
|
-
"preview": {
|
8
|
-
"distribution": "internal",
|
9
|
-
"android": {
|
10
|
-
"buildType": "apk"
|
11
|
-
}
|
12
|
-
},
|
13
|
-
"production": {}
|
14
|
-
},
|
15
|
-
"submit": {
|
16
|
-
"production": {}
|
17
|
-
}
|
18
|
-
}
|
1
|
+
{
|
2
|
+
"build": {
|
3
|
+
"development": {
|
4
|
+
"developmentClient": true,
|
5
|
+
"distribution": "internal"
|
6
|
+
},
|
7
|
+
"preview": {
|
8
|
+
"distribution": "internal",
|
9
|
+
"android": {
|
10
|
+
"buildType": "apk"
|
11
|
+
}
|
12
|
+
},
|
13
|
+
"production": {}
|
14
|
+
},
|
15
|
+
"submit": {
|
16
|
+
"production": {}
|
17
|
+
}
|
18
|
+
}
|
package/expo-ui.json
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
{
|
2
|
-
"name": "@fto-consult/expo-ui",
|
3
|
-
"version": "6.44.4",
|
4
|
-
"description": "Bibliothèque de composants UI Expo,react-native",
|
5
|
-
"bin": {
|
6
|
-
"expo-ui": "./bin/index.js"
|
7
|
-
},
|
8
|
-
"author": "Boris Fouomene",
|
9
|
-
"license": "ISC",
|
10
|
-
"homepage": "https://github.com/borispipo/expo-ui#readme"
|
1
|
+
{
|
2
|
+
"name": "@fto-consult/expo-ui",
|
3
|
+
"version": "6.44.4",
|
4
|
+
"description": "Bibliothèque de composants UI Expo,react-native",
|
5
|
+
"bin": {
|
6
|
+
"expo-ui": "./bin/index.js"
|
7
|
+
},
|
8
|
+
"author": "Boris Fouomene",
|
9
|
+
"license": "ISC",
|
10
|
+
"homepage": "https://github.com/borispipo/expo-ui#readme"
|
11
11
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@fto-consult/expo-ui",
|
3
|
-
"version": "8.
|
3
|
+
"version": "8.80.0",
|
4
4
|
"description": "Bibliothèque de composants UI Expo,react-native",
|
5
5
|
"react-native-paper-doc": "https://github.com/callstack/react-native-paper/tree/main/docs/docs/guides",
|
6
6
|
"scripts": {
|
@@ -48,7 +48,7 @@
|
|
48
48
|
"delete-node-modules": "rimraf ./**/node_modules",
|
49
49
|
"dev": "npx expo start --no-dev --minify -c",
|
50
50
|
"modifier-url-remote-git": "git remote set-url origin 'https://borispipo@github.com/borispipo/smart-eneo.git'",
|
51
|
-
"update": "npm i @fto-consult/common@latest react-native-
|
51
|
+
"update": "npm i @fto-consult/common@latest react-native-big-list@latest apexcharts@latest file-saver@latest google-libphonenumber@latest react-native-iphone-x-helper@latest react-native-mime-types@latest react-native-paper@latest react-native-paper-dates@latest react-virtuoso@latest tippy.js@latest xlsx@latest && npm run update-apexchart && npm run find-licenses"
|
52
52
|
},
|
53
53
|
"bin": {
|
54
54
|
"expo-ui": "bin/index.js"
|
@@ -81,13 +81,11 @@
|
|
81
81
|
"jsbarcode": "^3.11.6",
|
82
82
|
"prop-types": "^15.8.1",
|
83
83
|
"react-content-loader": "^6.2.1",
|
84
|
-
"react-dom": "^18.2.0",
|
85
84
|
"react-native-big-list": "^1.6.1",
|
86
85
|
"react-native-iphone-x-helper": "^1.3.1",
|
87
86
|
"react-native-mime-types": "^2.5.0",
|
88
87
|
"react-native-paper": "^5.12.3",
|
89
88
|
"react-native-paper-dates": "^0.22.7",
|
90
|
-
"react-native-web": "^0.19.11",
|
91
89
|
"react-virtuoso": "^4.7.10",
|
92
90
|
"readable-stream": "^4.5.2",
|
93
91
|
"sanitize-filename": "^1.6.3",
|
package/src/auth/Login.js
CHANGED
@@ -15,7 +15,6 @@ import Label from "$ecomponents/Label";
|
|
15
15
|
import View from "$ecomponents/View";
|
16
16
|
import Avatar from "$ecomponents/Avatar";
|
17
17
|
import Surface from "$ecomponents/Surface";
|
18
|
-
import {Provider as DialogProvider} from "$ecomponents/Dialog";
|
19
18
|
import ScreenWithoutAuthContainer from "$escreen/ScreenWithoutAuthContainer";
|
20
19
|
import {getTitle} from "$escreens/Auth/utils";
|
21
20
|
import {isWeb} from "$cplatform";
|
@@ -34,7 +33,6 @@ export default function LoginComponent(props){
|
|
34
33
|
formName = React.useRef(uniqid(defaultStr(formName,"login-formname"))).current;
|
35
34
|
const nextButtonRef = React.useRef(null);
|
36
35
|
const previousButtonRef = React.useRef(null);
|
37
|
-
const dialogProviderRef = React.useRef(null);
|
38
36
|
const backgroundColor = theme.colors.surface;
|
39
37
|
const _getForm = x=> getForm(formName);
|
40
38
|
const isMounted = React.useIsMounted();
|
@@ -100,13 +98,6 @@ export default function LoginComponent(props){
|
|
100
98
|
return onStepChange({...state,previousStep:prevStep,focusField,nextButtonRef})
|
101
99
|
}
|
102
100
|
},[state.step]);
|
103
|
-
if(React.isComponent(Login)) return <Login
|
104
|
-
{...props}
|
105
|
-
withScreen = {withPortal}
|
106
|
-
appBarProps = {appBarProps}
|
107
|
-
onSuccess = {onSuccess}
|
108
|
-
auth = {auth}
|
109
|
-
/>
|
110
101
|
const getButtonAction = React.useMemo(()=>{
|
111
102
|
return (buttonRef)=>{
|
112
103
|
buttonRef = buttonRef || React.createRef();
|
@@ -166,17 +157,27 @@ export default function LoginComponent(props){
|
|
166
157
|
})
|
167
158
|
}
|
168
159
|
}
|
169
|
-
const
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
160
|
+
const mediaQueryUpdateStyle = ()=>{
|
161
|
+
return StyleSheet.flatten([updateMediaQueryStyle()]);
|
162
|
+
};
|
163
|
+
const withScrollView = typeof customWithScrollView =='boolean'? customWithScrollView : true;
|
164
|
+
const Wrapper = withPortal ? ScreenWithoutAuthContainer : withScrollView ? ScrollView: View;
|
165
|
+
if(React.isComponent(Login)) return <Login
|
166
|
+
{...props}
|
167
|
+
withScreen = {withPortal}
|
168
|
+
withScrollView = {withScrollView}
|
169
|
+
Wrapper = {Wrapper}
|
170
|
+
wrapperProps = {withPortal ? {appBarProps,authRequired:false,title:loginTitle,withScrollView} : {style:[styles.wrapper]}}
|
171
|
+
appBarProps = {appBarProps}
|
172
|
+
onSuccess = {onSuccess}
|
173
|
+
auth = {auth}
|
174
|
+
mediaQueryUpdateStyle={mediaQueryUpdateStyle}
|
175
|
+
/>
|
176
|
+
const callArgs = {
|
177
177
|
...state,
|
178
178
|
getButtonAction,
|
179
179
|
data : getData(),
|
180
|
+
mediaQueryUpdateStyle,
|
180
181
|
signIn,
|
181
182
|
setState,
|
182
183
|
setIsLoading,
|
@@ -194,7 +195,15 @@ export default function LoginComponent(props){
|
|
194
195
|
nextButtonRef,
|
195
196
|
ProviderSelector,
|
196
197
|
previousButtonRef,
|
197
|
-
}
|
198
|
+
};
|
199
|
+
const {header : Header,
|
200
|
+
headerTopContent:HeaderTopContent,
|
201
|
+
containerProps : customContainerProps,
|
202
|
+
contentProps : customContentProps,
|
203
|
+
formProps,
|
204
|
+
wrapperProps : cWrapperProps,
|
205
|
+
title : customTitle,
|
206
|
+
withScrollView:customWithScrollView,children,initialize,renderNextButton,renderPreviousButton,data:loginData,canGoToNext,keyboardEvents,onSuccess:onLoginSuccess,beforeSubmit:beforeSubmitForm,canSubmit:canSubmitForm,onStepChange,...loginProps} = loginPropsMutator(callArgs);
|
198
207
|
if(isNonNullString(customTitle)){
|
199
208
|
loginTitle = customTitle;
|
200
209
|
}
|
@@ -256,20 +265,16 @@ export default function LoginComponent(props){
|
|
256
265
|
}
|
257
266
|
}
|
258
267
|
});
|
259
|
-
|
260
|
-
|
261
|
-
const
|
262
|
-
return StyleSheet.flatten([updateMediaQueryStyle(),contentProps.style]);
|
263
|
-
};
|
264
|
-
const wProps = defaultObj(typeof cWrapperProps =="function"? cWrapperProps({...state,setState,formName,state,withPortal,withScreen:withPortal,withScrollView,state,formName}) : cWrapperProps);
|
268
|
+
|
269
|
+
|
270
|
+
const wProps = defaultObj(typeof cWrapperProps =="function"? cWrapperProps({...callArgs,withPortal,withScreen:withPortal,withScrollView,state,formName}) : cWrapperProps);
|
265
271
|
const wrapperProps = withPortal ? {appBarProps,authRequired:false,title:loginTitle,withScrollView,...wProps} : { ...wProps,style:[styles.wrapper,wProps.style]};
|
266
272
|
const sH = React.isComponent(HeaderTopContent)? <HeaderTopContent mediaQueryUpdateStyle = {mediaQueryUpdateStyle} /> : React.isValidElement(HeaderTopContent)? HeaderTopContent : null;
|
267
273
|
const header = React.isComponent(Header) ? <Header mediaQueryUpdateStyle = {mediaQueryUpdateStyle}/> : React.isValidElement(Header)? Header : null;
|
268
274
|
return <Wrapper testID = {testID+"_Wrapper" }{...wrapperProps}>
|
269
|
-
<DialogProvider ref={dialogProviderRef}/>
|
270
275
|
{sH}
|
271
|
-
<Surface {...containerProps} {...defaultObj(loginProps?.containerProps)} style={[styles.container,{backgroundColor},containerProps.style,loginProps?.containerProps?.style]} testID={testID}>
|
272
|
-
<Surface elevation = {0} {...contentProps} mediaQueryUpdateStyle = {mediaQueryUpdateStyle} {...contentProps} testID={testID+"
|
276
|
+
<Surface {...containerProps} {...defaultObj(loginProps?.containerProps)} style={[styles.container,{backgroundColor},containerProps.style,loginProps?.containerProps?.style]} testID={testID+"_LoginContainer"}>
|
277
|
+
<Surface elevation = {0} {...contentProps} mediaQueryUpdateStyle = {mediaQueryUpdateStyle} {...contentProps} testID={testID+"_LoginContent"} style={[styles.content,{backgroundColor},contentProps.style]}>
|
273
278
|
<FormData
|
274
279
|
formName = {formName}
|
275
280
|
testID = {testID+"_FormData"}
|
@@ -291,44 +296,46 @@ export default function LoginComponent(props){
|
|
291
296
|
data = {extendObj(state.data,loginData)}
|
292
297
|
>
|
293
298
|
<>
|
294
|
-
{React.isValidElement(contentTop)? contentTop : null}
|
295
299
|
{renderNextButton !== false || renderPreviousButton !== false ? <>
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
300
|
+
{hasLoginFields?<View testID={testID+"_ButtonsContainer"} style={[styles.buttonWrapper]}>
|
301
|
+
{renderNextButton !== false ? <Action
|
302
|
+
ref = {nextButtonRef}
|
303
|
+
primary
|
304
|
+
formName={formName}
|
305
|
+
mode = "contained"
|
306
|
+
rounded
|
307
|
+
style = {styles.button}
|
308
|
+
onPress = {goToNext}
|
309
|
+
icon = {state.step == 1? 'arrow-right':'login'}
|
310
|
+
surface
|
311
|
+
testID = {testID+"_NextButton"}
|
312
|
+
>
|
313
|
+
{state.step == 1? 'Suivant' : 'Connexion' }
|
314
|
+
</Action> : null}
|
315
|
+
{renderPreviousButton !== false && state.step>=2 ? <Button
|
316
|
+
onPress = {goToFirstStep}
|
317
|
+
ref = {previousButtonRef}
|
318
|
+
mode = "contained"
|
319
|
+
rounded
|
320
|
+
raised
|
321
|
+
style = {styles.button}
|
322
|
+
secondary
|
323
|
+
surface
|
324
|
+
icon = {'arrow-left'}
|
325
|
+
testID = {testID+"_PrevButton"}
|
326
|
+
>
|
327
|
+
Précédent
|
328
|
+
</Button> : null}
|
329
|
+
</View> : null}
|
330
|
+
</> : null}
|
331
|
+
{React.isValidElement(children) ? children : null}
|
327
332
|
</>
|
328
333
|
</FormData>
|
329
|
-
|
334
|
+
{React.isValidElement(contentProps.children) ? contentProps.children : null}
|
330
335
|
</Surface>
|
336
|
+
{React.isValidElement(containerProps.children) ? containerProps.children : null}
|
331
337
|
</Surface>
|
338
|
+
{React.isValidElement(wrapperProps.children) ? wrapperProps.children : null}
|
332
339
|
</Wrapper>;
|
333
340
|
}
|
334
341
|
|