@codeleap/mobile 1.0.1 → 1.2.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/ContentView.d.ts +10 -0
- package/dist/components/ContentView.js +49 -0
- package/dist/components/ContentView.js.map +1 -0
- package/dist/components/TextInput.js +20 -21
- package/dist/components/TextInput.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/utils/styles.js.map +1 -1
- package/package.json +2 -3
- package/src/components/ContentView.tsx +52 -0
- package/src/components/TextInput.tsx +23 -26
- package/src/components/index.ts +3 -0
- package/src/utils/styles.ts +2 -2
- package/dist/components/Checkbox.d.ts +0 -12
- package/dist/components/Checkbox.js +0 -61
- package/dist/components/Checkbox.js.map +0 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ComponentVariants, ContentViewStyles, ViewComposition } from '@codeleap/common';
|
|
3
|
+
import { ViewProps } from './View';
|
|
4
|
+
import { StylesOf } from '../types/utility';
|
|
5
|
+
export declare type ContentViewProps = Omit<ViewProps, 'variants' | 'responsiveVariants'> & {
|
|
6
|
+
placeholderMsg: string;
|
|
7
|
+
loading?: boolean;
|
|
8
|
+
styles?: StylesOf<ViewComposition>;
|
|
9
|
+
} & ComponentVariants<typeof ContentViewStyles>;
|
|
10
|
+
export declare const ContentView: React.FC<ContentViewProps>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.ContentView = void 0;
|
|
18
|
+
var react_1 = __importDefault(require("react"));
|
|
19
|
+
var common_1 = require("@codeleap/common");
|
|
20
|
+
var View_1 = require("./View");
|
|
21
|
+
var Text_1 = require("./Text");
|
|
22
|
+
var ActivityIndicator_1 = require("./ActivityIndicator");
|
|
23
|
+
var WrapContent = function (_a) {
|
|
24
|
+
var children = _a.children, props = __rest(_a, ["children"]);
|
|
25
|
+
return <View_1.View {...props}>{children}</View_1.View>;
|
|
26
|
+
};
|
|
27
|
+
var ContentView = function (rawProps) {
|
|
28
|
+
var children = rawProps.children, placeholderMsg = rawProps.placeholderMsg, loading = rawProps.loading, variants = rawProps.variants, styles = rawProps.styles, props = __rest(rawProps, ["children", "placeholderMsg", "loading", "variants", "styles"]);
|
|
29
|
+
var variantStyle = (0, common_1.useComponentStyle)('ContentView', {
|
|
30
|
+
variants: variants,
|
|
31
|
+
styles: styles,
|
|
32
|
+
});
|
|
33
|
+
if (loading) {
|
|
34
|
+
return (<WrapContent {...props} style={variantStyle.wrapper}>
|
|
35
|
+
<ActivityIndicator_1.ActivityIndicator styles={{ wrapper: variantStyle.loader }}/>
|
|
36
|
+
</WrapContent>);
|
|
37
|
+
}
|
|
38
|
+
var hasChildren = Object.keys(children || {}).length > 0;
|
|
39
|
+
if (hasChildren) {
|
|
40
|
+
return (<WrapContent {...props} style={variantStyle.wrapper}>
|
|
41
|
+
{children}
|
|
42
|
+
</WrapContent>);
|
|
43
|
+
}
|
|
44
|
+
return (<WrapContent {...props} style={styles}>
|
|
45
|
+
<Text_1.Text text={placeholderMsg}/>
|
|
46
|
+
</WrapContent>);
|
|
47
|
+
};
|
|
48
|
+
exports.ContentView = ContentView;
|
|
49
|
+
//# sourceMappingURL=ContentView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentView.js","sourceRoot":"","sources":["../../src/components/ContentView.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAAyB;AACzB,2CAA2G;AAC3G,+BAAwC;AACxC,+BAA6B;AAE7B,yDAAuD;AAQvD,IAAM,WAAW,GAAG,UAAC,EAAsB;IAApB,IAAA,QAAQ,cAAA,EAAK,KAAK,cAApB,YAAsB,CAAF;IAAO,OAAA,CAAC,WAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,WAAI,CAAC,CAAA;CAAA,CAAA;AAE3E,IAAM,WAAW,GAA+B,UAAC,QAAQ;IAE5D,IAAA,QAAQ,GAMN,QAAQ,SANF,EACR,cAAc,GAKZ,QAAQ,eALI,EACd,OAAO,GAIL,QAAQ,QAJH,EACP,QAAQ,GAGN,QAAQ,SAHF,EACR,MAAM,GAEJ,QAAQ,OAFJ,EACH,KAAK,UACN,QAAQ,EAPN,+DAOL,CADS,CACE;IAEZ,IAAM,YAAY,GAAG,IAAA,0BAAiB,EAAC,aAAa,EAAE;QACpD,QAAQ,UAAA;QACR,MAAM,QAAA;KACP,CAAC,CAAA;IAEF,IAAI,OAAO,EAAE;QACX,OAAO,CACL,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAClD;QAAA,CAAC,qCAAiB,CAAC,MAAM,CAAC,CAAC,EAAC,OAAO,EAAE,YAAY,CAAC,MAAM,EAAC,CAAC,EAC5D;MAAA,EAAE,WAAW,CAAC,CACf,CAAA;KACF;IACD,IAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAC1D,IAAI,WAAW,EAAE;QACf,OAAO,CACL,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAClD;QAAA,CAAC,QAAQ,CACX;MAAA,EAAE,WAAW,CAAC,CACf,CAAA;KACF;IAED,OAAO,CACL,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CACpC;MAAA,CAAC,WAAI,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,EAC7B;IAAA,EAAE,WAAW,CAAC,CACf,CAAA;AACH,CAAC,CAAA;AApCY,QAAA,WAAW,eAoCvB"}
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
3
|
if (k2 === undefined) k2 = k;
|
|
15
4
|
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
@@ -50,9 +39,10 @@ var View_1 = require("./View");
|
|
|
50
39
|
var Button_1 = require("./Button");
|
|
51
40
|
var Icon_1 = require("./Icon");
|
|
52
41
|
var react_native_1 = require("react-native");
|
|
42
|
+
var styles_1 = require("../utils/styles");
|
|
53
43
|
exports.TextInput = (0, react_1.forwardRef)(function (rawprops, inputRef) {
|
|
54
44
|
var onChange = rawprops.onChange, type = rawprops.type, value = rawprops.value, onChangeText = rawprops.onChangeText, disabled = rawprops.disabled, edited = rawprops.edited, onFocus = rawprops.onFocus, onBlur = rawprops.onBlur, multiline = rawprops.multiline, responsiveVariants = rawprops.responsiveVariants, variants = rawprops.variants, label = rawprops.label, leftIcon = rawprops.leftIcon, rightIcon = rawprops.rightIcon, styles = rawprops.styles, validate = rawprops.validate, password = rawprops.password, visibilityToggle = rawprops.visibilityToggle, props = __rest(rawprops, ["onChange", "type", "value", "onChangeText", "disabled", "edited", "onFocus", "onBlur", "multiline", "responsiveVariants", "variants", "label", "leftIcon", "rightIcon", "styles", "validate", "password", "visibilityToggle"]);
|
|
55
|
-
var _a = (0, react_1.useState)(false),
|
|
45
|
+
var _a = (0, react_1.useState)(false), focused = _a[0], setFocus = _a[1];
|
|
56
46
|
var _b = (0, react_1.useState)(edited), editedState = _b[0], setEdited = _b[1];
|
|
57
47
|
var input = (0, react_1.useRef)(null);
|
|
58
48
|
var _c = (0, common_1.useBooleanToggle)(false), textIsVisible = _c[0], setTextVisible = _c[1];
|
|
@@ -60,6 +50,7 @@ exports.TextInput = (0, react_1.forwardRef)(function (rawprops, inputRef) {
|
|
|
60
50
|
variants: variants,
|
|
61
51
|
responsiveVariants: responsiveVariants,
|
|
62
52
|
styles: styles,
|
|
53
|
+
transform: react_native_1.StyleSheet.flatten
|
|
63
54
|
});
|
|
64
55
|
var InputElement = react_native_1.TextInput;
|
|
65
56
|
var handleBlur = function (e) {
|
|
@@ -85,27 +76,35 @@ exports.TextInput = (0, react_1.forwardRef)(function (rawprops, inputRef) {
|
|
|
85
76
|
};
|
|
86
77
|
(0, react_1.useImperativeHandle)(inputRef, function () { return input.current; });
|
|
87
78
|
var _d = (0, common_1.useValidate)(value, validate), showError = _d.showError, error = _d.error;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
79
|
+
function getStyles(k) {
|
|
80
|
+
var parts = k;
|
|
81
|
+
if (typeof k === 'string') {
|
|
82
|
+
parts = [k];
|
|
83
|
+
}
|
|
84
|
+
var requestedStyles = parts.map(function (key) { return [
|
|
85
|
+
variantStyles[key],
|
|
86
|
+
showError ? variantStyles[key + ':error'] : {},
|
|
87
|
+
focused ? variantStyles[key + ':focus'] : {}
|
|
88
|
+
]; });
|
|
89
|
+
return react_native_1.StyleSheet.flatten(requestedStyles);
|
|
93
90
|
}
|
|
91
|
+
var logStyles = (0, styles_1.useLogStyles)();
|
|
92
|
+
logStyles('innerWrapper', getStyles('innerWrapper'));
|
|
94
93
|
return (<View_1.View style={getStyles('wrapper')}>
|
|
95
94
|
<exports.InputLabel label={label} style={getStyles('label')}/>
|
|
96
95
|
|
|
97
96
|
<View_1.View style={getStyles('innerWrapper')}>
|
|
98
97
|
|
|
99
98
|
|
|
100
|
-
<exports.InputIcon {...leftIcon} style={
|
|
99
|
+
<exports.InputIcon {...leftIcon} style={getStyles(['icon', 'leftIcon'])}/>
|
|
101
100
|
<InputElement ref={input} secureTextEntry={password && !textIsVisible} onChange={handleChange} value={value} editable={disabled} onFocus={handleFocus} onBlur={handleBlur} {...props} style={getStyles('textField')}/>
|
|
102
101
|
{visibilityToggle ?
|
|
103
|
-
<exports.InputIcon name={(textIsVisible ? 'input-visiblity:visible' : 'input-visiblity:hidden')} action={function () { return setTextVisible(); }} style={
|
|
102
|
+
<exports.InputIcon name={(textIsVisible ? 'input-visiblity:visible' : 'input-visiblity:hidden')} action={function () { return setTextVisible(); }} style={getStyles(['icon', 'rightIcon'])}/>
|
|
104
103
|
:
|
|
105
|
-
<exports.InputIcon {...rightIcon} style={
|
|
104
|
+
<exports.InputIcon {...rightIcon} style={getStyles(['icon', 'rightIcon'])}/>}
|
|
106
105
|
</View_1.View>
|
|
107
106
|
|
|
108
|
-
<exports.FormError message={error.message} style={
|
|
107
|
+
<exports.FormError message={error.message} style={getStyles(['error'])}/>
|
|
109
108
|
|
|
110
109
|
|
|
111
110
|
</View_1.View>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextInput.js","sourceRoot":"","sources":["../../src/components/TextInput.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TextInput.js","sourceRoot":"","sources":["../../src/components/TextInput.tsx"],"names":[],"mappings":"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"}
|
package/dist/components/index.js
CHANGED
|
@@ -26,4 +26,6 @@ __exportStar(require("./Navigation"), exports);
|
|
|
26
26
|
__exportStar(require("./Scroll"), exports);
|
|
27
27
|
__exportStar(require("./ActivityIndicator"), exports);
|
|
28
28
|
__exportStar(require("./Button"), exports);
|
|
29
|
+
__exportStar(require("./ContentView"), exports);
|
|
30
|
+
__exportStar(require("./Navigation"), exports);
|
|
29
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAsB;AACtB,yCAAsB;AACtB,8CAA4B;AAC5B,yCAAuB;AACvB,0CAAwB;AACxB,6CAA2B;AAC3B,8CAA4B;AAC5B,+CAA6B;AAC7B,2CAAyB;AACzB,2CAAyB;AACzB,8CAA4B;AAC5B,2CAAyB;AACzB,+CAA6B;AAC7B,2CAAwB;AACxB,sDAAmC;AACnC,2CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAsB;AACtB,yCAAsB;AACtB,8CAA4B;AAC5B,yCAAuB;AACvB,0CAAwB;AACxB,6CAA2B;AAC3B,8CAA4B;AAC5B,+CAA6B;AAC7B,2CAAyB;AACzB,2CAAyB;AACzB,8CAA4B;AAC5B,2CAAyB;AACzB,+CAA6B;AAC7B,2CAAwB;AACxB,sDAAmC;AACnC,2CAAwB;AACxB,gDAA6B;AAE7B,+CAA6B"}
|
package/dist/utils/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/utils/styles.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/utils/styles.ts"],"names":[],"mappings":";;;AAAA,2CAA+D;AAC/D,6CAA0C;AAE1C,SAAgB,YAAY;IAEjB,IAAA,MAAM,GAAI,IAAA,iBAAQ,GAAE,OAAd,CAAc;IAG3B,OAAO,UAAC,IAAI,EAAC,MAAM;QACf,MAAM,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EACnD,kBAAkB,CACrB,CAAA;IACL,CAAC,CAAA;AAEL,CAAC;AAbD,oCAaC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codeleap/mobile",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"main": "src/index.ts",
|
|
5
5
|
"repository": "git@github.com:codeleap-uk/codeleap-lib.git",
|
|
6
6
|
"author": "Paulo Henrique De Souza <paulosouza300272@gmail.com>",
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
},
|
|
14
14
|
"scripts": {
|
|
15
15
|
"build": "tsc --build",
|
|
16
|
-
"lint": "./node_modules/.bin/eslint -c .eslintrc.js \"./src/**/*.{ts,tsx,js,jsx}\""
|
|
17
|
-
"publish": "npm publish"
|
|
16
|
+
"lint": "./node_modules/.bin/eslint -c .eslintrc.js \"./src/**/*.{ts,tsx,js,jsx}\""
|
|
18
17
|
},
|
|
19
18
|
"peerDependencies": {
|
|
20
19
|
"@codeleap/common": "*",
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { ComponentVariants, ContentViewStyles, useComponentStyle, ViewComposition } from '@codeleap/common'
|
|
3
|
+
import { ViewProps, View } from './View'
|
|
4
|
+
import { Text } from './Text'
|
|
5
|
+
import { StylesOf } from '../types/utility'
|
|
6
|
+
import { ActivityIndicator } from './ActivityIndicator'
|
|
7
|
+
|
|
8
|
+
export type ContentViewProps = Omit<ViewProps, 'variants' | 'responsiveVariants'> & {
|
|
9
|
+
placeholderMsg: string
|
|
10
|
+
loading?: boolean
|
|
11
|
+
styles?: StylesOf<ViewComposition>
|
|
12
|
+
} & ComponentVariants<typeof ContentViewStyles>
|
|
13
|
+
|
|
14
|
+
const WrapContent = ({ children, ...props }) => <View {...props}>{children}</View>
|
|
15
|
+
|
|
16
|
+
export const ContentView: React.FC<ContentViewProps> = (rawProps) => {
|
|
17
|
+
const {
|
|
18
|
+
children,
|
|
19
|
+
placeholderMsg,
|
|
20
|
+
loading,
|
|
21
|
+
variants,
|
|
22
|
+
styles,
|
|
23
|
+
...props
|
|
24
|
+
} = rawProps
|
|
25
|
+
|
|
26
|
+
const variantStyle = useComponentStyle('ContentView', {
|
|
27
|
+
variants,
|
|
28
|
+
styles,
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
if (loading) {
|
|
32
|
+
return (
|
|
33
|
+
<WrapContent {...props} style={variantStyle.wrapper}>
|
|
34
|
+
<ActivityIndicator styles={{wrapper: variantStyle.loader}}/>
|
|
35
|
+
</WrapContent>
|
|
36
|
+
)
|
|
37
|
+
}
|
|
38
|
+
const hasChildren = Object.keys(children || {}).length > 0
|
|
39
|
+
if (hasChildren) {
|
|
40
|
+
return (
|
|
41
|
+
<WrapContent {...props} style={variantStyle.wrapper}>
|
|
42
|
+
{children}
|
|
43
|
+
</WrapContent>
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return (
|
|
48
|
+
<WrapContent {...props} style={styles}>
|
|
49
|
+
<Text text={placeholderMsg} />
|
|
50
|
+
</WrapContent>
|
|
51
|
+
)
|
|
52
|
+
}
|
|
@@ -15,7 +15,8 @@ import {
|
|
|
15
15
|
import { Button } from './Button';
|
|
16
16
|
import { StylesOf } from '../types/utility';
|
|
17
17
|
import { Icon } from './Icon';
|
|
18
|
-
import {NativeSyntheticEvent, TextInput as NativeTextInput, TextInputChangeEventData} from 'react-native'
|
|
18
|
+
import {NativeSyntheticEvent, StyleSheet, TextInput as NativeTextInput, TextInputChangeEventData} from 'react-native'
|
|
19
|
+
import { useLogStyles } from '../utils/styles';
|
|
19
20
|
|
|
20
21
|
type IconProp = {name: IconPlaceholder, action?:() => void}
|
|
21
22
|
|
|
@@ -65,7 +66,7 @@ import {
|
|
|
65
66
|
...props
|
|
66
67
|
} = rawprops
|
|
67
68
|
|
|
68
|
-
const [
|
|
69
|
+
const [focused, setFocus] = useState(false)
|
|
69
70
|
const [editedState, setEdited] = useState(edited)
|
|
70
71
|
|
|
71
72
|
const input = useRef<any>(null)
|
|
@@ -74,6 +75,7 @@ import {
|
|
|
74
75
|
variants,
|
|
75
76
|
responsiveVariants,
|
|
76
77
|
styles,
|
|
78
|
+
transform: StyleSheet.flatten
|
|
77
79
|
})
|
|
78
80
|
const InputElement = NativeTextInput
|
|
79
81
|
|
|
@@ -107,26 +109,24 @@ import {
|
|
|
107
109
|
|
|
108
110
|
const {showError, error} = useValidate(value, validate)
|
|
109
111
|
|
|
110
|
-
|
|
111
|
-
const leftIconStyle = {
|
|
112
|
-
...variantStyles.icon,
|
|
113
|
-
...(showError ? variantStyles['icon:error'] : {} ),
|
|
114
|
-
...variantStyles.leftIcon,
|
|
115
|
-
...(showError ? variantStyles['leftIcon:error'] : {} ),
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
const rightIconStyle = {
|
|
119
|
-
...variantStyles.icon,
|
|
120
|
-
...(showError ? variantStyles['icon:error'] : {} ),
|
|
121
|
-
...variantStyles.rightIcon,
|
|
122
|
-
...(showError ? variantStyles['rightIcon:error'] : {} ),
|
|
123
|
-
}
|
|
112
|
+
|
|
124
113
|
|
|
125
|
-
function getStyles(
|
|
126
|
-
|
|
127
|
-
|
|
114
|
+
function getStyles(k:TextInputComposition|TextInputComposition[]){
|
|
115
|
+
let parts = k as string[]
|
|
116
|
+
if(typeof k === 'string'){
|
|
117
|
+
parts = [k]
|
|
118
|
+
}
|
|
119
|
+
const requestedStyles = parts.map(key => [
|
|
120
|
+
variantStyles[key],
|
|
121
|
+
showError ? variantStyles[key + ':error'] : {},
|
|
122
|
+
focused ? variantStyles[key + ':focus'] : {}
|
|
123
|
+
])
|
|
124
|
+
|
|
125
|
+
return StyleSheet.flatten(requestedStyles)
|
|
128
126
|
}
|
|
129
127
|
|
|
128
|
+
const logStyles = useLogStyles()
|
|
129
|
+
logStyles('innerWrapper', getStyles('innerWrapper'))
|
|
130
130
|
|
|
131
131
|
return (
|
|
132
132
|
<View
|
|
@@ -137,7 +137,7 @@ import {
|
|
|
137
137
|
<View style={getStyles('innerWrapper')}>
|
|
138
138
|
|
|
139
139
|
|
|
140
|
-
<InputIcon {...leftIcon} style={
|
|
140
|
+
<InputIcon {...leftIcon} style={getStyles(['icon','leftIcon'])}/>
|
|
141
141
|
<InputElement
|
|
142
142
|
ref={input}
|
|
143
143
|
secureTextEntry={password && !textIsVisible}
|
|
@@ -153,16 +153,13 @@ import {
|
|
|
153
153
|
visibilityToggle ?
|
|
154
154
|
<InputIcon name={
|
|
155
155
|
(textIsVisible ? 'input-visiblity:visible' : 'input-visiblity:hidden') as IconPlaceholder
|
|
156
|
-
} action={() => setTextVisible()} style={
|
|
156
|
+
} action={() => setTextVisible()} style={getStyles(['icon','rightIcon'])}/>
|
|
157
157
|
:
|
|
158
|
-
<InputIcon {...rightIcon} style={
|
|
158
|
+
<InputIcon {...rightIcon} style={getStyles(['icon','rightIcon'])}/>
|
|
159
159
|
}
|
|
160
160
|
</View>
|
|
161
161
|
|
|
162
|
-
<FormError message={error.message} style={
|
|
163
|
-
...variantStyles.error,
|
|
164
|
-
|
|
165
|
-
}}/>
|
|
162
|
+
<FormError message={error.message} style={getStyles(['error'])}/>
|
|
166
163
|
|
|
167
164
|
|
|
168
165
|
</View>
|
package/src/components/index.ts
CHANGED
package/src/utils/styles.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useStyle } from "@codeleap/common";
|
|
1
|
+
import { useComponentStyle, useStyle } from "@codeleap/common";
|
|
2
2
|
import { StyleSheet } from "react-native";
|
|
3
3
|
|
|
4
4
|
export function useLogStyles(){
|
|
@@ -14,4 +14,4 @@ export function useLogStyles(){
|
|
|
14
14
|
)
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
}
|
|
17
|
+
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { CheckboxStyles, CheckboxComposition, ComponentVariants, StylesOf } from '@codeleap/common';
|
|
3
|
-
import { ComponentPropsWithRef, ReactNode } from 'react';
|
|
4
|
-
import { Switch as NativeCheckbox } from 'react-native';
|
|
5
|
-
declare type NativeCheckboxProps = Omit<ComponentPropsWithRef<typeof NativeCheckbox>, 'thumbColor' | 'trackColor'>;
|
|
6
|
-
declare type CheckboxProps = NativeCheckboxProps & {
|
|
7
|
-
variants?: ComponentVariants<typeof CheckboxStyles>['variants'];
|
|
8
|
-
label?: ReactNode;
|
|
9
|
-
styles?: StylesOf<CheckboxComposition>;
|
|
10
|
-
};
|
|
11
|
-
export declare const Checkbox: React.ForwardRefExoticComponent<Pick<CheckboxProps, "children" | "hitSlop" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "style" | "testID" | "nativeID" | "collapsable" | "needsOffscreenAlphaCompositing" | "renderToHardwareTextureAndroid" | "focusable" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxProperties" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "label" | "variants" | "disabled" | "onChange" | "value" | "styles" | "onValueChange" | "ios_backgroundColor" | "onTintColor" | "thumbTintColor" | "tintColor" | "key"> & React.RefAttributes<NativeCheckbox>>;
|
|
12
|
-
export {};
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
22
|
-
var t = {};
|
|
23
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
24
|
-
t[p] = s[p];
|
|
25
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
26
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
27
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
28
|
-
t[p[i]] = s[p[i]];
|
|
29
|
-
}
|
|
30
|
-
return t;
|
|
31
|
-
};
|
|
32
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
-
exports.Checkbox = void 0;
|
|
34
|
-
var React = __importStar(require("react"));
|
|
35
|
-
var common_1 = require("@codeleap/common");
|
|
36
|
-
var react_1 = require("react");
|
|
37
|
-
var TextInput_1 = require("./TextInput");
|
|
38
|
-
var View_1 = require("./View");
|
|
39
|
-
exports.Checkbox = (0, react_1.forwardRef)(function (switchProps, ref) {
|
|
40
|
-
var _a = switchProps.variants, variants = _a === void 0 ? [] : _a, _b = switchProps.style, style = _b === void 0 ? {} : _b, _c = switchProps.styles, styles = _c === void 0 ? {} : _c, label = switchProps.label, props = __rest(switchProps, ["variants", "style", "styles", "label"]);
|
|
41
|
-
var variantStyles = (0, common_1.useComponentStyle)('Checkbox', {
|
|
42
|
-
variants: variants,
|
|
43
|
-
styles: styles
|
|
44
|
-
});
|
|
45
|
-
function getStyles(key) {
|
|
46
|
-
return [
|
|
47
|
-
variantStyles[key],
|
|
48
|
-
key === 'wrapper' ? style : {},
|
|
49
|
-
switchProps.value ? variantStyles[key + ':on'] : {},
|
|
50
|
-
switchProps.disabled ? variantStyles[key + ':disabled'] : {},
|
|
51
|
-
];
|
|
52
|
-
}
|
|
53
|
-
return <View_1.View style={getStyles('wrapper')}>
|
|
54
|
-
<View_1.View style={getStyles('checkmarkWrapper')}>
|
|
55
|
-
<View_1.View style={getStyles('checkmark')}/>
|
|
56
|
-
</View_1.View>
|
|
57
|
-
<TextInput_1.InputLabel label={label} style={getStyles('label')}/>
|
|
58
|
-
|
|
59
|
-
</View_1.View>;
|
|
60
|
-
});
|
|
61
|
-
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../src/components/Checkbox.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA8B;AAC9B,2CAA+H;AAC/H,+BAAoE;AAEpE,yCAAwC;AACxC,+BAA6B;AAYhB,QAAA,QAAQ,GAAG,IAAA,kBAAU,EAA+B,UAAC,WAAW,EAAC,GAAG;IAEzE,IAAA,KAKA,WAAW,SALE,EAAb,QAAQ,mBAAG,EAAE,KAAA,EACb,KAIA,WAAW,MAJD,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,KAGA,WAAW,OAHA,EAAX,MAAM,mBAAG,EAAE,KAAA,EACX,KAAK,GAEL,WAAW,MAFN,EACF,KAAK,UACR,WAAW,EANR,wCAMN,CADW,CACG;IAEf,IAAM,aAAa,GAAG,IAAA,0BAAiB,EAAC,UAAU,EAAE;QAChD,QAAQ,UAAA;QACR,MAAM,QAAA;KACT,CAAC,CAAA;IAEF,SAAS,SAAS,CAAC,GAAuB;QACtC,OAAO;YACH,aAAa,CAAC,GAAG,CAAC;YAClB,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAC9B,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YACnD,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;SAE/D,CAAA;IACL,CAAC;IAGD,OAAO,CAAC,WAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CACrC;QAAA,CAAC,WAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CACvC;YAAA,CAAC,WAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EACxC;QAAA,EAAE,WAAI,CACN;QAAA,CAAC,sBAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAExD;;IAAA,EAAE,WAAI,CAAC,CAAA;AACX,CAAC,CAAC,CAAA"}
|