aboutsummaryrefslogtreecommitdiff
path: root/modern/src/common
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2023-04-23 08:28:57 -0700
committerAnton Tananaev <anton@traccar.org>2023-04-23 08:28:57 -0700
commit70d15a4ecd73c894c462a7dd70c79d4a99e113d6 (patch)
treef864b5906ca7d0a04403b69fe07e4ec6b4569a21 /modern/src/common
parentc52e68dfd8faa227d7d4e756004e243b6aebf414 (diff)
downloadtrackermap-web-70d15a4ecd73c894c462a7dd70c79d4a99e113d6.tar.gz
trackermap-web-70d15a4ecd73c894c462a7dd70c79d4a99e113d6.tar.bz2
trackermap-web-70d15a4ecd73c894c462a7dd70c79d4a99e113d6.zip
Geofences position attribute
Diffstat (limited to 'modern/src/common')
-rw-r--r--modern/src/common/attributes/usePositionAttributes.js4
-rw-r--r--modern/src/common/components/GeofencesValue.js9
-rw-r--r--modern/src/common/components/PositionValue.js6
3 files changed, 19 insertions, 0 deletions
diff --git a/modern/src/common/attributes/usePositionAttributes.js b/modern/src/common/attributes/usePositionAttributes.js
index 81497938..90905395 100644
--- a/modern/src/common/attributes/usePositionAttributes.js
+++ b/modern/src/common/attributes/usePositionAttributes.js
@@ -68,6 +68,10 @@ export default (t) => useMemo(() => ({
type: 'string',
property: true,
},
+ geofenceIds: {
+ name: t('sharedGeofences'),
+ property: true,
+ },
raw: {
name: t('positionRaw'),
type: 'string',
diff --git a/modern/src/common/components/GeofencesValue.js b/modern/src/common/components/GeofencesValue.js
new file mode 100644
index 00000000..4808a8a2
--- /dev/null
+++ b/modern/src/common/components/GeofencesValue.js
@@ -0,0 +1,9 @@
+import { useSelector } from 'react-redux';
+
+const GeofencesValue = ({ geofenceIds }) => {
+ const geofences = useSelector((state) => state.geofences.items);
+
+ return geofenceIds.map((id) => geofences[id]?.name).join(', ');
+};
+
+export default GeofencesValue;
diff --git a/modern/src/common/components/PositionValue.js b/modern/src/common/components/PositionValue.js
index a819a018..a6b38e31 100644
--- a/modern/src/common/components/PositionValue.js
+++ b/modern/src/common/components/PositionValue.js
@@ -9,6 +9,7 @@ import { useAttributePreference, usePreference } from '../util/preferences';
import { useTranslation } from './LocalizationProvider';
import { useAdministrator } from '../util/permissions';
import AddressValue from './AddressValue';
+import GeofencesValue from './GeofencesValue';
const PositionValue = ({ position, property, attribute }) => {
const t = useTranslation();
@@ -83,6 +84,11 @@ const PositionValue = ({ position, property, attribute }) => {
return (<Link component={RouterLink} underline="none" to={`/network/${position.id}`}>{t('sharedInfoTitle')}</Link>);
}
return '';
+ case 'geofenceIds':
+ if (value) {
+ return (<GeofencesValue geofenceIds={value} />);
+ }
+ return '';
default:
return formatValue(value);
}