@fto-consult/expo-ui 6.0.1 → 6.1.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/babel.config.js +63 -64
- package/package.json +4 -4
- package/src/auth/avatarProps/index.js +1 -1
- package/src/components/AppBar/Content.js +4 -4
- package/src/components/AppBar/index.js +39 -18
- package/src/components/BackHandler/index.android.js +3 -0
- package/src/components/BackHandler/index.js +23 -0
- package/src/components/BottomSheet/Sheet.js +1 -2
- package/src/components/Button/index.js +3 -3
- package/src/components/Checkbox/index.js +2 -3
- package/src/components/Chip/index.js +5 -5
- package/src/components/Color/ColorPicker.js +7 -7
- package/src/components/Color/index.js +5 -5
- package/src/components/Countries/Flag.js +1 -1
- package/src/components/Countries/SelectCountry.js +1 -1
- package/src/components/Datagrid/Common/Common.js +0 -1
- package/src/components/Datagrid/Common/utils.js +1 -2
- package/src/components/Date/DatePickerInput/index.js +4 -4
- package/src/components/Date/Time.js +3 -3
- package/src/components/Dialog/confirm/showConfirmOrAlertOrPrompt.js +1 -1
- package/src/components/DragResize/DragResizeBlock.js +3 -3
- package/src/components/Drawer/DrawerItems/_DrawerItem.js +1 -1
- package/src/components/Dropdown/index.js +9 -17
- package/src/components/Expandable/index.js +1 -1
- package/src/components/Fab/GroupComponent.js +4 -5
- package/src/components/Filter/BetweenComponent.js +1 -1
- package/src/components/Filter/index.js +1 -1
- package/src/components/Form/Fields/Field.js +7 -16
- package/src/components/Form/Fields/{IDField.js → IdField.js} +1 -1
- package/src/components/Form/Fields/SelectTableData/Component.js +1 -1
- package/src/components/Form/FormData/FormData.js +1 -1
- package/src/components/Form/List/List.js +15 -15
- package/src/components/Grid/Cell.js +1 -1
- package/src/components/HeavyScreen/index.js +5 -8
- package/src/components/Icon/Icon.js +13 -5
- package/src/components/Icon/IconButton.js +1 -1
- package/src/components/Image/index.js +6 -7
- package/src/components/Label/index.js +4 -4
- package/src/components/Menu/Item.js +1 -1
- package/src/components/Menu/Menu.js +2 -2
- package/src/components/Menu/index.js +2 -2
- package/src/components/Modal/index.js +3 -3
- package/src/components/PhoneInput/index.js +3 -3
- package/src/components/Radio/index.js +2 -3
- package/src/components/SelectCurrency/Format.js +3 -4
- package/src/components/SelectCurrency/index.js +3 -3
- package/src/components/SimpleSelect/index.js +6 -9
- package/src/components/Slider/index.js +2 -3
- package/src/components/Snackbar/index.js +1 -1
- package/src/components/SplashScreen/index.js +1 -1
- package/src/components/Switch/index.js +3 -4
- package/src/components/Tab/TabItem.js +1 -1
- package/src/components/TextField/index.js +17 -20
- package/src/components/Tooltip/Popover/index.web.js +1 -1
- package/src/components/Tooltip/index.js +1 -1
- package/src/index.js +2 -1
- package/src/layouts/ProfilAvatar/index.js +2 -2
- package/src/layouts/Screen/ScreenWithOrWithoutAuthContainer.js +1 -1
- package/src/layouts/Screen/TableData.js +1 -1
- package/src/screens/ScreenWrapper.js +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from "$react";
|
|
2
2
|
import {
|
|
3
|
-
BackHandler,
|
|
4
3
|
StyleSheet,
|
|
5
4
|
View,
|
|
6
5
|
TouchableWithoutFeedback,
|
|
7
6
|
} from 'react-native';
|
|
7
|
+
import BackHandler from "$ecomponents/BackHandler";
|
|
8
8
|
import PropTypes from "prop-types";
|
|
9
9
|
import theme,{StyleProp} from "$theme";
|
|
10
10
|
//import Animated from "react-native-reanimated";
|
|
@@ -108,7 +108,7 @@ const ModalComponent = React.forwardRef((props,ref)=>{
|
|
|
108
108
|
{...rest}
|
|
109
109
|
pointerEvents={visible ? 'auto' : 'none'}
|
|
110
110
|
accessibilityViewIsModal
|
|
111
|
-
|
|
111
|
+
role="polite"
|
|
112
112
|
onAccessibilityEscape={hideModal}
|
|
113
113
|
style = {[styles.modal,rest.style]}
|
|
114
114
|
animationType = {animationType}
|
|
@@ -117,7 +117,7 @@ const ModalComponent = React.forwardRef((props,ref)=>{
|
|
|
117
117
|
>
|
|
118
118
|
<TouchableWithoutFeedback
|
|
119
119
|
accessibilityLabel={overlayAccessibilityLabel}
|
|
120
|
-
|
|
120
|
+
role="button"
|
|
121
121
|
disabled={!dismissable}
|
|
122
122
|
onPress={dismissable ? hideModal : undefined}
|
|
123
123
|
importantForAccessibility="no"
|
|
@@ -125,7 +125,7 @@ export default function PhoneInputComponent(props){
|
|
|
125
125
|
setState(nState);
|
|
126
126
|
return nState;
|
|
127
127
|
}
|
|
128
|
-
const pointerEvents = props.disabled || props.
|
|
128
|
+
const pointerEvents = props.disabled || props.readOnly ? "none":"auto";
|
|
129
129
|
const isFlatMode = theme.textFieldMode === flatMode;
|
|
130
130
|
testID = defaultStr(testID,"RN_PhoneInputComponent");
|
|
131
131
|
return <SelectCountry
|
|
@@ -163,7 +163,7 @@ export default function PhoneInputComponent(props){
|
|
|
163
163
|
pointerEvents = {pointerEvents}
|
|
164
164
|
left = {
|
|
165
165
|
<TouchableOpacity testID={testID+"_Left"} style={[styles.flag,disabledStyle,!isFlatMode && styles.notFlatModeFlag]}
|
|
166
|
-
|
|
166
|
+
role="button"
|
|
167
167
|
disabled = {props.disabled}
|
|
168
168
|
pointerEvents = {pointerEvents}
|
|
169
169
|
onPress={onPressFlag}
|
|
@@ -175,7 +175,7 @@ export default function PhoneInputComponent(props){
|
|
|
175
175
|
</>
|
|
176
176
|
</TouchableOpacity>
|
|
177
177
|
}
|
|
178
|
-
|
|
178
|
+
inputMode ={keyboardTypes.number}
|
|
179
179
|
defaultValue = {state.displayValue}
|
|
180
180
|
onChange = {(args)=>{
|
|
181
181
|
const {value:nValue} = args;
|
|
@@ -37,7 +37,6 @@ const RadioComponent = React.forwardRef((props,ref)=>{
|
|
|
37
37
|
labelStyle,
|
|
38
38
|
helperText,
|
|
39
39
|
position,
|
|
40
|
-
editable,
|
|
41
40
|
disabled,
|
|
42
41
|
readOnly,
|
|
43
42
|
primaryOnCheck,
|
|
@@ -45,7 +44,7 @@ const RadioComponent = React.forwardRef((props,ref)=>{
|
|
|
45
44
|
...p
|
|
46
45
|
} = props;
|
|
47
46
|
disabled = defaultBool(disabled,false);
|
|
48
|
-
const isEditable = !disabled && readOnly !== true
|
|
47
|
+
const isEditable = !disabled && readOnly !== true ? true : false;
|
|
49
48
|
const pointerEvents = isEditable ? "auto" : "none";
|
|
50
49
|
p = defaultObj(p);
|
|
51
50
|
checkedValue = defaultVal(checkedValue,1);
|
|
@@ -117,7 +116,7 @@ const RadioComponent = React.forwardRef((props,ref)=>{
|
|
|
117
116
|
Component = {RadioButton.Item}
|
|
118
117
|
{...p}
|
|
119
118
|
disabled = {disabled}
|
|
120
|
-
|
|
119
|
+
readOnly = {!isEditable}
|
|
121
120
|
pointerEvents = {pointerEvents}
|
|
122
121
|
style = {[styles.checkbox,style]}
|
|
123
122
|
position = {position}
|
|
@@ -8,8 +8,8 @@ import {isNonNullString,defaultStr} from "$cutils";
|
|
|
8
8
|
import Icon from "$ecomponents/Icon";
|
|
9
9
|
import {styles} from "$theme";
|
|
10
10
|
|
|
11
|
-
const CurrencyFormat = React.forwardRef(({disabled,readOnly,right,isFilter
|
|
12
|
-
const isEditable = disabled !== true && readOnly !== true
|
|
11
|
+
const CurrencyFormat = React.forwardRef(({disabled,readOnly,right,isFilter,...props},ref)=>{
|
|
12
|
+
const isEditable = disabled !== true && readOnly !== true;
|
|
13
13
|
const defaultValue = isNonNullString(props.defaultValue) && props.defaultValue.contains("v" && props.defaultValue) && props.defaultValue || defaultStr(appConfig.currencyFormat,"%v %s");
|
|
14
14
|
const title = "Format d'affichage des valeurs numériques : une chaine de caractère constituée des lettre %v et %s où %v représente la valeur du montant et %s représente la devise : exemple %s%v => $10 et %v %s => 10 $";
|
|
15
15
|
return <TextField
|
|
@@ -17,8 +17,7 @@ const CurrencyFormat = React.forwardRef(({disabled,readOnly,right,isFilter,edita
|
|
|
17
17
|
enableCopy = {false}
|
|
18
18
|
{...props}
|
|
19
19
|
disabled = {disabled}
|
|
20
|
-
readOnly = {readOnly}
|
|
21
|
-
editable = {isEditable}
|
|
20
|
+
readOnly = {readOnly || !isEditable}
|
|
22
21
|
defaultValue = {defaultValue}
|
|
23
22
|
right = {!isEditable || isFilter ? right : (rP)=>{
|
|
24
23
|
const r = typeof right =='function'? right(rP) : right;
|
|
@@ -18,8 +18,8 @@ CurrencySelector.Format = Format;
|
|
|
18
18
|
|
|
19
19
|
export default CurrencySelector;
|
|
20
20
|
|
|
21
|
-
export const selectCurrencyFieldProps = ({disabled,readOnly,isFilter
|
|
22
|
-
const isEditable = disabled !== true && readOnly !== true
|
|
21
|
+
export const selectCurrencyFieldProps = ({disabled,readOnly,isFilter,...props})=>{
|
|
22
|
+
const isEditable = disabled !== true && readOnly !== true;
|
|
23
23
|
const currency = appConfig.currency;
|
|
24
24
|
return {
|
|
25
25
|
items : currencies,
|
|
@@ -31,7 +31,7 @@ export const selectCurrencyFieldProps = ({disabled,readOnly,isFilter,editable,..
|
|
|
31
31
|
...props,
|
|
32
32
|
isFilter,
|
|
33
33
|
disabled : !isEditable,
|
|
34
|
-
|
|
34
|
+
readOnly : readOnly || !isEditable,
|
|
35
35
|
type : 'select',
|
|
36
36
|
}
|
|
37
37
|
}
|
|
@@ -16,7 +16,7 @@ import { matchOperators,getSearchTimeout,canAutoFocusSearchField} from "$ecompon
|
|
|
16
16
|
import Dialog from "$ecomponents/Dialog";
|
|
17
17
|
|
|
18
18
|
const SimpleSelect = React.forwardRef((props,ref)=>{
|
|
19
|
-
let {style : customStyle,onMount,mode,showSearch,anchorContainerProps,renderText,contentContainerProps,withCheckedIcon,testID,selectionColor,dialogProps,onShow,anchor,onUnmont,controlled:cr,onDismiss,visible:controlledVisible,selectedColor,inputProps,itemProps,itemContainerProps,label,listProps,
|
|
19
|
+
let {style : customStyle,onMount,mode,showSearch,anchorContainerProps,renderText,contentContainerProps,withCheckedIcon,testID,selectionColor,dialogProps,onShow,anchor,onUnmont,controlled:cr,onDismiss,visible:controlledVisible,selectedColor,inputProps,itemProps,itemContainerProps,label,listProps,readOnly,text,filter,renderItem,itemValue,getItemValue,defaultValue,items:menuItems,onPress,onChange,disabled,...rest} = props;
|
|
20
20
|
const flattenStyle = StyleSheet.flatten(customStyle) || {};
|
|
21
21
|
const controlledRef = React.useRef(typeof controlledVisible ==='boolean'? true : false);
|
|
22
22
|
const controlled = controlledRef.current;
|
|
@@ -127,7 +127,7 @@ const SimpleSelect = React.forwardRef((props,ref)=>{
|
|
|
127
127
|
}
|
|
128
128
|
},[value]);
|
|
129
129
|
const [canEdit,setCanEdit] = React.useState(true);
|
|
130
|
-
const isEditable = canEdit && !disabled && !readOnly
|
|
130
|
+
const isEditable = canEdit && !disabled && !readOnly ? true : false;
|
|
131
131
|
const pointerEvents = isEditable ? "auto" : "none";
|
|
132
132
|
const isMob = !isDesktopMedia();
|
|
133
133
|
const prevIsMob = React.usePrevious(isMob);
|
|
@@ -231,7 +231,6 @@ const SimpleSelect = React.forwardRef((props,ref)=>{
|
|
|
231
231
|
label : defaultVal(label,text,inputProps.label),
|
|
232
232
|
disabled,
|
|
233
233
|
readOnly,
|
|
234
|
-
editable : false,
|
|
235
234
|
pointerEvents,
|
|
236
235
|
value,
|
|
237
236
|
autoHeight : false,
|
|
@@ -247,13 +246,12 @@ const SimpleSelect = React.forwardRef((props,ref)=>{
|
|
|
247
246
|
{...rest}
|
|
248
247
|
{...inputProps}
|
|
249
248
|
label = {defaultVal(label,text,inputProps.label)}
|
|
250
|
-
|
|
249
|
+
readOnly = {typeof readOnly ==='boolean'? readOnly : true}
|
|
251
250
|
disabled = {disabled}
|
|
252
|
-
readOnly = {readOnly}
|
|
253
251
|
defaultValue = {selectedObj.textContent}
|
|
254
252
|
/>
|
|
255
253
|
const inputRef = React.useRef(null);
|
|
256
|
-
const canFilter = !props.disabled && !props.readOnly &&
|
|
254
|
+
const canFilter = !props.disabled && !props.readOnly && visible;
|
|
257
255
|
const [filterText,setFilterText] = React.useState("");
|
|
258
256
|
let filterRegex = undefined;
|
|
259
257
|
if(canFilter && isNonNullString(filterText)){
|
|
@@ -261,7 +259,6 @@ const SimpleSelect = React.forwardRef((props,ref)=>{
|
|
|
261
259
|
}
|
|
262
260
|
const textInputProps = {
|
|
263
261
|
disabled : props.disabled,
|
|
264
|
-
editable : props.editable,
|
|
265
262
|
readOnly : props.readOnly,
|
|
266
263
|
label : props.label,
|
|
267
264
|
mode:flatMode,
|
|
@@ -281,7 +278,7 @@ const SimpleSelect = React.forwardRef((props,ref)=>{
|
|
|
281
278
|
const autoFocus = canAutoFocusSearchField({visible,items:renderingItems});
|
|
282
279
|
testID = defaultStr(testID, "RN_SimpleSelectComponent");
|
|
283
280
|
anchor = <TouchableOpacity
|
|
284
|
-
|
|
281
|
+
role="button"
|
|
285
282
|
activeOpacity={0.3}
|
|
286
283
|
testID = {testID}
|
|
287
284
|
{...defaultObj(anchorContainerProps)}
|
|
@@ -308,7 +305,7 @@ const SimpleSelect = React.forwardRef((props,ref)=>{
|
|
|
308
305
|
visible = {visible}
|
|
309
306
|
onDismiss={close}
|
|
310
307
|
disabled = {!isEditable}
|
|
311
|
-
|
|
308
|
+
readOnly = {readOnly === true? true : false}
|
|
312
309
|
style = {[{marginTop}]}
|
|
313
310
|
anchor = {anchor}
|
|
314
311
|
contentProps = {{style:{flex:1}}}
|
|
@@ -31,7 +31,6 @@ const SliderComponent = React.forwardRef((props,ref)=>{
|
|
|
31
31
|
renderValue,
|
|
32
32
|
step,
|
|
33
33
|
percentage,
|
|
34
|
-
editable,
|
|
35
34
|
disabled,
|
|
36
35
|
readOnly,
|
|
37
36
|
...p
|
|
@@ -39,7 +38,7 @@ const SliderComponent = React.forwardRef((props,ref)=>{
|
|
|
39
38
|
p = defaultObj(p);
|
|
40
39
|
disabled = defaultBool(disabled,false);
|
|
41
40
|
readOnly = defaultBool(readOnly,false);
|
|
42
|
-
const isEditable = !disabled && !readOnly
|
|
41
|
+
const isEditable = !disabled && !readOnly ? true : false;
|
|
43
42
|
const pointerEvents = isEditable ? "auto" : "none";
|
|
44
43
|
containerProps = defaultObj(containerProps);
|
|
45
44
|
valueProps = defaultObj(valueProps);
|
|
@@ -95,7 +94,7 @@ const SliderComponent = React.forwardRef((props,ref)=>{
|
|
|
95
94
|
<Slider
|
|
96
95
|
{...p}
|
|
97
96
|
disabled = {disabled}
|
|
98
|
-
|
|
97
|
+
readOnly = {readOnly || !isEditable}
|
|
99
98
|
thumbTintColor = {Colors.isValid(p.thumbTintColor)? p.thumbTintColor:tinColor}
|
|
100
99
|
minimumTrackTintColor = {Colors.isValid(p.minimumTrackTintColor)
|
|
101
100
|
?p.minimumTrackTintColor:tinColor}
|
|
@@ -101,7 +101,7 @@ const SplashScreenComponent = ({isLoaded,children , duration, delay,logoWidth,lo
|
|
|
101
101
|
}
|
|
102
102
|
const child = (animationDone && isLoaded)? React.isValidElement(children) && children : null;
|
|
103
103
|
return (
|
|
104
|
-
<View style={[styles.container]} testID={testID}
|
|
104
|
+
<View style={[styles.container]} testID={testID} id={testID}>
|
|
105
105
|
{!animationDone && <View style={StyleSheet.absoluteFill} testID={testID+"_Animation"}/>}
|
|
106
106
|
<View style={styles.containerGlue}>
|
|
107
107
|
{!animationDone && (
|
|
@@ -39,7 +39,6 @@ const SwitchComponent = React.forwardRef((props,ref)=>{
|
|
|
39
39
|
checked,
|
|
40
40
|
testID,
|
|
41
41
|
title,
|
|
42
|
-
editable,
|
|
43
42
|
disabled,
|
|
44
43
|
readOnly,
|
|
45
44
|
right,
|
|
@@ -50,7 +49,7 @@ const SwitchComponent = React.forwardRef((props,ref)=>{
|
|
|
50
49
|
} = props;
|
|
51
50
|
p = defaultObj(p);
|
|
52
51
|
disabled = defaultBool(disabled,false);
|
|
53
|
-
const isEditable = !disabled && readOnly !== true
|
|
52
|
+
const isEditable = !disabled && readOnly !== true ? true : false;
|
|
54
53
|
const pointerEvents = isEditable ? "auto" : "none";
|
|
55
54
|
checkedValue = defaultVal(onValue,checkedValue,1);
|
|
56
55
|
uncheckedValue = defaultVal(offValue,uncheckedValue,0);
|
|
@@ -105,7 +104,7 @@ const SwitchComponent = React.forwardRef((props,ref)=>{
|
|
|
105
104
|
const disabledStyle = undefined;//disabled ? {opacity : DISABLED_OPACITY} : undefined;
|
|
106
105
|
const sw = <Switch
|
|
107
106
|
disabled = {disabled}
|
|
108
|
-
|
|
107
|
+
readOnly = {readOnly || !isEditable}
|
|
109
108
|
pointerEvents={pointerEvents}
|
|
110
109
|
style = {[{paddingHorizontal:0,['margin'+(isLeftPosition?'Right':'Left')]:10},style,disabledStyle]}
|
|
111
110
|
value = {isSwitchOn}
|
|
@@ -116,7 +115,7 @@ const SwitchComponent = React.forwardRef((props,ref)=>{
|
|
|
116
115
|
{...p}
|
|
117
116
|
tooltip={tooltip}
|
|
118
117
|
accessibilityLabel={label}
|
|
119
|
-
|
|
118
|
+
role="switch"
|
|
120
119
|
disabled = {!isEditable}
|
|
121
120
|
pointerEvents = {pointerEvents}
|
|
122
121
|
accessibilityState={{checked:isSwitchOn}}
|
|
@@ -44,7 +44,7 @@ const TabItemComponentNotThemed = ({
|
|
|
44
44
|
const isIconTop = iconPosition =='top'? true : false;
|
|
45
45
|
|
|
46
46
|
return (<TouchableRipple
|
|
47
|
-
|
|
47
|
+
role="tab"
|
|
48
48
|
accessibilityState={{ selected: active }}
|
|
49
49
|
accessibilityValue={
|
|
50
50
|
typeof label === 'string' ? { text: label } : undefined
|
|
@@ -33,11 +33,11 @@ const isIos = _isIos();
|
|
|
33
33
|
const TextFieldComponent = React.forwardRef((componentProps,inputRef)=>{
|
|
34
34
|
let {defaultValue,toCase:toCustomCase,color,validType,validRule,placeholder,outlined,placeholderColor,
|
|
35
35
|
label,labelProps,labelStyle,fontSize,containerProps,selection,roundness,
|
|
36
|
-
autoCapitalize,disabled,
|
|
36
|
+
autoCapitalize,disabled,readOnly,elevation,divider,render,
|
|
37
37
|
leftContainerProps,left,right,rightContainerProps,rows,
|
|
38
38
|
emptyValue,usePlaceholderWhenEmpty,
|
|
39
39
|
numberOfLines,mode,selectionColor,activeOutlineColor,multiline
|
|
40
|
-
,underlineColor,alwaysUseLabel,activeUnderlineColor,autoHeight,multiple,
|
|
40
|
+
,underlineColor,alwaysUseLabel,activeUnderlineColor,autoHeight,multiple,inputMode,setRef,type,error,
|
|
41
41
|
style,maxLength,length,affixStyle,affix,helperText, upperCase,
|
|
42
42
|
upper,onChangeText,onChange,onMount,onUnmount,
|
|
43
43
|
format ,
|
|
@@ -97,32 +97,29 @@ const TextFieldComponent = React.forwardRef((componentProps,inputRef)=>{
|
|
|
97
97
|
if(type =="pass") type = "password";
|
|
98
98
|
const ref = React.useRef(null);
|
|
99
99
|
disabled = defaultBool(disabled,false);
|
|
100
|
-
editable = defaultBool(editable,true);
|
|
101
100
|
readOnly = defaultBool(readOnly,false);
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
const isEditable = !disabled && !readOnly && editable !== false;
|
|
106
|
-
keyboardType = defaultStr(keyboardType).toLowerCase();
|
|
101
|
+
|
|
102
|
+
const isEditable = !disabled && !readOnly;
|
|
103
|
+
inputMode = defaultStr(inputMode).toLowerCase();
|
|
107
104
|
let hasFountKeyboardType = false;
|
|
108
|
-
if(isNonNullString(
|
|
109
|
-
if(!keyboardTypes[
|
|
105
|
+
if(isNonNullString(inputMode)){
|
|
106
|
+
if(!keyboardTypes[inputMode]){
|
|
110
107
|
for(let i in keyboardTypes){
|
|
111
|
-
if(
|
|
108
|
+
if(inputMode === keyboardTypes[i]){
|
|
112
109
|
hasFountKeyboardType = true;
|
|
113
110
|
}
|
|
114
111
|
}
|
|
115
112
|
}
|
|
116
113
|
}
|
|
117
|
-
if(!hasFountKeyboardType && (!
|
|
114
|
+
if(!hasFountKeyboardType && (!inputMode || !keyboardTypes[inputMode])){
|
|
118
115
|
if(canValueBeDecimal){
|
|
119
|
-
|
|
116
|
+
inputMode = keyboardTypes.decimal;
|
|
120
117
|
} else if(type == "email"){
|
|
121
|
-
|
|
118
|
+
inputMode = keyboardTypes.email;
|
|
122
119
|
} else if(type =="phone" || type =="tel"){
|
|
123
|
-
|
|
120
|
+
inputMode = keyboardTypes.phone;
|
|
124
121
|
} else if(!keyboardTypes[type]){
|
|
125
|
-
|
|
122
|
+
inputMode = keyboardTypes.default;
|
|
126
123
|
}
|
|
127
124
|
}
|
|
128
125
|
const isSecureText = type =="password"?true : false;
|
|
@@ -222,9 +219,9 @@ const TextFieldComponent = React.forwardRef((componentProps,inputRef)=>{
|
|
|
222
219
|
rightContainerProps = defaultObj(rightContainerProps);
|
|
223
220
|
const pointerEvents = isEditable?"auto":'none';
|
|
224
221
|
const upperStyle = text && (upper || lower) && !isAndroid ? {textTransform:upper?'uppercase':'lowercase'} : null;
|
|
225
|
-
const opacity = disabled ? DISABLED_OPACITY : (useReadOnlyOpacity !== false && !error && (readOnly
|
|
222
|
+
const opacity = disabled ? DISABLED_OPACITY : (useReadOnlyOpacity !== false && !error && (readOnly)) ? READONLY_OPACITY : undefined;
|
|
226
223
|
const disabledStyle = handleOpacity != false && opacity ? {opacity} : undefined;
|
|
227
|
-
if((
|
|
224
|
+
if((readOnly === true || disabled === true) ){
|
|
228
225
|
selection = defaultObj(selection);
|
|
229
226
|
if(!isNumber(selection.start)){
|
|
230
227
|
selection.start = 0;
|
|
@@ -339,7 +336,7 @@ const TextFieldComponent = React.forwardRef((componentProps,inputRef)=>{
|
|
|
339
336
|
},
|
|
340
337
|
|
|
341
338
|
disabled,
|
|
342
|
-
|
|
339
|
+
readOnly : readOnly || !isEditable,
|
|
343
340
|
error : !!error,
|
|
344
341
|
mode,
|
|
345
342
|
underlineColor,
|
|
@@ -364,7 +361,7 @@ const TextFieldComponent = React.forwardRef((componentProps,inputRef)=>{
|
|
|
364
361
|
],
|
|
365
362
|
pointerEvents,
|
|
366
363
|
secureTextEntry,
|
|
367
|
-
|
|
364
|
+
inputMode,
|
|
368
365
|
autoCapitalize : upper?(isAndroid?'characters':"none"):autoCapitalize,
|
|
369
366
|
value : currentDefaultValue,
|
|
370
367
|
realValue : text,
|
|
@@ -43,7 +43,7 @@ const TippyTooltipComponent = React.forwardRef((props,ref)=>{
|
|
|
43
43
|
},[content])
|
|
44
44
|
const cProps = {
|
|
45
45
|
...defaultObj(rest),
|
|
46
|
-
|
|
46
|
+
id:instanceIdRef.current,
|
|
47
47
|
}
|
|
48
48
|
if(typeof children =='function'){
|
|
49
49
|
return children(cProps,innerRef);
|
|
@@ -21,7 +21,7 @@ const TooltipComponent = React.forwardRef((props,ref)=>{
|
|
|
21
21
|
rest.children = children;
|
|
22
22
|
}
|
|
23
23
|
const ct = <Component {...rest}/>
|
|
24
|
-
if(!content || rest.disabled === true || rest.readOnly === true
|
|
24
|
+
if(!content || rest.disabled === true || rest.readOnly === true){
|
|
25
25
|
return typeof children =='function'? children(rest,ref) : ct;
|
|
26
26
|
}
|
|
27
27
|
return <Popover
|
package/src/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from "$react"
|
|
2
|
-
import { AppState
|
|
2
|
+
import { AppState} from "react-native";
|
|
3
|
+
import BackHandler from "$ecomponents/BackHandler";
|
|
3
4
|
import * as Linking from 'expo-linking';
|
|
4
5
|
import APP from "$capp";
|
|
5
6
|
import {AppStateService,trackIDLE,stop as stopIDLE} from "$capp/idle";
|
|
@@ -120,7 +120,7 @@ const UserProfileAvatarComponent = React.forwardRef(({drawerRef,chevronIconProps
|
|
|
120
120
|
size={size}
|
|
121
121
|
style = {styles.itemLeft}
|
|
122
122
|
testID = {"RN_ProfilAvatar_Avatar"}
|
|
123
|
-
|
|
123
|
+
readOnly = {false}
|
|
124
124
|
defaultSource ={avatarProps.defaultSrc}
|
|
125
125
|
onChange = {onChangeAvatar}
|
|
126
126
|
/>
|
|
@@ -146,7 +146,7 @@ const UserProfileAvatarComponent = React.forwardRef(({drawerRef,chevronIconProps
|
|
|
146
146
|
size={size}
|
|
147
147
|
style = {styles.itemLeft}
|
|
148
148
|
testID = {"RN_ProfilAvatar_AvatarImage"}
|
|
149
|
-
|
|
149
|
+
readOnly = {false}
|
|
150
150
|
defaultSource ={avatarProps.defaultSrc}
|
|
151
151
|
onChange = {onChangeAvatar}
|
|
152
152
|
/>}
|
|
@@ -122,7 +122,7 @@ export default function MainScreenScreenWithOrWithoutAuthContainer(props) {
|
|
|
122
122
|
...authProps,
|
|
123
123
|
required : authRequired,
|
|
124
124
|
},
|
|
125
|
-
children : <View testID={testID}
|
|
125
|
+
children : <View testID={testID} id={portalId} {...containerProps} style={[styles.container,{backgroundColor},modal && styles.modal,containerProps.style]}>
|
|
126
126
|
{withStatusBar !== false ? <StatusBar/> : null}
|
|
127
127
|
{appBar === false ? null : React.isValidElement(appBar)? state.AppBar : <AppBar
|
|
128
128
|
testID={testID+'_AppBar'} {...appBarProps}
|
|
@@ -46,7 +46,7 @@ export default class TableDataScreenComponent extends FormDataScreen{
|
|
|
46
46
|
const f = fields[i];
|
|
47
47
|
f.type = defaultStr(f.jsType,f.type).toLowerCase();
|
|
48
48
|
const name = f.field = defaultStr(f.field,i);
|
|
49
|
-
if((f.type =='id' || f.type =='piece' || f.primaryKey || f.unique === true) && f.unique !== false && f.disabled !== true && f.
|
|
49
|
+
if((f.type =='id' || f.type =='piece' || f.primaryKey || f.unique === true) && f.unique !== false && f.disabled !== true && f.readOnly !== true){
|
|
50
50
|
const {onBlur} = f;
|
|
51
51
|
f.onBlur = (args)=>{
|
|
52
52
|
args = {...f,...args,fetch,columnField:name,fieldName:name,id:args.value};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style
|
|
3
3
|
// license that can be found in the LICENSE file.
|
|
4
4
|
import React from "$react";
|
|
5
|
-
import
|
|
5
|
+
import BackHandler from "$ecomponents/BackHandler";
|
|
6
6
|
import APP from "$capp";
|
|
7
7
|
import {useDrawer} from "$ecomponents/Drawer";
|
|
8
8
|
import {navigationRef,getScreenProps,setRoute,setActiveNavigation,setScreenOptions,goBack} from "$cnavigation";
|