@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.
Files changed (56) hide show
  1. package/components/Category.jsx +25 -7
  2. package/components/Contact.jsx +2 -0
  3. package/components/CountryFlag.jsx +1 -0
  4. package/components/Custom.jsx +35 -11
  5. package/components/Download.jsx +1 -0
  6. package/components/Grid.jsx +35 -17
  7. package/components/InputNumber.jsx +7 -3
  8. package/components/InputText.jsx +7 -3
  9. package/components/List.jsx +38 -16
  10. package/components/Select.jsx +25 -7
  11. package/components/Switch.jsx +4 -1
  12. package/components/Text.jsx +1 -0
  13. package/dist/components/Category.d.ts +2 -1
  14. package/dist/components/Category.js +23 -7
  15. package/dist/components/Category.js.map +1 -1
  16. package/dist/components/Contact.d.ts +2 -1
  17. package/dist/components/Contact.js +3 -2
  18. package/dist/components/Contact.js.map +1 -1
  19. package/dist/components/CountryFlag.d.ts +2 -1
  20. package/dist/components/CountryFlag.js +2 -1
  21. package/dist/components/CountryFlag.js.map +1 -1
  22. package/dist/components/Custom.d.ts +2 -1
  23. package/dist/components/Custom.js +34 -11
  24. package/dist/components/Custom.js.map +1 -1
  25. package/dist/components/Download.d.ts +2 -1
  26. package/dist/components/Download.js +1 -0
  27. package/dist/components/Download.js.map +1 -1
  28. package/dist/components/Grid.d.ts +2 -1
  29. package/dist/components/Grid.js +32 -17
  30. package/dist/components/Grid.js.map +1 -1
  31. package/dist/components/InputNumber.d.ts +2 -1
  32. package/dist/components/InputNumber.js +6 -3
  33. package/dist/components/InputNumber.js.map +1 -1
  34. package/dist/components/InputText.d.ts +2 -1
  35. package/dist/components/InputText.js +6 -3
  36. package/dist/components/InputText.js.map +1 -1
  37. package/dist/components/List.d.ts +2 -1
  38. package/dist/components/List.js +33 -16
  39. package/dist/components/List.js.map +1 -1
  40. package/dist/components/Select.d.ts +2 -1
  41. package/dist/components/Select.js +23 -7
  42. package/dist/components/Select.js.map +1 -1
  43. package/dist/components/Switch.d.ts +2 -1
  44. package/dist/components/Switch.js +5 -2
  45. package/dist/components/Switch.js.map +1 -1
  46. package/dist/components/Text.d.ts +2 -1
  47. package/dist/components/Text.js +2 -1
  48. package/dist/components/Text.js.map +1 -1
  49. package/dist/index.d.ts +2 -1
  50. package/dist/index.js +16 -4
  51. package/dist/index.js.map +1 -1
  52. package/dist/style.css +51 -0
  53. package/index.jsx +21 -3
  54. package/package.json +4 -3
  55. package/style.css +51 -0
  56. /package/dist/{preview-1757428602780.js → preview-1757596372346.js} +0 -0
@@ -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
- const [selectedCategory, setSelectedCategory] = useState(value || null);
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 || null);
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 || null);
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(category);
82
+ onChange(returnValue);
65
83
  } else if (onSave) {
66
- onSave(category);
84
+ onSave(returnValue);
67
85
  }
68
86
 
69
87
  setPopupOpened(false);
@@ -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
@@ -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
- if (value && typeof value === 'object') {
80
+ const currentObject = findObjectByValue(value);
81
+ if (currentObject && typeof currentObject === 'object') {
64
82
  fields.forEach(field => {
65
- newFormData[field.key] = value[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(result);
105
+ onChange(returnValue);
85
106
  } else if (onSave) {
86
- onSave(result);
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
- if (value && typeof value === 'object') {
118
+ const currentObject = findObjectByValue(value);
119
+ if (currentObject && typeof currentObject === 'object') {
98
120
  fields.forEach(field => {
99
- newFormData[field.key] = value[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
- if (value && typeof value === 'object') {
143
+ const currentObject = findObjectByValue(value);
144
+ if (currentObject && typeof currentObject === 'object') {
122
145
  fields.forEach(field => {
123
- newFormData[field.key] = value[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
- if (value && typeof value === 'object') {
168
+ const currentObject = findObjectByValue(value);
169
+ if (currentObject && typeof currentObject === 'object') {
146
170
  const displayValues = displayFields
147
- .map(fieldKey => value[fieldKey])
171
+ .map(fieldKey => currentObject[fieldKey])
148
172
  .filter(Boolean);
149
173
 
150
174
  if (displayValues.length > 0) {
@@ -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
@@ -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 value ? (Array.isArray(value) ? value : [value]) : [];
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
- const originalValue = value ? (Array.isArray(value) ? value : [value]) : [];
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
- const currentValue = value ? (Array.isArray(value) ? value : [value]) : [];
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(result);
107
- console.log('Grid - onChange called with:', result);
124
+ onChange(returnValue);
125
+ console.log('Grid - onChange called with:', returnValue);
108
126
  } else if (onSave) {
109
- onSave(result);
110
- console.log('Grid - onSave called with:', result);
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 value prop pro zobrazení (value obsahuje uloženou hodnotu)
145
- const currentValue = value ? (Array.isArray(value) ? value : [value]) : [];
162
+ // Použij objekty pro zobrazení (převedené z value)
163
+ const currentRows = findRowsByValue(value);
146
164
 
147
- if (currentValue.length === 1) {
165
+ if (currentRows.length === 1) {
148
166
  // Pokud je vybraná jedna položka, zobraz hodnotu z displayField
149
- const item = currentValue[0];
167
+ const item = currentRows[0];
150
168
  return item[displayField] || item.name || item.title || item.id || 'Vybraná položka';
151
- } else if (currentValue.length > 1) {
152
- return `${currentValue.length} vybraných položek`;
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(finalValue);
65
+ onChange(returnValue);
62
66
  } else if (onSave) {
63
- onSave(finalValue);
67
+ onSave(returnValue);
64
68
  }
65
69
  setPopupOpened(false);
66
70
  };
@@ -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(inputValue);
59
+ onChange(returnValue);
56
60
  } else if (onSave) {
57
- onSave(inputValue);
61
+ onSave(returnValue);
58
62
  }
59
63
  setPopupOpened(false);
60
64
  };
@@ -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 value ? (Array.isArray(value) ? value : [value]) : [];
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
- const originalValue = value ? (Array.isArray(value) ? value : [value]) : [];
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
- const currentValue = value ? (Array.isArray(value) ? value : [value]) : [];
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(item);
102
+ onChange(returnValue);
84
103
  } else if (onSave) {
85
- onSave(item);
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(result);
137
+ onChange(returnValue);
116
138
  } else if (onSave) {
117
- onSave(result);
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 value prop pro zobrazení (ne selectedItems state)
193
- const currentValue = value ? (Array.isArray(value) ? value : [value]) : [];
214
+ // Použij objekty pro zobrazení (převedené z value)
215
+ const currentItems = findItemsByValue(value);
194
216
 
195
- if (currentValue.length === 1) {
217
+ if (currentItems.length === 1) {
196
218
  // Pokud je vybraná jedna položka, zobraz hodnotu z displayField
197
- const item = currentValue[0];
219
+ const item = currentItems[0];
198
220
  return item[displayField] || item.name || item.title || item.id || 'Vybraná položka';
199
- } else if (currentValue.length > 1) {
200
- return `${currentValue.length} vybraných položek`;
221
+ } else if (currentItems.length > 1) {
222
+ return `${currentItems.length} vybraných položek`;
201
223
  }
202
224
  return placeholder;
203
225
  })()}
@@ -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
- const [selectedOption, setSelectedOption] = useState(value || null);
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 || null);
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 || null);
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(option);
82
+ onChange(returnValue);
65
83
  } else if (onSave) {
66
- onSave(option);
84
+ onSave(returnValue);
67
85
  }
68
86
 
69
87
  setPopupOpened(false);
@@ -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(event.target.checked);
27
+ onChange(returnValue);
25
28
  }
26
29
  };
27
30
 
@@ -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
- const [selectedCategory, setSelectedCategory] = useState(value || null);
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 || null);
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 || null);
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(category);
53
+ onChange(returnValue);
38
54
  }
39
55
  else if (onSave) {
40
- onSave(category);
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":"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"}
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;