jornada-ui 0.4.6 → 0.4.8
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/lib/commonjs/components/capture-photo/index.js +19 -10
- package/lib/commonjs/components/capture-photo/index.js.map +1 -1
- package/lib/commonjs/components/input/styles.js +1 -1
- package/lib/commonjs/components/maintenance-description-input/index.js +17 -5
- package/lib/commonjs/components/maintenance-description-input/index.js.map +1 -1
- package/lib/commonjs/components/maintenance-description-input/styles.js +5 -0
- package/lib/commonjs/components/maintenance-description-input/styles.js.map +1 -1
- package/lib/commonjs/components/toggle-fuel/index.js +48 -41
- package/lib/commonjs/components/toggle-fuel/index.js.map +1 -1
- package/lib/commonjs/components/toggle-fuel/style.js +22 -15
- package/lib/commonjs/components/toggle-fuel/style.js.map +1 -1
- package/lib/commonjs/stories/toggle-fuel/toggle-fuel.stories.js +81 -28
- package/lib/commonjs/stories/toggle-fuel/toggle-fuel.stories.js.map +1 -1
- package/lib/module/components/capture-photo/index.js +19 -10
- package/lib/module/components/capture-photo/index.js.map +1 -1
- package/lib/module/components/input/styles.js +1 -1
- package/lib/module/components/maintenance-description-input/index.js +16 -5
- package/lib/module/components/maintenance-description-input/index.js.map +1 -1
- package/lib/module/components/maintenance-description-input/styles.js +5 -0
- package/lib/module/components/maintenance-description-input/styles.js.map +1 -1
- package/lib/module/components/toggle-fuel/index.js +50 -43
- package/lib/module/components/toggle-fuel/index.js.map +1 -1
- package/lib/module/components/toggle-fuel/style.js +22 -15
- package/lib/module/components/toggle-fuel/style.js.map +1 -1
- package/lib/module/stories/toggle-fuel/toggle-fuel.stories.js +80 -27
- package/lib/module/stories/toggle-fuel/toggle-fuel.stories.js.map +1 -1
- package/lib/typescript/commonjs/src/components/capture-photo/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/components/maintenance-description-input/index.d.ts +1 -0
- package/lib/typescript/commonjs/src/components/maintenance-description-input/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/components/maintenance-description-input/styles.d.ts +5 -0
- package/lib/typescript/commonjs/src/components/maintenance-description-input/styles.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/components/toggle-fuel/index.d.ts +1 -2
- package/lib/typescript/commonjs/src/components/toggle-fuel/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/components/toggle-fuel/style.d.ts +16 -9
- package/lib/typescript/commonjs/src/components/toggle-fuel/style.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/stories/toggle-fuel/toggle-fuel.stories.d.ts +3 -0
- package/lib/typescript/commonjs/src/stories/toggle-fuel/toggle-fuel.stories.d.ts.map +1 -1
- package/lib/typescript/module/src/components/capture-photo/index.d.ts.map +1 -1
- package/lib/typescript/module/src/components/maintenance-description-input/index.d.ts +1 -0
- package/lib/typescript/module/src/components/maintenance-description-input/index.d.ts.map +1 -1
- package/lib/typescript/module/src/components/maintenance-description-input/styles.d.ts +5 -0
- package/lib/typescript/module/src/components/maintenance-description-input/styles.d.ts.map +1 -1
- package/lib/typescript/module/src/components/toggle-fuel/index.d.ts +1 -2
- package/lib/typescript/module/src/components/toggle-fuel/index.d.ts.map +1 -1
- package/lib/typescript/module/src/components/toggle-fuel/style.d.ts +16 -9
- package/lib/typescript/module/src/components/toggle-fuel/style.d.ts.map +1 -1
- package/lib/typescript/module/src/stories/toggle-fuel/toggle-fuel.stories.d.ts +3 -0
- package/lib/typescript/module/src/stories/toggle-fuel/toggle-fuel.stories.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/capture-photo/index.tsx +25 -16
- package/src/components/input/styles.ts +30 -30
- package/src/components/maintenance-description-input/index.tsx +55 -49
- package/src/components/maintenance-description-input/interface.d.ts +38 -36
- package/src/components/maintenance-description-input/styles.ts +38 -33
- package/src/components/toggle-fuel/index.tsx +93 -62
- package/src/components/toggle-fuel/interface.d.ts +25 -7
- package/src/components/toggle-fuel/style.ts +42 -35
- package/src/stories/toggle-fuel/toggle-fuel.stories.tsx +112 -68
|
@@ -1,62 +1,93 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* IMPORTS
|
|
3
|
-
*/
|
|
4
|
-
import React, { forwardRef, useState } from "react";
|
|
5
|
-
import { TouchableOpacity, Text, View } from "react-native";
|
|
6
|
-
|
|
7
|
-
// typings
|
|
8
|
-
import type { ToggleFuelProps } from "./interface";
|
|
9
|
-
import { asBaseComponent } from "../../@types/as-base-component";
|
|
10
|
-
|
|
11
|
-
// styles
|
|
12
|
-
import { styles } from "./style";
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Componente ToggleFuel para a interação da ui.
|
|
16
|
-
*/
|
|
17
|
-
const ToggleFuel = forwardRef<
|
|
18
|
-
(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
1
|
+
/**
|
|
2
|
+
* IMPORTS
|
|
3
|
+
*/
|
|
4
|
+
import React, { forwardRef, useMemo, useState } from "react";
|
|
5
|
+
import { TouchableOpacity, Text, View } from "react-native";
|
|
6
|
+
|
|
7
|
+
// typings
|
|
8
|
+
import type { ToggleFuelProps, ToggleOption } from "./interface";
|
|
9
|
+
import { asBaseComponent } from "../../@types/as-base-component";
|
|
10
|
+
|
|
11
|
+
// styles
|
|
12
|
+
import { styles } from "./style";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Componente ToggleFuel para a interação da ui.
|
|
16
|
+
*/
|
|
17
|
+
const ToggleFuel = forwardRef<any, ToggleFuelProps>(
|
|
18
|
+
(
|
|
19
|
+
{
|
|
20
|
+
options: optionsProp,
|
|
21
|
+
value,
|
|
22
|
+
defaultValue,
|
|
23
|
+
testIDPrefix = "toggle-fuel",
|
|
24
|
+
accessibleLabel = "Toggle Fuel",
|
|
25
|
+
onSelect,
|
|
26
|
+
},
|
|
27
|
+
ref
|
|
28
|
+
): React.ReactElement => {
|
|
29
|
+
const options = useMemo<ToggleOption[]>(
|
|
30
|
+
() =>
|
|
31
|
+
(optionsProp && optionsProp.length
|
|
32
|
+
? optionsProp
|
|
33
|
+
: [
|
|
34
|
+
{ value: "diesel", label: "Diesel" },
|
|
35
|
+
{ value: "arla", label: "Arla" },
|
|
36
|
+
]) as ToggleOption[],
|
|
37
|
+
[optionsProp]
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
const initial = value ?? defaultValue ?? options[0]?.value;
|
|
41
|
+
const [internal, setInternal] = useState<string | number | undefined>(initial);
|
|
42
|
+
|
|
43
|
+
const selected = value ?? internal;
|
|
44
|
+
|
|
45
|
+
const handlePress = (v: ToggleOption["value"]) => {
|
|
46
|
+
if (value === undefined) setInternal(v); // não-controlado
|
|
47
|
+
onSelect?.(v);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
return (
|
|
51
|
+
<View
|
|
52
|
+
ref={ref}
|
|
53
|
+
style={[styles.container]}
|
|
54
|
+
accessibilityRole="tablist"
|
|
55
|
+
accessibilityLabel={accessibleLabel}
|
|
56
|
+
>
|
|
57
|
+
{options.map((opt, idx) => {
|
|
58
|
+
const isSelected = selected === opt.value;
|
|
59
|
+
const isFirst = idx === 0;
|
|
60
|
+
const isLast = idx === options.length - 1;
|
|
61
|
+
|
|
62
|
+
return (
|
|
63
|
+
<TouchableOpacity
|
|
64
|
+
key={`${opt.value}`}
|
|
65
|
+
testID={`${testIDPrefix}-${opt.value}`}
|
|
66
|
+
accessibilityRole="tab"
|
|
67
|
+
accessibilityState={{ selected: isSelected }}
|
|
68
|
+
onPress={() => handlePress(opt.value)}
|
|
69
|
+
style={[
|
|
70
|
+
styles.item,
|
|
71
|
+
isFirst && styles.itemFirst,
|
|
72
|
+
isLast && styles.itemLast,
|
|
73
|
+
isSelected && styles.itemSelected,
|
|
74
|
+
]}
|
|
75
|
+
activeOpacity={0.8}
|
|
76
|
+
>
|
|
77
|
+
<Text style={[styles.itemText, isSelected && styles.itemTextSelected]}>
|
|
78
|
+
{opt.label}
|
|
79
|
+
</Text>
|
|
80
|
+
</TouchableOpacity>
|
|
81
|
+
);
|
|
82
|
+
})}
|
|
83
|
+
</View>
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
ToggleFuel.displayName = "ToggleFuel";
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* EXPORTS
|
|
92
|
+
*/
|
|
93
|
+
export default asBaseComponent(ToggleFuel);
|
|
@@ -1,7 +1,25 @@
|
|
|
1
|
-
/* eslint-disable no-unused-vars */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
/* eslint-disable no-unused-vars */
|
|
2
|
+
|
|
3
|
+
export type ToggleOption = {
|
|
4
|
+
value: string | number;
|
|
5
|
+
label: string;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
interface ToggleFuelProps {
|
|
9
|
+
/** Lista de opções. Ex.: [{ value:'cavalo', label:'Cavalo' }, { value:'carreta', label:'Carreta' }] */
|
|
10
|
+
options?: ToggleOption[];
|
|
11
|
+
|
|
12
|
+
/** Modo controlado */
|
|
13
|
+
value?: ToggleOption["value"];
|
|
14
|
+
|
|
15
|
+
/** Modo não-controlado (valor inicial) */
|
|
16
|
+
defaultValue?: ToggleOption["value"];
|
|
17
|
+
|
|
18
|
+
/** Callback ao selecionar */
|
|
19
|
+
onSelect?: (value: ToggleOption["value"]) => void;
|
|
20
|
+
|
|
21
|
+
testIDPrefix?: string;
|
|
22
|
+
accessibleLabel?: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export type { ToggleFuelProps };
|
|
@@ -1,35 +1,42 @@
|
|
|
1
|
-
import { StyleSheet } from "react-native";
|
|
2
|
-
import { theme } from "../../styles/theme/theme";
|
|
3
|
-
|
|
4
|
-
const styles = StyleSheet.create({
|
|
5
|
-
container: {
|
|
6
|
-
flexDirection: "row",
|
|
7
|
-
borderRadius: 8,
|
|
8
|
-
overflow: "hidden",
|
|
9
|
-
marginTop: theme.margins.sm,
|
|
10
|
-
backgroundColor: "#ffffff",
|
|
11
|
-
},
|
|
12
|
-
|
|
13
|
-
flex: 1,
|
|
14
|
-
paddingVertical:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
1
|
+
import { StyleSheet } from "react-native";
|
|
2
|
+
import { theme } from "../../styles/theme/theme";
|
|
3
|
+
|
|
4
|
+
const styles = StyleSheet.create({
|
|
5
|
+
container: {
|
|
6
|
+
flexDirection: "row",
|
|
7
|
+
borderRadius: 8,
|
|
8
|
+
overflow: "hidden",
|
|
9
|
+
marginTop: theme.margins.sm,
|
|
10
|
+
backgroundColor: "#ffffff",
|
|
11
|
+
},
|
|
12
|
+
item: {
|
|
13
|
+
flex: 1,
|
|
14
|
+
paddingVertical: 10,
|
|
15
|
+
paddingHorizontal: 12,
|
|
16
|
+
alignItems: "center",
|
|
17
|
+
justifyContent: "center",
|
|
18
|
+
borderWidth: 1,
|
|
19
|
+
borderColor: "transparent",
|
|
20
|
+
},
|
|
21
|
+
itemFirst: {
|
|
22
|
+
borderTopLeftRadius: 10,
|
|
23
|
+
borderBottomLeftRadius: 10,
|
|
24
|
+
},
|
|
25
|
+
itemLast: {
|
|
26
|
+
borderTopRightRadius: 10,
|
|
27
|
+
borderBottomRightRadius: 10,
|
|
28
|
+
},
|
|
29
|
+
itemSelected: {
|
|
30
|
+
backgroundColor: theme.colors.blue[500],
|
|
31
|
+
},
|
|
32
|
+
itemText: {
|
|
33
|
+
fontSize: 14,
|
|
34
|
+
fontWeight: "600",
|
|
35
|
+
color: "#0F172A",
|
|
36
|
+
},
|
|
37
|
+
itemTextSelected: {
|
|
38
|
+
color: "#FFFFFF",
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
export { styles };
|
|
@@ -1,68 +1,112 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* IMPORTS
|
|
3
|
-
*/
|
|
4
|
-
import type React from "react";
|
|
5
|
-
import type { Meta, StoryObj } from "@storybook/react";
|
|
6
|
-
|
|
7
|
-
// components
|
|
8
|
-
import ToggleFuel from "../../components/toggle-fuel";
|
|
9
|
-
|
|
10
|
-
// typings
|
|
11
|
-
import type { ToggleFuelProps } from "../../components/toggle-fuel/interface";
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* META
|
|
15
|
-
*/
|
|
16
|
-
const meta: Meta<typeof ToggleFuel> = {
|
|
17
|
-
title: "Componente/
|
|
18
|
-
component: ToggleFuel as React.FC<ToggleFuelProps>,
|
|
19
|
-
args: {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
description: "
|
|
30
|
-
},
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
1
|
+
/**
|
|
2
|
+
* IMPORTS
|
|
3
|
+
*/
|
|
4
|
+
import type React from "react";
|
|
5
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
6
|
+
|
|
7
|
+
// components
|
|
8
|
+
import ToggleFuel from "../../components/toggle-fuel";
|
|
9
|
+
|
|
10
|
+
// typings
|
|
11
|
+
import type { ToggleFuelProps } from "../../components/toggle-fuel/interface";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* META
|
|
15
|
+
*/
|
|
16
|
+
const meta: Meta<typeof ToggleFuel> = {
|
|
17
|
+
title: "Componente/Toggle",
|
|
18
|
+
component: ToggleFuel as React.FC<ToggleFuelProps>,
|
|
19
|
+
args: {
|
|
20
|
+
defaultValue: "diesel",
|
|
21
|
+
},
|
|
22
|
+
argTypes: {
|
|
23
|
+
options: {
|
|
24
|
+
control: "object",
|
|
25
|
+
description: "Lista de opções { value, label }. Se omitido, usa Diesel/Arla.",
|
|
26
|
+
},
|
|
27
|
+
value: {
|
|
28
|
+
control: "text",
|
|
29
|
+
description: "Modo controlado: valor selecionado.",
|
|
30
|
+
},
|
|
31
|
+
defaultValue: {
|
|
32
|
+
control: "text",
|
|
33
|
+
description: "Valor inicial (não-controlado).",
|
|
34
|
+
},
|
|
35
|
+
testIDPrefix: {
|
|
36
|
+
control: "text",
|
|
37
|
+
description: "Prefixo para testID (default: 'toggle').",
|
|
38
|
+
},
|
|
39
|
+
onSelect: { action: "onSelect" },
|
|
40
|
+
},
|
|
41
|
+
parameters: {
|
|
42
|
+
docs: {
|
|
43
|
+
description: {
|
|
44
|
+
component: `
|
|
45
|
+
### Toggle
|
|
46
|
+
|
|
47
|
+
Componente de **toogle** para usuário selecionar um opção.
|
|
48
|
+
|
|
49
|
+
- \`value\`: define o valor selecionado (modo controlado)
|
|
50
|
+
- \`defaultValue\`: define o valor inicial (modo não-controlado)
|
|
51
|
+
- \`options\`: lista de opções { value, label }. Se omitido, usa Diesel/Arla.
|
|
52
|
+
- \`onSelect\`: callback ao selecionar uma opção
|
|
53
|
+
- \`options\`: define as opções da mensagem (success, alert, error)
|
|
54
|
+
|
|
55
|
+
> Use este componente quando quiser selecionar uma opção.
|
|
56
|
+
`,
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
export default meta;
|
|
62
|
+
|
|
63
|
+
type Story = StoryObj<typeof ToggleFuel>;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* STORIES
|
|
67
|
+
*/
|
|
68
|
+
export const ToggleFuelDefault: Story = {
|
|
69
|
+
name: "toggle-fuel",
|
|
70
|
+
args: {
|
|
71
|
+
options: [
|
|
72
|
+
{ value: "arla", label: "Arla" },
|
|
73
|
+
{ value: "diesel", label: "Diesel" },
|
|
74
|
+
],
|
|
75
|
+
onSelect(tipo) {
|
|
76
|
+
return tipo;
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const ToggleFuell: Story = {
|
|
82
|
+
args: {
|
|
83
|
+
options: [
|
|
84
|
+
{ value: "arla", label: "Arla" },
|
|
85
|
+
{ value: "diesel", label: "Diesel" },
|
|
86
|
+
],
|
|
87
|
+
defaultValue: "credito",
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
export const CavaloCarreta: Story = {
|
|
92
|
+
name: "toggle-fuel-cavalo-carreta",
|
|
93
|
+
args: {
|
|
94
|
+
options: [
|
|
95
|
+
{ value: "cavalo", label: "Cavalo" },
|
|
96
|
+
{ value: "carreta", label: "Carreta" },
|
|
97
|
+
],
|
|
98
|
+
defaultValue: "cavalo",
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export const TresOpcoesPagamento: Story = {
|
|
103
|
+
name: "toggle-fuel-tres-opcoes-pagamento",
|
|
104
|
+
args: {
|
|
105
|
+
options: [
|
|
106
|
+
{ value: "pix", label: "PIX" },
|
|
107
|
+
{ value: "credito", label: "Crédito" },
|
|
108
|
+
{ value: "debito", label: "Débito" },
|
|
109
|
+
],
|
|
110
|
+
defaultValue: "credito",
|
|
111
|
+
},
|
|
112
|
+
};
|