@bit.rhplus/ui.f7.detail-item 0.0.4 → 0.0.6
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/components/Category.jsx +25 -7
- package/components/Contact.jsx +2 -0
- package/components/CountryFlag.jsx +1 -0
- package/components/Custom.jsx +35 -11
- package/components/Download.jsx +1 -0
- package/components/Grid.jsx +35 -17
- package/components/InputNumber.jsx +7 -3
- package/components/InputText.jsx +7 -3
- package/components/List.jsx +38 -16
- package/components/Select.jsx +25 -7
- package/components/Switch.jsx +4 -1
- package/components/Text.jsx +1 -0
- package/dist/components/Category.d.ts +2 -1
- package/dist/components/Category.js +23 -7
- package/dist/components/Category.js.map +1 -1
- package/dist/components/Contact.d.ts +2 -1
- package/dist/components/Contact.js +3 -2
- package/dist/components/Contact.js.map +1 -1
- package/dist/components/CountryFlag.d.ts +2 -1
- package/dist/components/CountryFlag.js +2 -1
- package/dist/components/CountryFlag.js.map +1 -1
- package/dist/components/Custom.d.ts +2 -1
- package/dist/components/Custom.js +34 -11
- package/dist/components/Custom.js.map +1 -1
- package/dist/components/Download.d.ts +2 -1
- package/dist/components/Download.js +1 -0
- package/dist/components/Download.js.map +1 -1
- package/dist/components/Grid.d.ts +2 -1
- package/dist/components/Grid.js +32 -17
- package/dist/components/Grid.js.map +1 -1
- package/dist/components/InputNumber.d.ts +2 -1
- package/dist/components/InputNumber.js +6 -3
- package/dist/components/InputNumber.js.map +1 -1
- package/dist/components/InputText.d.ts +2 -1
- package/dist/components/InputText.js +6 -3
- package/dist/components/InputText.js.map +1 -1
- package/dist/components/List.d.ts +2 -1
- package/dist/components/List.js +33 -16
- package/dist/components/List.js.map +1 -1
- package/dist/components/Select.d.ts +2 -1
- package/dist/components/Select.js +23 -7
- package/dist/components/Select.js.map +1 -1
- package/dist/components/Switch.d.ts +2 -1
- package/dist/components/Switch.js +5 -2
- package/dist/components/Switch.js.map +1 -1
- package/dist/components/Text.d.ts +2 -1
- package/dist/components/Text.js +2 -1
- package/dist/components/Text.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +16 -4
- package/dist/index.js.map +1 -1
- package/dist/style.css +51 -0
- package/index.jsx +21 -3
- package/package.json +4 -3
- package/style.css +51 -0
- /package/dist/{preview-1757428602780.js → preview-1757596372346.js} +0 -0
package/components/Category.jsx
CHANGED
|
@@ -30,17 +30,32 @@ export const Category = ({
|
|
|
30
30
|
size = 16,
|
|
31
31
|
lucideIcon, // Lucide React ikona (např. Tag)
|
|
32
32
|
icon, // Jakákoliv React komponenta ikony
|
|
33
|
-
categories = [] // Array kategorií ve formátu [{ id, name, icon, color }]
|
|
33
|
+
categories = [], // Array kategorií ve formátu [{ id, name, icon, color }]
|
|
34
|
+
field = null // Pole pro výběr konkrétní vlastnosti objektu (např. 'id', 'name')
|
|
34
35
|
}) => {
|
|
35
36
|
const [popupOpened, setPopupOpened] = useState(false);
|
|
36
|
-
|
|
37
|
+
|
|
38
|
+
// Najíst objekt na základě value (pokud je field nastaven, value může být jen konkrétní vlastnost)
|
|
39
|
+
const findCategoryByValue = (val) => {
|
|
40
|
+
if (!val || !categories.length) return null;
|
|
41
|
+
|
|
42
|
+
if (field) {
|
|
43
|
+
// Pokud je field nastaven, hledej objekt podle této vlastnosti
|
|
44
|
+
return categories.find(cat => cat[field] === val) || null;
|
|
45
|
+
} else {
|
|
46
|
+
// Pokud field není nastaven, očekáváme celý objekt
|
|
47
|
+
return val;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const [selectedCategory, setSelectedCategory] = useState(() => findCategoryByValue(value));
|
|
37
52
|
|
|
38
53
|
// Aktualizuj selectedCategory když se změní value prop (pro Form.Item kompatibilitu)
|
|
39
54
|
useEffect(() => {
|
|
40
55
|
if (value !== undefined) {
|
|
41
|
-
setSelectedCategory(value
|
|
56
|
+
setSelectedCategory(findCategoryByValue(value));
|
|
42
57
|
}
|
|
43
|
-
}, [value]);
|
|
58
|
+
}, [value, categories, field]);
|
|
44
59
|
|
|
45
60
|
const linkStyle = {
|
|
46
61
|
color,
|
|
@@ -51,7 +66,7 @@ export const Category = ({
|
|
|
51
66
|
};
|
|
52
67
|
|
|
53
68
|
const handleCancel = () => {
|
|
54
|
-
setSelectedCategory(value
|
|
69
|
+
setSelectedCategory(findCategoryByValue(value));
|
|
55
70
|
setPopupOpened(false);
|
|
56
71
|
};
|
|
57
72
|
|
|
@@ -59,11 +74,14 @@ export const Category = ({
|
|
|
59
74
|
// Automaticky ulož a zavři popup
|
|
60
75
|
setSelectedCategory(category);
|
|
61
76
|
|
|
77
|
+
// Rozhodni jakou hodnotu vrátit podle field parametru
|
|
78
|
+
const returnValue = field && category ? category[field] : category;
|
|
79
|
+
|
|
62
80
|
// Preferuj onChange pro Form.Item kompatibilitu, jinak použij onSave
|
|
63
81
|
if (onChange) {
|
|
64
|
-
onChange(
|
|
82
|
+
onChange(returnValue);
|
|
65
83
|
} else if (onSave) {
|
|
66
|
-
onSave(
|
|
84
|
+
onSave(returnValue);
|
|
67
85
|
}
|
|
68
86
|
|
|
69
87
|
setPopupOpened(false);
|
package/components/Contact.jsx
CHANGED
|
@@ -47,6 +47,7 @@ export const Contact = ({
|
|
|
47
47
|
placeholder = 'Zadej kontakt',
|
|
48
48
|
color = '#6887d3',
|
|
49
49
|
size = 16,
|
|
50
|
+
field = null, // Pole pro výběr konkrétní vlastnosti objektu
|
|
50
51
|
...restProps
|
|
51
52
|
}) => {
|
|
52
53
|
// Předdefinovaná pole pro Externí PM
|
|
@@ -99,6 +100,7 @@ export const Contact = ({
|
|
|
99
100
|
FormRenderer={ContactRenderer}
|
|
100
101
|
fields={pmFields}
|
|
101
102
|
displayFields={displayFields}
|
|
103
|
+
field={field}
|
|
102
104
|
{...restProps}
|
|
103
105
|
/>
|
|
104
106
|
);
|
|
@@ -11,6 +11,7 @@ export const CountryFlag = ({
|
|
|
11
11
|
size = 20,
|
|
12
12
|
style,
|
|
13
13
|
showName = true,
|
|
14
|
+
field = null, // Pole pro výběr konkrétní vlastnosti objektu (pro konzistenci, ale CountryFlag nepoužívá objekty)
|
|
14
15
|
...restProps
|
|
15
16
|
}) => {
|
|
16
17
|
// Pro Form.Item kompatibilitu - zobraz value pokud je poskytnut, jinak children
|
package/components/Custom.jsx
CHANGED
|
@@ -36,6 +36,7 @@ export const Custom = ({
|
|
|
36
36
|
{ key: 'position', label: 'Pozice', type: 'text', placeholder: 'Zadejte pozici' }
|
|
37
37
|
],
|
|
38
38
|
displayFields = ['firstName', 'lastName', 'position'], // Pole pro zobrazení v linku
|
|
39
|
+
field = null, // Pole pro výběr konkrétní vlastnosti objektu
|
|
39
40
|
...restProps
|
|
40
41
|
}) => {
|
|
41
42
|
const [popupOpened, setPopupOpened] = useState(false);
|
|
@@ -51,6 +52,22 @@ export const Custom = ({
|
|
|
51
52
|
|
|
52
53
|
const [formData, setFormData] = useState(getInitialFormData());
|
|
53
54
|
|
|
55
|
+
// Najdi objekt na základě value (pokud je field nastaven, value může být jen konkrétní vlastnost)
|
|
56
|
+
const findObjectByValue = (val) => {
|
|
57
|
+
if (!val) return null;
|
|
58
|
+
|
|
59
|
+
if (field) {
|
|
60
|
+
// Pokud je field nastaven, value je konkrétní vlastnost - musíme najít objekt jiným způsobem
|
|
61
|
+
// Pro Custom komponentu to není možné, protože nemáme seznam objektů k prohledání
|
|
62
|
+
// V tomto případě očekáváme, že value bude stále celý objekt
|
|
63
|
+
console.warn('Custom komponenta s field parametrem vyžaduje, aby value byl stále celý objekt');
|
|
64
|
+
return val;
|
|
65
|
+
} else {
|
|
66
|
+
// Pokud field není nastaven, očekáváme celý objekt
|
|
67
|
+
return val;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
54
71
|
// Aktualizuj formData když se změní value prop nebo fields (ale ne když je popup otevřený)
|
|
55
72
|
useEffect(() => {
|
|
56
73
|
if (popupOpened) return; // Neaktualizuj formData když je popup otevřený
|
|
@@ -60,14 +77,15 @@ export const Custom = ({
|
|
|
60
77
|
newFormData[field.key] = '';
|
|
61
78
|
});
|
|
62
79
|
|
|
63
|
-
|
|
80
|
+
const currentObject = findObjectByValue(value);
|
|
81
|
+
if (currentObject && typeof currentObject === 'object') {
|
|
64
82
|
fields.forEach(field => {
|
|
65
|
-
newFormData[field.key] =
|
|
83
|
+
newFormData[field.key] = currentObject[field.key] || '';
|
|
66
84
|
});
|
|
67
85
|
}
|
|
68
86
|
|
|
69
87
|
setFormData(newFormData);
|
|
70
|
-
}, [value, fields, popupOpened]);
|
|
88
|
+
}, [value, fields, popupOpened, field]);
|
|
71
89
|
|
|
72
90
|
const linkStyle = {
|
|
73
91
|
color,
|
|
@@ -79,11 +97,14 @@ export const Custom = ({
|
|
|
79
97
|
|
|
80
98
|
const handleSave = () => {
|
|
81
99
|
const result = { ...formData };
|
|
100
|
+
|
|
101
|
+
// Rozhodni jakou hodnotu vrátit podle field parametru
|
|
102
|
+
const returnValue = field ? result[field] : result;
|
|
82
103
|
|
|
83
104
|
if (onChange) {
|
|
84
|
-
onChange(
|
|
105
|
+
onChange(returnValue);
|
|
85
106
|
} else if (onSave) {
|
|
86
|
-
onSave(
|
|
107
|
+
onSave(returnValue);
|
|
87
108
|
}
|
|
88
109
|
setPopupOpened(false);
|
|
89
110
|
};
|
|
@@ -94,9 +115,10 @@ export const Custom = ({
|
|
|
94
115
|
newFormData[field.key] = '';
|
|
95
116
|
});
|
|
96
117
|
|
|
97
|
-
|
|
118
|
+
const currentObject = findObjectByValue(value);
|
|
119
|
+
if (currentObject && typeof currentObject === 'object') {
|
|
98
120
|
fields.forEach(field => {
|
|
99
|
-
newFormData[field.key] =
|
|
121
|
+
newFormData[field.key] = currentObject[field.key] || '';
|
|
100
122
|
});
|
|
101
123
|
}
|
|
102
124
|
|
|
@@ -118,9 +140,10 @@ export const Custom = ({
|
|
|
118
140
|
newFormData[field.key] = '';
|
|
119
141
|
});
|
|
120
142
|
|
|
121
|
-
|
|
143
|
+
const currentObject = findObjectByValue(value);
|
|
144
|
+
if (currentObject && typeof currentObject === 'object') {
|
|
122
145
|
fields.forEach(field => {
|
|
123
|
-
newFormData[field.key] =
|
|
146
|
+
newFormData[field.key] = currentObject[field.key] || '';
|
|
124
147
|
});
|
|
125
148
|
}
|
|
126
149
|
|
|
@@ -142,9 +165,10 @@ export const Custom = ({
|
|
|
142
165
|
|
|
143
166
|
// Zobrazí text v linku podle vyplněných dat
|
|
144
167
|
const getDisplayText = () => {
|
|
145
|
-
|
|
168
|
+
const currentObject = findObjectByValue(value);
|
|
169
|
+
if (currentObject && typeof currentObject === 'object') {
|
|
146
170
|
const displayValues = displayFields
|
|
147
|
-
.map(fieldKey =>
|
|
171
|
+
.map(fieldKey => currentObject[fieldKey])
|
|
148
172
|
.filter(Boolean);
|
|
149
173
|
|
|
150
174
|
if (displayValues.length > 0) {
|
package/components/Download.jsx
CHANGED
|
@@ -13,6 +13,7 @@ export const Download = ({
|
|
|
13
13
|
value,
|
|
14
14
|
lucideIcon, // Lucide React ikona
|
|
15
15
|
icon, // Jakákoliv React komponenta ikony
|
|
16
|
+
field = null, // Pole pro výběr konkrétní vlastnosti objektu (pro konzistenci, ale Download nepoužívá objekty)
|
|
16
17
|
...restProps
|
|
17
18
|
}) => {
|
|
18
19
|
// Pro Form.Item kompatibilitu - zobraz value pokud je poskytnut, jinak children
|
package/components/Grid.jsx
CHANGED
|
@@ -37,12 +37,29 @@ export const Grid = ({
|
|
|
37
37
|
onRowDoubleClicked, // Callback pro double click na řádek
|
|
38
38
|
gridHeight = '400px', // Výška gridu
|
|
39
39
|
selectionMode = 'single', // 'single' nebo 'multiple'
|
|
40
|
-
displayField = 'name' // Pole, které se zobrazí v detail-item při výběru
|
|
40
|
+
displayField = 'name', // Pole, které se zobrazí v detail-item při výběru
|
|
41
|
+
field = null // Pole pro výběr konkrétní vlastnosti objektu
|
|
41
42
|
}) => {
|
|
42
43
|
const [popupOpened, setPopupOpened] = useState(false);
|
|
44
|
+
|
|
45
|
+
// Najíst objekty na základě value (pokud je field nastaven, value může být jen pole konkrétních vlastností)
|
|
46
|
+
const findRowsByValue = (val) => {
|
|
47
|
+
if (!val || !rowData.length) return [];
|
|
48
|
+
|
|
49
|
+
const valueArray = Array.isArray(val) ? val : [val];
|
|
50
|
+
|
|
51
|
+
if (field) {
|
|
52
|
+
// Pokud je field nastaven, hledej objekty podle této vlastnosti
|
|
53
|
+
return valueArray.map(v => rowData.find(row => row[field] === v)).filter(Boolean);
|
|
54
|
+
} else {
|
|
55
|
+
// Pokud field není nastaven, očekáváme objekty
|
|
56
|
+
return valueArray;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
43
60
|
// Inicializuj selectedRows pouze jednou při mount
|
|
44
61
|
const initialSelectedRows = useMemo(() => {
|
|
45
|
-
return
|
|
62
|
+
return findRowsByValue(value);
|
|
46
63
|
}, []); // Prázdné dependency array - pouze při mount
|
|
47
64
|
|
|
48
65
|
const [selectedRows, setSelectedRows] = useState(initialSelectedRows);
|
|
@@ -57,15 +74,13 @@ export const Grid = ({
|
|
|
57
74
|
|
|
58
75
|
const handleCancel = () => {
|
|
59
76
|
// Při zrušení resetuj na původní hodnoty
|
|
60
|
-
|
|
61
|
-
setSelectedRows(originalValue);
|
|
77
|
+
setSelectedRows(findRowsByValue(value));
|
|
62
78
|
setPopupOpened(false);
|
|
63
79
|
};
|
|
64
80
|
|
|
65
81
|
const handleOpenPopup = () => {
|
|
66
82
|
// Při otevření nastav aktuální hodnotu
|
|
67
|
-
|
|
68
|
-
setSelectedRows(currentValue);
|
|
83
|
+
setSelectedRows(findRowsByValue(value));
|
|
69
84
|
setPopupOpened(true);
|
|
70
85
|
};
|
|
71
86
|
|
|
@@ -99,15 +114,18 @@ export const Grid = ({
|
|
|
99
114
|
result = selectedRows.length === 1 ? selectedRows[0] : selectedRows;
|
|
100
115
|
}
|
|
101
116
|
|
|
117
|
+
// Rozhodni jakou hodnotu vrátit podle field parametru
|
|
118
|
+
const returnValue = field && result ? (Array.isArray(result) ? result.map(item => item[field]) : result[field]) : result;
|
|
119
|
+
|
|
102
120
|
// Debug pouze při uložení
|
|
103
|
-
console.log('Saving Grid selection:', { selectedRows, result, selectionMode, hasOnChange: !!onChange, hasOnSave: !!onSave });
|
|
121
|
+
console.log('Saving Grid selection:', { selectedRows, result, returnValue, field, selectionMode, hasOnChange: !!onChange, hasOnSave: !!onSave });
|
|
104
122
|
|
|
105
123
|
if (onChange) {
|
|
106
|
-
onChange(
|
|
107
|
-
console.log('Grid - onChange called with:',
|
|
124
|
+
onChange(returnValue);
|
|
125
|
+
console.log('Grid - onChange called with:', returnValue);
|
|
108
126
|
} else if (onSave) {
|
|
109
|
-
onSave(
|
|
110
|
-
console.log('Grid - onSave called with:',
|
|
127
|
+
onSave(returnValue);
|
|
128
|
+
console.log('Grid - onSave called with:', returnValue);
|
|
111
129
|
}
|
|
112
130
|
|
|
113
131
|
setPopupOpened(false);
|
|
@@ -141,15 +159,15 @@ export const Grid = ({
|
|
|
141
159
|
<Link onClick={handleOpenPopup} className="link" style={linkStyle}>
|
|
142
160
|
{renderIcon()}
|
|
143
161
|
{(() => {
|
|
144
|
-
// Použij
|
|
145
|
-
const
|
|
162
|
+
// Použij objekty pro zobrazení (převedené z value)
|
|
163
|
+
const currentRows = findRowsByValue(value);
|
|
146
164
|
|
|
147
|
-
if (
|
|
165
|
+
if (currentRows.length === 1) {
|
|
148
166
|
// Pokud je vybraná jedna položka, zobraz hodnotu z displayField
|
|
149
|
-
const item =
|
|
167
|
+
const item = currentRows[0];
|
|
150
168
|
return item[displayField] || item.name || item.title || item.id || 'Vybraná položka';
|
|
151
|
-
} else if (
|
|
152
|
-
return `${
|
|
169
|
+
} else if (currentRows.length > 1) {
|
|
170
|
+
return `${currentRows.length} vybraných položek`;
|
|
153
171
|
}
|
|
154
172
|
return placeholder;
|
|
155
173
|
})()}
|
|
@@ -32,7 +32,8 @@ export const InputNumber = ({
|
|
|
32
32
|
max,
|
|
33
33
|
step = 1,
|
|
34
34
|
lucideIcon, // Lucide React ikona
|
|
35
|
-
icon // Jakákoliv React komponenta ikony
|
|
35
|
+
icon, // Jakákoliv React komponenta ikony
|
|
36
|
+
field = null // Pole pro výběr konkrétní vlastnosti objektu
|
|
36
37
|
}) => {
|
|
37
38
|
const [popupOpened, setPopupOpened] = useState(false);
|
|
38
39
|
const [inputValue, setInputValue] = useState(value || children || '');
|
|
@@ -56,11 +57,14 @@ export const InputNumber = ({
|
|
|
56
57
|
const numericValue = parseFloat(inputValue);
|
|
57
58
|
const finalValue = isNaN(numericValue) ? inputValue : numericValue;
|
|
58
59
|
|
|
60
|
+
// Rozhodni jakou hodnotu vrátit podle field parametru (pro InputNumber nevyžíváme pole objektu)
|
|
61
|
+
const returnValue = finalValue;
|
|
62
|
+
|
|
59
63
|
// Preferuj onChange pro Form.Item kompatibilitu, jinak použij onSave
|
|
60
64
|
if (onChange) {
|
|
61
|
-
onChange(
|
|
65
|
+
onChange(returnValue);
|
|
62
66
|
} else if (onSave) {
|
|
63
|
-
onSave(
|
|
67
|
+
onSave(returnValue);
|
|
64
68
|
}
|
|
65
69
|
setPopupOpened(false);
|
|
66
70
|
};
|
package/components/InputText.jsx
CHANGED
|
@@ -29,7 +29,8 @@ export const InputText = ({
|
|
|
29
29
|
color = '#6887d3',
|
|
30
30
|
size = 16,
|
|
31
31
|
lucideIcon, // Lucide React ikona (např. Pencil, Edit3)
|
|
32
|
-
icon // Jakákoliv React komponenta ikony
|
|
32
|
+
icon, // Jakákoliv React komponenta ikony
|
|
33
|
+
field = null // Pole pro výběr konkrétní vlastnosti objektu
|
|
33
34
|
}) => {
|
|
34
35
|
const [popupOpened, setPopupOpened] = useState(false);
|
|
35
36
|
const [inputValue, setInputValue] = useState(value || children || '');
|
|
@@ -50,11 +51,14 @@ export const InputText = ({
|
|
|
50
51
|
};
|
|
51
52
|
|
|
52
53
|
const handleSave = () => {
|
|
54
|
+
// Rozhodni jakou hodnotu vrátit podle field parametru (pro InputText nevyžíváme pole objektu)
|
|
55
|
+
const returnValue = inputValue;
|
|
56
|
+
|
|
53
57
|
// Preferuj onChange pro Form.Item kompatibilitu, jinak použij onSave
|
|
54
58
|
if (onChange) {
|
|
55
|
-
onChange(
|
|
59
|
+
onChange(returnValue);
|
|
56
60
|
} else if (onSave) {
|
|
57
|
-
onSave(
|
|
61
|
+
onSave(returnValue);
|
|
58
62
|
}
|
|
59
63
|
setPopupOpened(false);
|
|
60
64
|
};
|
package/components/List.jsx
CHANGED
|
@@ -41,12 +41,29 @@ export const List = ({
|
|
|
41
41
|
countryField = 'country', // Pole pro zemi (objekt s country.code)
|
|
42
42
|
showCountryFlag = false, // Zda zobrazit vlajku země místo standardní ikony
|
|
43
43
|
flagSize = 16, // Velikost vlajky
|
|
44
|
-
ItemRenderer // Custom komponenta pro renderování jednotlivých položek
|
|
44
|
+
ItemRenderer, // Custom komponenta pro renderování jednotlivých položek
|
|
45
|
+
field = null // Pole pro výběr konkrétní vlastnosti objektu
|
|
45
46
|
}) => {
|
|
46
47
|
const [popupOpened, setPopupOpened] = useState(false);
|
|
48
|
+
|
|
49
|
+
// Najíst objekty na základě value (pokud je field nastaven, value může být jen pole konkrétních vlastností)
|
|
50
|
+
const findItemsByValue = (val) => {
|
|
51
|
+
if (!val || !options.length) return [];
|
|
52
|
+
|
|
53
|
+
const valueArray = Array.isArray(val) ? val : [val];
|
|
54
|
+
|
|
55
|
+
if (field) {
|
|
56
|
+
// Pokud je field nastaven, hledej objekty podle této vlastnosti
|
|
57
|
+
return valueArray.map(v => options.find(opt => opt[field] === v)).filter(Boolean);
|
|
58
|
+
} else {
|
|
59
|
+
// Pokud field není nastaven, očekáváme objekty
|
|
60
|
+
return valueArray;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
47
64
|
// Inicializuj selectedItems pouze jednou při mount
|
|
48
65
|
const initialSelectedItems = useMemo(() => {
|
|
49
|
-
return
|
|
66
|
+
return findItemsByValue(value);
|
|
50
67
|
}, []); // Prázdné dependency array - pouze při mount
|
|
51
68
|
|
|
52
69
|
const [selectedItems, setSelectedItems] = useState(initialSelectedItems);
|
|
@@ -60,15 +77,13 @@ export const List = ({
|
|
|
60
77
|
};
|
|
61
78
|
|
|
62
79
|
const handleCancel = () => {
|
|
63
|
-
|
|
64
|
-
setSelectedItems(originalValue);
|
|
80
|
+
setSelectedItems(findItemsByValue(value));
|
|
65
81
|
setPopupOpened(false);
|
|
66
82
|
};
|
|
67
83
|
|
|
68
84
|
const handleOpenPopup = () => {
|
|
69
85
|
// Reset selected items při otevření
|
|
70
|
-
|
|
71
|
-
setSelectedItems(currentValue);
|
|
86
|
+
setSelectedItems(findItemsByValue(value));
|
|
72
87
|
setPopupOpened(true);
|
|
73
88
|
};
|
|
74
89
|
|
|
@@ -79,10 +94,14 @@ export const List = ({
|
|
|
79
94
|
const handleItemClick = (item) => {
|
|
80
95
|
if (selectionMode === 'single') {
|
|
81
96
|
// Single selection - přímé uložení položky bez použití state
|
|
97
|
+
|
|
98
|
+
// Rozhodni jakou hodnotu vrátit podle field parametru
|
|
99
|
+
const returnValue = field && item ? item[field] : item;
|
|
100
|
+
|
|
82
101
|
if (onChange) {
|
|
83
|
-
onChange(
|
|
102
|
+
onChange(returnValue);
|
|
84
103
|
} else if (onSave) {
|
|
85
|
-
onSave(
|
|
104
|
+
onSave(returnValue);
|
|
86
105
|
}
|
|
87
106
|
|
|
88
107
|
// Zavři popup
|
|
@@ -111,10 +130,13 @@ export const List = ({
|
|
|
111
130
|
result = selectedItems.length === 1 ? selectedItems[0] : selectedItems;
|
|
112
131
|
}
|
|
113
132
|
|
|
133
|
+
// Rozhodni jakou hodnotu vrátit podle field parametru
|
|
134
|
+
const returnValue = field && result ? (Array.isArray(result) ? result.map(item => item[field]) : result[field]) : result;
|
|
135
|
+
|
|
114
136
|
if (onChange) {
|
|
115
|
-
onChange(
|
|
137
|
+
onChange(returnValue);
|
|
116
138
|
} else if (onSave) {
|
|
117
|
-
onSave(
|
|
139
|
+
onSave(returnValue);
|
|
118
140
|
}
|
|
119
141
|
|
|
120
142
|
setPopupOpened(false);
|
|
@@ -189,15 +211,15 @@ export const List = ({
|
|
|
189
211
|
<Link onClick={handleOpenPopup} className="link" style={linkStyle}>
|
|
190
212
|
{renderIcon()}
|
|
191
213
|
{(() => {
|
|
192
|
-
// Použij
|
|
193
|
-
const
|
|
214
|
+
// Použij objekty pro zobrazení (převedené z value)
|
|
215
|
+
const currentItems = findItemsByValue(value);
|
|
194
216
|
|
|
195
|
-
if (
|
|
217
|
+
if (currentItems.length === 1) {
|
|
196
218
|
// Pokud je vybraná jedna položka, zobraz hodnotu z displayField
|
|
197
|
-
const item =
|
|
219
|
+
const item = currentItems[0];
|
|
198
220
|
return item[displayField] || item.name || item.title || item.id || 'Vybraná položka';
|
|
199
|
-
} else if (
|
|
200
|
-
return `${
|
|
221
|
+
} else if (currentItems.length > 1) {
|
|
222
|
+
return `${currentItems.length} vybraných položek`;
|
|
201
223
|
}
|
|
202
224
|
return placeholder;
|
|
203
225
|
})()}
|
package/components/Select.jsx
CHANGED
|
@@ -30,17 +30,32 @@ export const Select = ({
|
|
|
30
30
|
size = 16,
|
|
31
31
|
lucideIcon, // Lucide React ikona (např. ChevronDown)
|
|
32
32
|
icon, // Jakákoliv React komponenta ikony
|
|
33
|
-
options = [] // Array možností ve formátu [{ id, name, description?, color? }]
|
|
33
|
+
options = [], // Array možností ve formátu [{ id, name, description?, color? }]
|
|
34
|
+
field = null // Pole pro výběr konkrétní vlastnosti objektu (např. 'id', 'name')
|
|
34
35
|
}) => {
|
|
35
36
|
const [popupOpened, setPopupOpened] = useState(false);
|
|
36
|
-
|
|
37
|
+
|
|
38
|
+
// Najíst objekt na základě value (pokud je field nastaven, value může být jen konkrétní vlastnost)
|
|
39
|
+
const findOptionByValue = (val) => {
|
|
40
|
+
if (!val || !options.length) return null;
|
|
41
|
+
|
|
42
|
+
if (field) {
|
|
43
|
+
// Pokud je field nastaven, hledej objekt podle této vlastnosti
|
|
44
|
+
return options.find(opt => opt[field] === val) || null;
|
|
45
|
+
} else {
|
|
46
|
+
// Pokud field není nastaven, očekáváme celý objekt
|
|
47
|
+
return val;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const [selectedOption, setSelectedOption] = useState(() => findOptionByValue(value));
|
|
37
52
|
|
|
38
53
|
// Aktualizuj selectedOption když se změní value prop (pro Form.Item kompatibilitu)
|
|
39
54
|
useEffect(() => {
|
|
40
55
|
if (value !== undefined) {
|
|
41
|
-
setSelectedOption(value
|
|
56
|
+
setSelectedOption(findOptionByValue(value));
|
|
42
57
|
}
|
|
43
|
-
}, [value]);
|
|
58
|
+
}, [value, options, field]);
|
|
44
59
|
|
|
45
60
|
const linkStyle = {
|
|
46
61
|
color,
|
|
@@ -51,7 +66,7 @@ export const Select = ({
|
|
|
51
66
|
};
|
|
52
67
|
|
|
53
68
|
const handleCancel = () => {
|
|
54
|
-
setSelectedOption(value
|
|
69
|
+
setSelectedOption(findOptionByValue(value));
|
|
55
70
|
setPopupOpened(false);
|
|
56
71
|
};
|
|
57
72
|
|
|
@@ -59,11 +74,14 @@ export const Select = ({
|
|
|
59
74
|
// Automaticky ulož a zavři popup
|
|
60
75
|
setSelectedOption(option);
|
|
61
76
|
|
|
77
|
+
// Rozhodni jakou hodnotu vrátit podle field parametru
|
|
78
|
+
const returnValue = field && option ? option[field] : option;
|
|
79
|
+
|
|
62
80
|
// Preferuj onChange pro Form.Item kompatibilitu, jinak použij onSave
|
|
63
81
|
if (onChange) {
|
|
64
|
-
onChange(
|
|
82
|
+
onChange(returnValue);
|
|
65
83
|
} else if (onSave) {
|
|
66
|
-
onSave(
|
|
84
|
+
onSave(returnValue);
|
|
67
85
|
}
|
|
68
86
|
|
|
69
87
|
setPopupOpened(false);
|
package/components/Switch.jsx
CHANGED
|
@@ -12,6 +12,7 @@ export const Switch = ({
|
|
|
12
12
|
// Ikona props - Switch nemá vizuální ikonu, ale zachováme konzistenci
|
|
13
13
|
lucideIcon,
|
|
14
14
|
icon,
|
|
15
|
+
field = null, // Pole pro výběr konkrétní vlastnosti objektu
|
|
15
16
|
...restProps
|
|
16
17
|
}) => {
|
|
17
18
|
// Pro Form.Item kompatibilitu - preferuj value před checked
|
|
@@ -20,8 +21,10 @@ export const Switch = ({
|
|
|
20
21
|
// Framework7 Toggle předává event, ale Form.Item očekává boolean hodnotu
|
|
21
22
|
const handleChange = (event) => {
|
|
22
23
|
if (onChange) {
|
|
24
|
+
// Rozhodni jakou hodnotu vrátit podle field parametru (pro Switch nevyžíváme pole objektu)
|
|
25
|
+
const returnValue = event.target.checked;
|
|
23
26
|
// Pro Form.Item předáme boolean hodnotu
|
|
24
|
-
onChange(
|
|
27
|
+
onChange(returnValue);
|
|
25
28
|
}
|
|
26
29
|
};
|
|
27
30
|
|
package/components/Text.jsx
CHANGED
|
@@ -9,6 +9,7 @@ export const Text = ({
|
|
|
9
9
|
lucideIcon, // Lucide React ikona
|
|
10
10
|
icon, // Jakákoliv React komponenta ikony
|
|
11
11
|
iconSize = 16,
|
|
12
|
+
field = null, // Pole pro výběr konkrétní vlastnosti objektu (pro konzistenci, ale Text nepoužívá objekty)
|
|
12
13
|
...restProps
|
|
13
14
|
}) => {
|
|
14
15
|
// Pro Form.Item kompatibilitu - zobraz value pokud je poskytnut, jinak children
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function Category({ children, value, onSave, onChange, title, placeholder, color, size, lucideIcon, icon, categories }: {
|
|
1
|
+
export function Category({ children, value, onSave, onChange, title, placeholder, color, size, lucideIcon, icon, categories, field }: {
|
|
2
2
|
children: any;
|
|
3
3
|
value: any;
|
|
4
4
|
onSave: any;
|
|
@@ -10,4 +10,5 @@ export function Category({ children, value, onSave, onChange, title, placeholder
|
|
|
10
10
|
lucideIcon: any;
|
|
11
11
|
icon: any;
|
|
12
12
|
categories?: any[] | undefined;
|
|
13
|
+
field?: null | undefined;
|
|
13
14
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -8,16 +8,30 @@ import CircleButton from '@bit.rhplus/ui.circle-button';
|
|
|
8
8
|
export const Category = ({ children, value, onSave, onChange, // Přidáno pro Form.Item kompatibilitu
|
|
9
9
|
title = 'Vyber', placeholder = 'Vyber kategorii', color = '#6887d3', size = 16, lucideIcon, // Lucide React ikona (např. Tag)
|
|
10
10
|
icon, // Jakákoliv React komponenta ikony
|
|
11
|
-
categories = [] // Array kategorií ve formátu [{ id, name, icon, color }]
|
|
11
|
+
categories = [], // Array kategorií ve formátu [{ id, name, icon, color }]
|
|
12
|
+
field = null // Pole pro výběr konkrétní vlastnosti objektu (např. 'id', 'name')
|
|
12
13
|
}) => {
|
|
13
14
|
const [popupOpened, setPopupOpened] = useState(false);
|
|
14
|
-
|
|
15
|
+
// Najíst objekt na základě value (pokud je field nastaven, value může být jen konkrétní vlastnost)
|
|
16
|
+
const findCategoryByValue = (val) => {
|
|
17
|
+
if (!val || !categories.length)
|
|
18
|
+
return null;
|
|
19
|
+
if (field) {
|
|
20
|
+
// Pokud je field nastaven, hledej objekt podle této vlastnosti
|
|
21
|
+
return categories.find(cat => cat[field] === val) || null;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
// Pokud field není nastaven, očekáváme celý objekt
|
|
25
|
+
return val;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const [selectedCategory, setSelectedCategory] = useState(() => findCategoryByValue(value));
|
|
15
29
|
// Aktualizuj selectedCategory když se změní value prop (pro Form.Item kompatibilitu)
|
|
16
30
|
useEffect(() => {
|
|
17
31
|
if (value !== undefined) {
|
|
18
|
-
setSelectedCategory(value
|
|
32
|
+
setSelectedCategory(findCategoryByValue(value));
|
|
19
33
|
}
|
|
20
|
-
}, [value]);
|
|
34
|
+
}, [value, categories, field]);
|
|
21
35
|
const linkStyle = {
|
|
22
36
|
color,
|
|
23
37
|
cursor: 'pointer',
|
|
@@ -26,18 +40,20 @@ categories = [] // Array kategorií ve formátu [{ id, name, icon, color }]
|
|
|
26
40
|
gap: '6px'
|
|
27
41
|
};
|
|
28
42
|
const handleCancel = () => {
|
|
29
|
-
setSelectedCategory(value
|
|
43
|
+
setSelectedCategory(findCategoryByValue(value));
|
|
30
44
|
setPopupOpened(false);
|
|
31
45
|
};
|
|
32
46
|
const selectCategory = (category) => {
|
|
33
47
|
// Automaticky ulož a zavři popup
|
|
34
48
|
setSelectedCategory(category);
|
|
49
|
+
// Rozhodni jakou hodnotu vrátit podle field parametru
|
|
50
|
+
const returnValue = field && category ? category[field] : category;
|
|
35
51
|
// Preferuj onChange pro Form.Item kompatibilitu, jinak použij onSave
|
|
36
52
|
if (onChange) {
|
|
37
|
-
onChange(
|
|
53
|
+
onChange(returnValue);
|
|
38
54
|
}
|
|
39
55
|
else if (onSave) {
|
|
40
|
-
onSave(
|
|
56
|
+
onSave(returnValue);
|
|
41
57
|
}
|
|
42
58
|
setPopupOpened(false);
|
|
43
59
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Category.js","sourceRoot":"","sources":["../../components/Category.jsx"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,MAAM,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,SAAS,EACT,MAAM,EACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,YAAY,MAAM,8BAA8B,CAAC;AAExD,sFAAsF;AACtF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,QAAQ,EACR,KAAK,EACL,MAAM,EACN,QAAQ,EAAE,sCAAsC;AAChD,KAAK,GAAG,OAAO,EACf,WAAW,GAAG,iBAAiB,EAC/B,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,EAAE,EACT,UAAU,EAAE,iCAAiC;AAC7C,IAAI,EAAE,mCAAmC;AACzC,UAAU,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"Category.js","sourceRoot":"","sources":["../../components/Category.jsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function Contact({ value, onSave, onChange, title, placeholder, color, size, ...restProps }: {
|
|
1
|
+
export function Contact({ value, onSave, onChange, title, placeholder, color, size, field, ...restProps }: {
|
|
2
2
|
[x: string]: any;
|
|
3
3
|
value: any;
|
|
4
4
|
onSave: any;
|
|
@@ -7,4 +7,5 @@ export function Contact({ value, onSave, onChange, title, placeholder, color, si
|
|
|
7
7
|
placeholder?: string | undefined;
|
|
8
8
|
color?: string | undefined;
|
|
9
9
|
size?: number | undefined;
|
|
10
|
+
field?: null | undefined;
|
|
10
11
|
}): import("react/jsx-runtime").JSX.Element;
|