@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.
@@ -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
 
@@ -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.78.3",
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-web 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"
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 {header : Header,
170
- headerTopContent:HeaderTopContent,
171
- containerProps : customContainerProps,
172
- contentProps : customContentProps,
173
- formProps,
174
- wrapperProps : cWrapperProps,
175
- title : customTitle,
176
- withScrollView:customWithScrollView,children,initialize,contentTop,renderNextButton,renderPreviousButton,data:loginData,canGoToNext,keyboardEvents,onSuccess:onLoginSuccess,beforeSubmit:beforeSubmitForm,canSubmit:canSubmitForm,onStepChange,...loginProps} = loginPropsMutator({
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
- const withScrollView = typeof customWithScrollView =='boolean'? customWithScrollView : true;
260
- const Wrapper = withPortal ? ScreenWithoutAuthContainer : withScrollView ? ScrollView: View;
261
- const mediaQueryUpdateStyle = (a)=>{
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+"_Content"} style={[styles.content,{backgroundColor},contentProps.style]}>
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
- {hasLoginFields?<View testID={testID+"_ButtonsContainer"} style={[styles.buttonWrapper]}>
297
- {renderNextButton !== false ? <Action
298
- ref = {nextButtonRef}
299
- primary
300
- formName={formName}
301
- mode = "contained"
302
- rounded
303
- style = {styles.button}
304
- onPress = {goToNext}
305
- icon = {state.step == 1? 'arrow-right':'login'}
306
- surface
307
- testID = {testID+"_NextButton"}
308
- >
309
- {state.step == 1? 'Suivant' : 'Connexion' }
310
- </Action> : null}
311
- {renderPreviousButton !== false && state.step>=2 ? <Button
312
- onPress = {goToFirstStep}
313
- ref = {previousButtonRef}
314
- mode = "contained"
315
- rounded
316
- raised
317
- style = {styles.button}
318
- secondary
319
- surface
320
- icon = {'arrow-left'}
321
- testID = {testID+"_PrevButton"}
322
- >
323
- Précédent
324
- </Button> : null}
325
- </View> : null}
326
- </> : null}
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
- {React.isValidElement(children) ? children : null}
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