aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatjaž Črnko <m.crnko@txt.si>2024-01-22 18:25:48 +0100
committerMatjaž Črnko <m.crnko@txt.si>2024-01-22 18:25:48 +0100
commit19e73a4263d05cba07157d7e6a7f7f971745c662 (patch)
treec0af4558f6a1a84cdc683f1d0d1401b5fe09f63b
parent2bd044ecf9fa456e168057acc513bd3b4582d0c6 (diff)
downloadtrackermap-web-19e73a4263d05cba07157d7e6a7f7f971745c662.tar.gz
trackermap-web-19e73a4263d05cba07157d7e6a7f7f971745c662.tar.bz2
trackermap-web-19e73a4263d05cba07157d7e6a7f7f971745c662.zip
fix: SelectField - cleaner approach for Autocomplete value handling
-rw-r--r--modern/src/common/components/SelectField.jsx3
-rw-r--r--modern/src/settings/ServerPage.jsx1
-rw-r--r--modern/src/settings/UserPage.jsx1
-rw-r--r--modern/src/settings/components/BaseCommandView.jsx1
4 files changed, 1 insertions, 5 deletions
diff --git a/modern/src/common/components/SelectField.jsx b/modern/src/common/components/SelectField.jsx
index bc0571d5..920c2640 100644
--- a/modern/src/common/components/SelectField.jsx
+++ b/modern/src/common/components/SelectField.jsx
@@ -14,7 +14,6 @@ const SelectField = ({
onChange,
endpoint,
data,
- keyField = 'id',
keyGetter = (item) => item.id,
titleGetter = (item) => item.name,
}) => {
@@ -22,7 +21,7 @@ const SelectField = ({
const getOptionLabel = (option) => {
if (typeof option !== 'object') {
- option = items.find(obj => keyField ? obj[keyField] === option : obj === option);
+ option = items.find(obj => keyGetter(obj) === option);
}
return option ? titleGetter(option) : '';
}
diff --git a/modern/src/settings/ServerPage.jsx b/modern/src/settings/ServerPage.jsx
index 4dc87887..09a02f91 100644
--- a/modern/src/settings/ServerPage.jsx
+++ b/modern/src/settings/ServerPage.jsx
@@ -197,7 +197,6 @@ const ServerPage = () => {
emptyValue={null}
onChange={(e) => setItem({ ...item, attributes: { ...item.attributes, timezone: e.target.value } })}
endpoint="/api/server/timezones"
- keyField={false}
keyGetter={(it) => it}
titleGetter={(it) => it}
label={t('sharedTimezone')}
diff --git a/modern/src/settings/UserPage.jsx b/modern/src/settings/UserPage.jsx
index 7411ee64..dee7f2ac 100644
--- a/modern/src/settings/UserPage.jsx
+++ b/modern/src/settings/UserPage.jsx
@@ -271,7 +271,6 @@ const UserPage = () => {
emptyValue={null}
onChange={(e) => setItem({ ...item, attributes: { ...item.attributes, timezone: e.target.value } })}
endpoint="/api/server/timezones"
- keyField={false}
keyGetter={(it) => it}
titleGetter={(it) => it}
label={t('sharedTimezone')}
diff --git a/modern/src/settings/components/BaseCommandView.jsx b/modern/src/settings/components/BaseCommandView.jsx
index 070ecfed..f4d5d4b2 100644
--- a/modern/src/settings/components/BaseCommandView.jsx
+++ b/modern/src/settings/components/BaseCommandView.jsx
@@ -31,7 +31,6 @@ const BaseCommandView = ({ deviceId, item, setItem }) => {
value={item.type || null}
onChange={(e) => setItem({ ...item, type: e.target.value, attributes: {} })}
endpoint={deviceId ? `/api/commands/types?${new URLSearchParams({ deviceId }).toString()}` : '/api/commands/types'}
- keyField='type'
keyGetter={(it) => it.type}
titleGetter={(it) => t(prefixString('command', it.type))}
label={t('sharedType')}