From f418231b6b2f5e030a0d2dcc390c314602b1f740 Mon Sep 17 00:00:00 2001
From: Anton Tananaev <anton@traccar.org>
Date: Sat, 6 Apr 2024 09:22:10 -0700
Subject: Move modern to the top

---
 src/settings/DriverPage.jsx | 62 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)
 create mode 100644 src/settings/DriverPage.jsx

(limited to 'src/settings/DriverPage.jsx')

diff --git a/src/settings/DriverPage.jsx b/src/settings/DriverPage.jsx
new file mode 100644
index 00000000..5f70a44a
--- /dev/null
+++ b/src/settings/DriverPage.jsx
@@ -0,0 +1,62 @@
+import React, { useState } from 'react';
+import TextField from '@mui/material/TextField';
+import {
+  Accordion, AccordionSummary, AccordionDetails, Typography,
+} from '@mui/material';
+import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
+import EditItemView from './components/EditItemView';
+import EditAttributesAccordion from './components/EditAttributesAccordion';
+import { useTranslation } from '../common/components/LocalizationProvider';
+import SettingsMenu from './components/SettingsMenu';
+import useSettingsStyles from './common/useSettingsStyles';
+
+const DriverPage = () => {
+  const classes = useSettingsStyles();
+  const t = useTranslation();
+
+  const [item, setItem] = useState();
+
+  const validate = () => item && item.name && item.uniqueId;
+
+  return (
+    <EditItemView
+      endpoint="drivers"
+      item={item}
+      setItem={setItem}
+      validate={validate}
+      menu={<SettingsMenu />}
+      breadcrumbs={['settingsTitle', 'sharedDriver']}
+    >
+      {item && (
+        <>
+          <Accordion defaultExpanded>
+            <AccordionSummary expandIcon={<ExpandMoreIcon />}>
+              <Typography variant="subtitle1">
+                {t('sharedRequired')}
+              </Typography>
+            </AccordionSummary>
+            <AccordionDetails className={classes.details}>
+              <TextField
+                value={item.name || ''}
+                onChange={(event) => setItem({ ...item, name: event.target.value })}
+                label={t('sharedName')}
+              />
+              <TextField
+                value={item.uniqueId || ''}
+                onChange={(event) => setItem({ ...item, uniqueId: event.target.value })}
+                label={t('deviceIdentifier')}
+              />
+            </AccordionDetails>
+          </Accordion>
+          <EditAttributesAccordion
+            attributes={item.attributes}
+            setAttributes={(attributes) => setItem({ ...item, attributes })}
+            definitions={{}}
+          />
+        </>
+      )}
+    </EditItemView>
+  );
+};
+
+export default DriverPage;
-- 
cgit v1.2.3

