From 3ec73c8cba22da9df2f7ac6440a979f421b3fc4b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A9o=20Banno-Cloutier?=
 <leo.banno-cloutier@savoirfairelinux.com>
Date: Mon, 12 Jun 2023 11:33:25 -0400
Subject: [PATCH] React.useState: use destructuring

Change-Id: Ib055e57c00e6af6560652f62aab3f0719b0c94db
---
 .../src/components/CaSetup/CaSetup.js         |  8 ++-
 .../src/components/Devices/Devices.js         | 12 ++---
 .../IdentityManagement/IdentityManagement.js  | 12 ++---
 .../LanguagePicker/LanguagePicker.js          |  6 +--
 .../PasswordDialog/PasswordDialog.js          |  8 +--
 .../ServerParameters/ServerParameters.js      | 16 +++---
 .../src/components/Sidebar/Sidebar.js         |  4 +-
 jams-react-client/src/layouts/BaseLayout.js   | 28 +++++-----
 jams-react-client/src/layouts/ListLayout.js   | 28 +++++-----
 jams-react-client/src/layouts/SignIn.js       |  6 +--
 jams-react-client/src/layouts/SignUp.js       |  6 +--
 .../src/views/Blueprint/Blueprint.js          |  4 +-
 .../Blueprint/EditBlueprintConfiguration.js   | 46 ++++++++--------
 .../Blueprint/EditBlueprintPermissions.js     | 52 +++++++++----------
 .../src/views/Blueprints/Blueprints.js        | 28 +++++-----
 .../src/views/Contacts/Contacts.js            | 22 ++++----
 .../src/views/Groups/EditGroup.js             | 18 +++----
 jams-react-client/src/views/Groups/Groups.js  | 29 +++++------
 .../src/views/Settings/General.js             |  8 +--
 .../src/views/Settings/Settings.js            | 10 ++--
 .../src/views/Settings/Subscription.js        |  4 +-
 .../views/UserProfile/DisplayUserProfile.js   | 22 ++++----
 .../UserProfile/EditCreateUserProfile.js      | 32 ++++++------
 .../src/views/UserProfile/UserProfile.js      |  6 +--
 jams-react-client/src/views/Users/Users.js    | 22 ++++----
 25 files changed, 213 insertions(+), 224 deletions(-)

diff --git a/jams-react-client/src/components/CaSetup/CaSetup.js b/jams-react-client/src/components/CaSetup/CaSetup.js
index 37ec7607..8a13a009 100644
--- a/jams-react-client/src/components/CaSetup/CaSetup.js
+++ b/jams-react-client/src/components/CaSetup/CaSetup.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 import { useHistory } from "react-router-dom";
 import { Formik, Field } from "formik";
 import * as Yup from "yup";
@@ -118,12 +118,10 @@ export default function CaSetup(props) {
   const validityPeriodsItems = tool.buildSelectMenuItems(validityPeriods);
   const classes = useStyles();
 
-  const [certificateOpt, setCertificateOpt] = React.useState(
+  const [certificateOpt, setCertificateOpt] = useState(
     getCertificateOptions[0]
   );
-  const [validityPeriod, setValidityPeriod] = React.useState(
-    validityPeriods[0]
-  );
+  const [validityPeriod, setValidityPeriod] = useState(validityPeriods[0]);
 
   function handleInstallCA(data) {
     if (data.status === 500 || data.status === 512 || data.status === 513) {
diff --git a/jams-react-client/src/components/Devices/Devices.js b/jams-react-client/src/components/Devices/Devices.js
index 06793004..3a2d3ed7 100755
--- a/jams-react-client/src/components/Devices/Devices.js
+++ b/jams-react-client/src/components/Devices/Devices.js
@@ -1,4 +1,4 @@
-import React, { useEffect } from "react";
+import React, { useEffect, useState } from "react";
 import { useHistory } from "react-router-dom";
 
 import classnames from "classnames";
@@ -44,11 +44,11 @@ export default function Devices(props) {
   const classes = useStyles();
   const history = useHistory();
 
-  const [devices, setDevices] = React.useState([]);
-  const [selectedDevice, setSelectedDevice] = React.useState({});
-  const [displayName, setDisplayName] = React.useState("");
-  const [openEdit, setOpenEdit] = React.useState(false);
-  const [openRevoke, setOpenRevoke] = React.useState(false);
+  const [devices, setDevices] = useState([]);
+  const [selectedDevice, setSelectedDevice] = useState({});
+  const [displayName, setDisplayName] = useState("");
+  const [openEdit, setOpenEdit] = useState(false);
+  const [openRevoke, setOpenRevoke] = useState(false);
   const userData = {
     username: props.username,
   };
diff --git a/jams-react-client/src/components/IdentityManagement/IdentityManagement.js b/jams-react-client/src/components/IdentityManagement/IdentityManagement.js
index 48d54d25..4b4386a5 100644
--- a/jams-react-client/src/components/IdentityManagement/IdentityManagement.js
+++ b/jams-react-client/src/components/IdentityManagement/IdentityManagement.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 import { useHistory } from "react-router-dom";
 import { Formik } from "formik";
 import Button from "@material-ui/core/Button";
@@ -109,13 +109,13 @@ export default function IdentityManagement(props) {
 
   const classes = useStyles();
   const history = useHistory();
-  const [directory, setDirectory] = React.useState(directoryTypes[0]);
+  const [directory, setDirectory] = useState(directoryTypes[0]);
 
   /**
    * Local storage Config
    */
 
-  const [nameServerChecked, setNameServerChecked] = React.useState(false);
+  const [nameServerChecked, setNameServerChecked] = useState(false);
 
   /**
    * LDAP storage Config
@@ -124,8 +124,8 @@ export default function IdentityManagement(props) {
   const ldapFiltersTypes = [{ value: 0, label: "UID" }];
 
   const ldapFiltersTypesItems = buildSelectMenuItems(ldapFiltersTypes);
-  const [useStartTLS, setUseStartTLS] = React.useState("false");
-  const [ldapFilter, setLdapFilter] = React.useState(ldapFiltersTypes[0]);
+  const [useStartTLS, setUseStartTLS] = useState("false");
+  const [ldapFilter, setLdapFilter] = useState(ldapFiltersTypes[0]);
 
   const handleFilterIdChange = (event) => {
     setLdapFilter(ldapFiltersTypes[event.target.value]);
@@ -142,7 +142,7 @@ export default function IdentityManagement(props) {
    * Active Directory Storage Config
    */
 
-  const [isSSL, setIsSSL] = React.useState("false");
+  const [isSSL, setIsSSL] = useState("false");
 
   const handleIsSSLChange = (event) => {
     setIsSSL(event.target.value);
diff --git a/jams-react-client/src/components/LanguagePicker/LanguagePicker.js b/jams-react-client/src/components/LanguagePicker/LanguagePicker.js
index 366d6a2e..826b6fda 100644
--- a/jams-react-client/src/components/LanguagePicker/LanguagePicker.js
+++ b/jams-react-client/src/components/LanguagePicker/LanguagePicker.js
@@ -1,4 +1,4 @@
-import React, { useEffect } from "react";
+import React, { useEffect, useState } from "react";
 import { useHistory } from "react-router-dom";
 
 import Button from "@material-ui/core/Button";
@@ -12,10 +12,10 @@ import { useTranslation } from "react-i18next";
 
 export default function LanguagePicker(props) {
   const history = useHistory();
-  const [language, setLanguage] = React.useState(
+  const [language, setLanguage] = useState(
     i18next.language || window.localStorage.i18nextLng || "en"
   );
-  const [languages, setLanguages] = React.useState([]);
+  const [languages, setLanguages] = useState([]);
 
   const { i18n } = useTranslation();
 
diff --git a/jams-react-client/src/components/PasswordDialog/PasswordDialog.js b/jams-react-client/src/components/PasswordDialog/PasswordDialog.js
index f3053003..e01debc9 100644
--- a/jams-react-client/src/components/PasswordDialog/PasswordDialog.js
+++ b/jams-react-client/src/components/PasswordDialog/PasswordDialog.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 // @material-ui/core components
 import { makeStyles } from "@material-ui/core/styles";
 // core components
@@ -54,9 +54,9 @@ const useStyles = makeStyles(styles);
 export default function PasswordDialog(props) {
   const classes = useStyles();
 
-  const [copied, setCopied] = React.useState(false);
-  const [generated, setGenerated] = React.useState(false);
-  const [passwordVisible, setPasswordVisible] = React.useState(false);
+  const [copied, setCopied] = useState(false);
+  const [generated, setGenerated] = useState(false);
+  const [passwordVisible, setPasswordVisible] = useState(false);
 
   const passwordGenerator = () => {
     return generator.generate({
diff --git a/jams-react-client/src/components/ServerParameters/ServerParameters.js b/jams-react-client/src/components/ServerParameters/ServerParameters.js
index 4fe0c7af..1404916c 100644
--- a/jams-react-client/src/components/ServerParameters/ServerParameters.js
+++ b/jams-react-client/src/components/ServerParameters/ServerParameters.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 import { useHistory } from "react-router-dom";
 import Button from "@material-ui/core/Button";
 import TextField from "@material-ui/core/TextField";
@@ -83,19 +83,15 @@ export default function ServerParameters(props) {
 
   const classes = useStyles();
   const history = useHistory();
-  const [certificateRevocation, setCertificateRevocation] = React.useState(
+  const [certificateRevocation, setCertificateRevocation] = useState(
     certificateRevocationTypes[0]
   );
-  const [deviceLifetime, setDeviceLifetime] = React.useState(
-    deviceLifetimeTypes[3]
-  );
-  const [userAccountLifetime, setUserAccountLifetime] = React.useState(
+  const [deviceLifetime, setDeviceLifetime] = useState(deviceLifetimeTypes[3]);
+  const [userAccountLifetime, setUserAccountLifetime] = useState(
     userAccountLifetimeTypes[0]
   );
-  const [sipConfigurationTemplate, setSIPCertificateTemplate] = React.useState(
-    null
-  );
-  const [userlifeDisabled, setUserlifeDisabled] = React.useState(false);
+  const [sipConfigurationTemplate, setSIPCertificateTemplate] = useState(null);
+  const [userlifeDisabled, setUserlifeDisabled] = useState(false);
 
   React.useEffect(() => {
     if (deviceLifetime.value <= userAccountLifetime.value) {
diff --git a/jams-react-client/src/components/Sidebar/Sidebar.js b/jams-react-client/src/components/Sidebar/Sidebar.js
index 00a49054..f88c29ae 100755
--- a/jams-react-client/src/components/Sidebar/Sidebar.js
+++ b/jams-react-client/src/components/Sidebar/Sidebar.js
@@ -1,5 +1,5 @@
 /*eslint-disable*/
-import React from "react";
+import React, { useState } from "react";
 import { Link, useHistory } from "react-router-dom";
 import classNames from "classnames";
 import PropTypes from "prop-types";
@@ -29,7 +29,7 @@ const useStyles = makeStyles(styles);
 export default function Sidebar(props) {
   const classes = useStyles();
   const mainPanel = React.createRef();
-  const [open, setOpen] = React.useState(false);
+  const [open, setOpen] = useState(false);
   const history = useHistory();
 
   const handleCloseProfile = () => {
diff --git a/jams-react-client/src/layouts/BaseLayout.js b/jams-react-client/src/layouts/BaseLayout.js
index 115f5518..1546ace3 100644
--- a/jams-react-client/src/layouts/BaseLayout.js
+++ b/jams-react-client/src/layouts/BaseLayout.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 import { Switch, Route, Redirect } from "react-router-dom";
 // creates a beautiful scrollbar
 import PerfectScrollbar from "perfect-scrollbar";
@@ -52,19 +52,19 @@ export default function Admin(props) {
   // ref to help us initialize PerfectScrollbar on windows devices
   const mainPanel = React.createRef();
   // states and functions
-  const [image, setImage] = React.useState(bgImage);
-  const [color, setColor] = React.useState("blue");
-  const [fixedClasses, setFixedClasses] = React.useState("dropdown");
-  const [mobileOpen, setMobileOpen] = React.useState(false);
-  const [open, setOpen] = React.useState(false);
-  const [message, setMessage] = React.useState(false);
-  const [openUpdate, setOpenUpdate] = React.useState(false);
-  const [dialogMessage, setDialogMessage] = React.useState("");
-  const [messageYes, setMessageYes] = React.useState("");
-  const [messageNo, setMessageNo] = React.useState("");
-  const [updating, setUpdating] = React.useState(false);
-  const [query, setQuery] = React.useState(false);
-  const [snackbarMessage, setSnackbarMessage] = React.useState("");
+  const [image, setImage] = useState(bgImage);
+  const [color, setColor] = useState("blue");
+  const [fixedClasses, setFixedClasses] = useState("dropdown");
+  const [mobileOpen, setMobileOpen] = useState(false);
+  const [open, setOpen] = useState(false);
+  const [message, setMessage] = useState(false);
+  const [openUpdate, setOpenUpdate] = useState(false);
+  const [dialogMessage, setDialogMessage] = useState("");
+  const [messageYes, setMessageYes] = useState("");
+  const [messageNo, setMessageNo] = useState("");
+  const [updating, setUpdating] = useState(false);
+  const [query, setQuery] = useState(false);
+  const [snackbarMessage, setSnackbarMessage] = useState("");
 
   const Routes = [
     {
diff --git a/jams-react-client/src/layouts/ListLayout.js b/jams-react-client/src/layouts/ListLayout.js
index 34f68700..25be89d5 100644
--- a/jams-react-client/src/layouts/ListLayout.js
+++ b/jams-react-client/src/layouts/ListLayout.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 import { Switch, Route, Redirect } from "react-router-dom";
 // creates a beautiful scrollbar
 import PerfectScrollbar from "perfect-scrollbar";
@@ -53,19 +53,19 @@ export default function Admin(props) {
   // ref to help us initialize PerfectScrollbar on windows devices
   const mainPanel = React.createRef();
   // states and functions
-  const [image, setImage] = React.useState(bgImage);
-  const [color, setColor] = React.useState("blue");
-  const [fixedClasses, setFixedClasses] = React.useState("dropdown");
-  const [mobileOpen, setMobileOpen] = React.useState(false);
-  const [open, setOpen] = React.useState(false);
-  const [message, setMessage] = React.useState(false);
-  const [openUpdate, setOpenUpdate] = React.useState(false);
-  const [dialogMessage, setDialogMessage] = React.useState("");
-  const [messageYes, setMessageYes] = React.useState("");
-  const [messageNo, setMessageNo] = React.useState("");
-  const [updating, setUpdating] = React.useState(false);
-  const [query, setQuery] = React.useState(false);
-  const [snackbarMessage, setSnackbarMessage] = React.useState("");
+  const [image, setImage] = useState(bgImage);
+  const [color, setColor] = useState("blue");
+  const [fixedClasses, setFixedClasses] = useState("dropdown");
+  const [mobileOpen, setMobileOpen] = useState(false);
+  const [open, setOpen] = useState(false);
+  const [message, setMessage] = useState(false);
+  const [openUpdate, setOpenUpdate] = useState(false);
+  const [dialogMessage, setDialogMessage] = useState("");
+  const [messageYes, setMessageYes] = useState("");
+  const [messageNo, setMessageNo] = useState("");
+  const [updating, setUpdating] = useState(false);
+  const [query, setQuery] = useState(false);
+  const [snackbarMessage, setSnackbarMessage] = useState("");
 
   const Routes = [
     {
diff --git a/jams-react-client/src/layouts/SignIn.js b/jams-react-client/src/layouts/SignIn.js
index 24dcf233..6b50df9f 100644
--- a/jams-react-client/src/layouts/SignIn.js
+++ b/jams-react-client/src/layouts/SignIn.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 import { useHistory } from "react-router-dom";
 import { Formik } from "formik";
 import Button from "@material-ui/core/Button";
@@ -69,8 +69,8 @@ export default function SignIn(props) {
 
   const classes = useStyles();
   const history = useHistory();
-  const [error, setError] = React.useState(false);
-  const [errorMessage, setErrorMessage] = React.useState("");
+  const [error, setError] = useState(false);
+  const [errorMessage, setErrorMessage] = useState("");
 
   React.useEffect(() => {
     if (auth.isAuthenticated() && auth.isInstalled()) {
diff --git a/jams-react-client/src/layouts/SignUp.js b/jams-react-client/src/layouts/SignUp.js
index 81eb41a3..84775d6f 100644
--- a/jams-react-client/src/layouts/SignUp.js
+++ b/jams-react-client/src/layouts/SignUp.js
@@ -1,4 +1,4 @@
-import React, { useEffect } from "react";
+import React, { useEffect, useState } from "react";
 import CssBaseline from "@material-ui/core/CssBaseline";
 import Link from "@material-ui/core/Link";
 import Box from "@material-ui/core/Box";
@@ -66,8 +66,8 @@ const useStyles = makeStyles((theme) => ({
 
 export default function SignUp(props) {
   const classes = useStyles();
-  const [error, setError] = React.useState(false);
-  const [errorMessage, setErrorMessage] = React.useState("Test");
+  const [error, setError] = useState(false);
+  const [errorMessage, setErrorMessage] = useState("Test");
 
   useEffect(() => {
     //request the server to check for the step to return
diff --git a/jams-react-client/src/views/Blueprint/Blueprint.js b/jams-react-client/src/views/Blueprint/Blueprint.js
index da32490f..5c81a9e5 100644
--- a/jams-react-client/src/views/Blueprint/Blueprint.js
+++ b/jams-react-client/src/views/Blueprint/Blueprint.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 
 import PropTypes from "prop-types";
 import AppBar from "@material-ui/core/AppBar";
@@ -48,7 +48,7 @@ function a11yProps(index) {
 }
 
 export default function Blueprint(props) {
-  const [value, setValue] = React.useState(0);
+  const [value, setValue] = useState(0);
 
   const handleChange = (event, newValue) => {
     setValue(newValue);
diff --git a/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js b/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js
index 0820df8b..7718b744 100644
--- a/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js
+++ b/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 import clsx from "clsx";
 
 // @material-ui/core components
@@ -170,32 +170,30 @@ const StyledRadio = (props) => {
 export default function EditBlueprintConfiguration(props) {
   const classes = useStyles();
 
-  const [videoEnabled, setVideoEnabled] = React.useState(true);
-  const [publicInCalls, setPublicInCalls] = React.useState(true);
-  const [autoAnswer, setAutoAnswer] = React.useState(false);
-  const [peerDiscovery, setPeerDiscovery] = React.useState(true);
-  const [rendezVous, setRendezVous] = React.useState(false);
+  const [videoEnabled, setVideoEnabled] = useState(true);
+  const [publicInCalls, setPublicInCalls] = useState(true);
+  const [autoAnswer, setAutoAnswer] = useState(false);
+  const [peerDiscovery, setPeerDiscovery] = useState(true);
+  const [rendezVous, setRendezVous] = useState(false);
 
-  const [selectedTurnOption, setSelectedTurnOption] = React.useState(
-    "defaultTurn"
-  );
-  const [selectedDHTProxyOption, setSelectedDHTProxyOption] = React.useState(
+  const [selectedTurnOption, setSelectedTurnOption] = useState("defaultTurn");
+  const [selectedDHTProxyOption, setSelectedDHTProxyOption] = useState(
     "defaultDHTProxy"
   );
-  const [upnpEnabled, setUpnpEnabled] = React.useState(true);
-  const [turnEnabled, setTurnEnabled] = React.useState(true);
-  const [turnServer, setTurnServer] = React.useState("turn.jami.net");
-  const [turnServerUserName, setTurnServerUserName] = React.useState("ring");
-  const [turnServerPassword, setTurnServerPassword] = React.useState("ring");
-  const [proxyEnabled, setProxyEnabled] = React.useState(false);
-  const [proxyServer, setProxyServer] = React.useState("dhtproxy.jami.net");
-  const [dhtProxyListUrl, setDhtProxyListUrl] = React.useState("");
-
-  const [turnPassowrdVisible, setTurnPasswordVisible] = React.useState(false);
-
-  const [open, setOpen] = React.useState(false);
-  const [message, setMessage] = React.useState(false);
-  const [severity, setSeverity] = React.useState("success");
+  const [upnpEnabled, setUpnpEnabled] = useState(true);
+  const [turnEnabled, setTurnEnabled] = useState(true);
+  const [turnServer, setTurnServer] = useState("turn.jami.net");
+  const [turnServerUserName, setTurnServerUserName] = useState("ring");
+  const [turnServerPassword, setTurnServerPassword] = useState("ring");
+  const [proxyEnabled, setProxyEnabled] = useState(false);
+  const [proxyServer, setProxyServer] = useState("dhtproxy.jami.net");
+  const [dhtProxyListUrl, setDhtProxyListUrl] = useState("");
+
+  const [turnPassowrdVisible, setTurnPasswordVisible] = useState(false);
+
+  const [open, setOpen] = useState(false);
+  const [message, setMessage] = useState(false);
+  const [severity, setSeverity] = useState("success");
 
   React.useEffect(() => {
     axios(
diff --git a/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js b/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js
index 68f2cab8..07bab390 100644
--- a/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js
+++ b/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 import { Link, useHistory } from "react-router-dom";
 // @material-ui/core components
 import { makeStyles } from "@material-ui/core/styles";
@@ -126,31 +126,31 @@ export default function EditBlueprintPermissions(props) {
 
   const tableCellClasses = classnames(classes.tableCell);
 
-  const [openDrawer, setOpenDrawer] = React.useState(false);
-  const [users, setUsers] = React.useState([]);
-  const [blueprintModerators, setBlueprintModerators] = React.useState([]);
-
-  const [videoEnabled, setVideoEnabled] = React.useState(true);
-  const [publicInCalls, setPublicInCalls] = React.useState(true);
-  const [autoAnswer, setAutoAnswer] = React.useState(false);
-  const [peerDiscovery, setPeerDiscovery] = React.useState(true);
-  const [rendezVous, setRendezVous] = React.useState(false);
-  const [defaultModerators, setDefaultModerators] = React.useState("");
-
-  const [upnpEnabled, setUpnpEnabled] = React.useState(true);
-  const [turnEnabled, setTurnEnabled] = React.useState(true);
-  const [turnServer, setTurnServer] = React.useState("turn.jami.net");
-  const [turnServerUserName, setTurnServerUserName] = React.useState("ring");
-  const [turnServerPassword, setTurnServerPassword] = React.useState("ring");
-  const [proxyEnabled, setProxyEnabled] = React.useState(false);
-  const [proxyServer, setProxyServer] = React.useState("dhtproxy.jami.net");
-  const [dhtProxyListUrl, setDhtProxyListUrl] = React.useState("");
-
-  const [allowLookup, setAllowLookup] = React.useState(true);
-
-  const [open, setOpen] = React.useState(false);
-  const [message, setMessage] = React.useState(false);
-  const [severity, setSeverity] = React.useState("success");
+  const [openDrawer, setOpenDrawer] = useState(false);
+  const [users, setUsers] = useState([]);
+  const [blueprintModerators, setBlueprintModerators] = useState([]);
+
+  const [videoEnabled, setVideoEnabled] = useState(true);
+  const [publicInCalls, setPublicInCalls] = useState(true);
+  const [autoAnswer, setAutoAnswer] = useState(false);
+  const [peerDiscovery, setPeerDiscovery] = useState(true);
+  const [rendezVous, setRendezVous] = useState(false);
+  const [defaultModerators, setDefaultModerators] = useState("");
+
+  const [upnpEnabled, setUpnpEnabled] = useState(true);
+  const [turnEnabled, setTurnEnabled] = useState(true);
+  const [turnServer, setTurnServer] = useState("turn.jami.net");
+  const [turnServerUserName, setTurnServerUserName] = useState("ring");
+  const [turnServerPassword, setTurnServerPassword] = useState("ring");
+  const [proxyEnabled, setProxyEnabled] = useState(false);
+  const [proxyServer, setProxyServer] = useState("dhtproxy.jami.net");
+  const [dhtProxyListUrl, setDhtProxyListUrl] = useState("");
+
+  const [allowLookup, setAllowLookup] = useState(true);
+
+  const [open, setOpen] = useState(false);
+  const [message, setMessage] = useState(false);
+  const [severity, setSeverity] = useState("success");
 
   const searchUsers = (value) => {
     axios(
diff --git a/jams-react-client/src/views/Blueprints/Blueprints.js b/jams-react-client/src/views/Blueprints/Blueprints.js
index 4cbc643b..4eb1f5d9 100644
--- a/jams-react-client/src/views/Blueprints/Blueprints.js
+++ b/jams-react-client/src/views/Blueprints/Blueprints.js
@@ -1,4 +1,4 @@
-import React, { useCallback, useEffect } from "react";
+import React, { useCallback, useEffect, useState } from "react";
 import { Link, useHistory } from "react-router-dom";
 // @material-ui/core components
 import { makeStyles } from "@material-ui/core/styles";
@@ -89,22 +89,22 @@ const useStyles = makeStyles(styles);
 export default function Blueprints() {
   const classes = useStyles();
   const history = useHistory();
-  const [blueprints, setBlueprints] = React.useState([]);
-  const [selectedBlueprint, setSelectedBlueprint] = React.useState(false);
-  const [selectedBlueprintName, setSelectedBlueprintName] = React.useState("");
-  const [loading, setLoading] = React.useState(false);
-  const [zeroBlueprint, setZeroBlueprint] = React.useState(false);
-  const [progress, setProgress] = React.useState(0);
-  const [searchValue, setSearchValue] = React.useState(false);
+  const [blueprints, setBlueprints] = useState([]);
+  const [selectedBlueprint, setSelectedBlueprint] = useState(false);
+  const [selectedBlueprintName, setSelectedBlueprintName] = useState("");
+  const [loading, setLoading] = useState(false);
+  const [zeroBlueprint, setZeroBlueprint] = useState(false);
+  const [progress, setProgress] = useState(0);
+  const [searchValue, setSearchValue] = useState(false);
 
-  const [blueprintName, setBlueprintName] = React.useState("");
-  const [blueprintNameExits, setBlueprintNameExits] = React.useState();
-  const [open, setOpen] = React.useState(false);
+  const [blueprintName, setBlueprintName] = useState("");
+  const [blueprintNameExits, setBlueprintNameExits] = useState();
+  const [open, setOpen] = useState(false);
 
-  const [disableCreate, setDisableCreate] = React.useState(true);
+  const [disableCreate, setDisableCreate] = useState(true);
 
-  const [removedBlueprint, setRemovedBlueprint] = React.useState("");
-  const [openRemoveDialog, setOpenRemoveDialog] = React.useState(false);
+  const [removedBlueprint, setRemovedBlueprint] = useState("");
+  const [openRemoveDialog, setOpenRemoveDialog] = useState(false);
 
   useEffect(() => {
     setLoading(true);
diff --git a/jams-react-client/src/views/Contacts/Contacts.js b/jams-react-client/src/views/Contacts/Contacts.js
index 579ee4b4..65d04d00 100644
--- a/jams-react-client/src/views/Contacts/Contacts.js
+++ b/jams-react-client/src/views/Contacts/Contacts.js
@@ -1,4 +1,4 @@
-import React, { useEffect } from "react";
+import React, { useEffect, useState } from "react";
 import { Link, useHistory } from "react-router-dom";
 // @material-ui/core components
 import { makeStyles } from "@material-ui/core/styles";
@@ -86,16 +86,16 @@ const useStyles = makeStyles(styles);
 export default function Users(props) {
   const classes = useStyles();
   const history = useHistory();
-  const [contacts, setContacts] = React.useState([]);
-  const [users, setUsers] = React.useState([]);
-  const [searchValue, setSearchValue] = React.useState(null);
-  const [loading, setLoading] = React.useState(false);
-  const [progress, setProgress] = React.useState(0);
-  const [openDrawer, setOpenDrawer] = React.useState(false);
-  const [removedContact, setRemovedContact] = React.useState();
-  const [removedContactName, setRemovedContactName] = React.useState();
-  const [open, setOpen] = React.useState(false);
-  const [allowedToAdd, setAllowedToAdd] = React.useState(true);
+  const [contacts, setContacts] = useState([]);
+  const [users, setUsers] = useState([]);
+  const [searchValue, setSearchValue] = useState(null);
+  const [loading, setLoading] = useState(false);
+  const [progress, setProgress] = useState(0);
+  const [openDrawer, setOpenDrawer] = useState(false);
+  const [removedContact, setRemovedContact] = useState();
+  const [removedContactName, setRemovedContactName] = useState();
+  const [open, setOpen] = useState(false);
+  const [allowedToAdd, setAllowedToAdd] = useState(true);
 
   const searchContacts = (value) => {
     axios(
diff --git a/jams-react-client/src/views/Groups/EditGroup.js b/jams-react-client/src/views/Groups/EditGroup.js
index 540020f2..d83705d0 100644
--- a/jams-react-client/src/views/Groups/EditGroup.js
+++ b/jams-react-client/src/views/Groups/EditGroup.js
@@ -1,4 +1,4 @@
-import React, { useCallback } from "react";
+import React, { useCallback, useState } from "react";
 import { Link, useHistory } from "react-router-dom";
 import classnames from "classnames";
 
@@ -113,17 +113,17 @@ export default function EditGroup(props) {
   const classes = useStyles();
   const history = useHistory();
 
-  const [name, setName] = React.useState("");
-  const [newName, setNewName] = React.useState("");
-  const [blueprints, setBlueprints] = React.useState([]);
-  const [selectedBlueprint, setSelectedBlueprint] = React.useState({
+  const [name, setName] = useState("");
+  const [newName, setNewName] = useState("");
+  const [blueprints, setBlueprints] = useState([]);
+  const [selectedBlueprint, setSelectedBlueprint] = useState({
     value: 0,
     label: "No blueprint",
   });
-  const [groupMembers, setGroupMembers] = React.useState([]);
-  const [openDrawer, setOpenDrawer] = React.useState(false);
-  const [groupNameExits, setGroupNameExits] = React.useState(false);
-  const [users, setUsers] = React.useState([]);
+  const [groupMembers, setGroupMembers] = useState([]);
+  const [openDrawer, setOpenDrawer] = useState(false);
+  const [groupNameExits, setGroupNameExits] = useState(false);
+  const [users, setUsers] = useState([]);
 
   const getUserInfo = (username) =>
     new Promise((resolve, reject) => {
diff --git a/jams-react-client/src/views/Groups/Groups.js b/jams-react-client/src/views/Groups/Groups.js
index 3c7fc79f..f97d87c9 100644
--- a/jams-react-client/src/views/Groups/Groups.js
+++ b/jams-react-client/src/views/Groups/Groups.js
@@ -98,25 +98,25 @@ const useStyles = makeStyles(styles);
 export default function Groups() {
   const classes = useStyles();
   const history = useHistory();
-  const [groups, setGroups] = React.useState([]);
-  const [loading, setLoading] = React.useState(false);
-  const [zeroGroup, setZeroGroup] = React.useState(false);
-  const [progress, setProgress] = React.useState(0);
-  const [searchValue, setSearchValue] = React.useState(null);
+  const [groups, setGroups] = useState([]);
+  const [loading, setLoading] = useState(false);
+  const [zeroGroup, setZeroGroup] = useState(false);
+  const [progress, setProgress] = useState(0);
+  const [searchValue, setSearchValue] = useState(null);
 
-  const [blueprints, setBlueprints] = React.useState([]);
+  const [blueprints, setBlueprints] = useState([]);
 
-  const [openCreate, setOpenCreate] = React.useState(false);
-  const [groupName, setGroupName] = React.useState("");
-  const [groupNameExits, setGroupNameExits] = React.useState(false);
+  const [openCreate, setOpenCreate] = useState(false);
+  const [groupName, setGroupName] = useState("");
+  const [groupNameExits, setGroupNameExits] = useState(false);
 
-  const [removedGroup, setRemovedGroup] = React.useState({
+  const [removedGroup, setRemovedGroup] = useState({
     id: 0,
     name: "groupeName",
   });
-  const [openRemoveDialog, setOpenRemoveDialog] = React.useState();
+  const [openRemoveDialog, setOpenRemoveDialog] = useState();
 
-  const [disableCreate, setDisableCreate] = React.useState(true);
+  const [disableCreate, setDisableCreate] = useState(true);
 
   const handleRemoveGroup = (group) => {
     setRemovedGroup(group);
@@ -397,10 +397,7 @@ export default function Groups() {
             </DialogContentText>
           </DialogContent>
           <DialogActions>
-            <Button
-              onClick={handleCloseCreate}
-              color="primary"
-            >
+            <Button onClick={handleCloseCreate} color="primary">
               Cancel
             </Button>
             <Button
diff --git a/jams-react-client/src/views/Settings/General.js b/jams-react-client/src/views/Settings/General.js
index 4239499d..be1190eb 100644
--- a/jams-react-client/src/views/Settings/General.js
+++ b/jams-react-client/src/views/Settings/General.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 import { Formik } from "formik";
 import FormikField from "components/FormikField/FormikField";
 import * as Yup from "yup";
@@ -58,9 +58,9 @@ const useStyles = makeStyles((theme) => ({
 export default function General(props) {
   const classes = useStyles();
 
-  const [copied, setCopied] = React.useState(false);
-  const [generated, setGenerated] = React.useState(false);
-  const [passwordVisible, setPasswordVisible] = React.useState(false);
+  const [copied, setCopied] = useState(false);
+  const [generated, setGenerated] = useState(false);
+  const [passwordVisible, setPasswordVisible] = useState(false);
 
   const changePassword = (values) => {
     const data = {
diff --git a/jams-react-client/src/views/Settings/Settings.js b/jams-react-client/src/views/Settings/Settings.js
index 7b0852c0..d58e0d1b 100644
--- a/jams-react-client/src/views/Settings/Settings.js
+++ b/jams-react-client/src/views/Settings/Settings.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 // core components
 import General from "./General";
 import Subscription from "./Subscription";
@@ -74,10 +74,10 @@ const styles = {
 };
 
 export default function Settings(props) {
-  const [value, setValue] = React.useState(0);
-  const [error, setError] = React.useState(false);
-  const [severity, setSeverity] = React.useState("error");
-  const [errorMessage, setErrorMessage] = React.useState("Test");
+  const [value, setValue] = useState(0);
+  const [error, setError] = useState(false);
+  const [severity, setSeverity] = useState("error");
+  const [errorMessage, setErrorMessage] = useState("Test");
 
   const handleChange = (event, newValue) => {
     setValue(newValue);
diff --git a/jams-react-client/src/views/Settings/Subscription.js b/jams-react-client/src/views/Settings/Subscription.js
index 1dbfa96f..3b55b3d0 100644
--- a/jams-react-client/src/views/Settings/Subscription.js
+++ b/jams-react-client/src/views/Settings/Subscription.js
@@ -1,4 +1,4 @@
-import React, { useEffect } from "react";
+import React, { useEffect, useState } from "react";
 import { useFormik } from "formik";
 import * as Yup from "yup";
 import Button from "@material-ui/core/Button";
@@ -40,7 +40,7 @@ const useStyles = makeStyles((theme) => ({
 
 export default function Subscription(props) {
   const classes = useStyles();
-  const [activated, setActivated] = React.useState(false);
+  const [activated, setActivated] = useState(false);
 
   useEffect(() => {
     axios(
diff --git a/jams-react-client/src/views/UserProfile/DisplayUserProfile.js b/jams-react-client/src/views/UserProfile/DisplayUserProfile.js
index 2a258d5c..ed7b2b0d 100644
--- a/jams-react-client/src/views/UserProfile/DisplayUserProfile.js
+++ b/jams-react-client/src/views/UserProfile/DisplayUserProfile.js
@@ -1,4 +1,4 @@
-import React, { useEffect } from "react";
+import React, { useEffect, useState } from "react";
 import { Link, useHistory } from "react-router-dom";
 import classnames from "classnames";
 
@@ -198,16 +198,16 @@ const useStyles = makeStyles(styles);
 export default function DisplayUserProfile(props) {
   const classes = useStyles();
   const history = useHistory();
-  const [user, setUser] = React.useState([]);
-  const [groupMemberships, setGroupMemberships] = React.useState([]);
-  const [revoked, setRevoked] = React.useState(false);
-  const [open, setOpen] = React.useState(false);
-  const [revokedUser, setRevokedUser] = React.useState("");
-  const [changePasswordOpen, setChangePasswordOpen] = React.useState(false);
-  const [loading, setLoading] = React.useState(false);
-  const [progress, setProgress] = React.useState(0);
-  const [groups, setGroups] = React.useState([]);
-  const [openDrawer, setOpenDrawer] = React.useState(false);
+  const [user, setUser] = useState([]);
+  const [groupMemberships, setGroupMemberships] = useState([]);
+  const [revoked, setRevoked] = useState(false);
+  const [open, setOpen] = useState(false);
+  const [revokedUser, setRevokedUser] = useState("");
+  const [changePasswordOpen, setChangePasswordOpen] = useState(false);
+  const [loading, setLoading] = useState(false);
+  const [progress, setProgress] = useState(0);
+  const [groups, setGroups] = useState([]);
+  const [openDrawer, setOpenDrawer] = useState(false);
 
   const searchGroups = (value) => {
     if (value === "") value = "*";
diff --git a/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js b/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js
index 58832b73..4eeb9a9a 100644
--- a/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js
+++ b/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 import { useHistory } from "react-router-dom";
 
 // @material-ui/core components
@@ -223,24 +223,24 @@ const useStyles = makeStyles(styles);
 export default function EditCreateUserProfile(props) {
   const classes = useStyles();
   const history = useHistory();
-  const [copied, setCopied] = React.useState(false);
-  const [generated, setGenerated] = React.useState(true);
-  const [userExists, setUserExists] = React.useState(false);
-  const [userName, setUserName] = React.useState("");
-  const [loading, setLoading] = React.useState(false);
-  const [progress, setProgress] = React.useState(0);
+  const [copied, setCopied] = useState(false);
+  const [generated, setGenerated] = useState(true);
+  const [userExists, setUserExists] = useState(false);
+  const [userName, setUserName] = useState("");
+  const [loading, setLoading] = useState(false);
+  const [progress, setProgress] = useState(0);
 
-  const [profilePicture, setProfilePicture] = React.useState("");
-  const [profilePicturePreview, setProfilePicturePreview] = React.useState(
+  const [profilePicture, setProfilePicture] = useState("");
+  const [profilePicturePreview, setProfilePicturePreview] = useState(
     noProfilePicture
   );
-  const [originalUploadedImage, setOriginalUploadedImage] = React.useState("");
+  const [originalUploadedImage, setOriginalUploadedImage] = useState("");
 
-  const [open, setOpen] = React.useState(false);
-  const [crop, setCrop] = React.useState({ x: 0, y: 0 });
-  const [zoom, setZoom] = React.useState(1);
-  const [rotation, setRotation] = React.useState(0);
-  const [passwordVisible, setPasswordVisible] = React.useState(false);
+  const [open, setOpen] = useState(false);
+  const [crop, setCrop] = useState({ x: 0, y: 0 });
+  const [zoom, setZoom] = useState(1);
+  const [rotation, setRotation] = useState(0);
+  const [passwordVisible, setPasswordVisible] = useState(false);
 
   const passwordGenerator = () => {
     return generator.generate({
@@ -253,7 +253,7 @@ export default function EditCreateUserProfile(props) {
 
   const intialyGeneratedPassword = passwordGenerator();
 
-  const [initialValues, setInitialValues] = React.useState({
+  const [initialValues, setInitialValues] = useState({
     username: "",
     password: intialyGeneratedPassword,
     confirmPassword: intialyGeneratedPassword,
diff --git a/jams-react-client/src/views/UserProfile/UserProfile.js b/jams-react-client/src/views/UserProfile/UserProfile.js
index 62cc5dc8..7fd8ca95 100755
--- a/jams-react-client/src/views/UserProfile/UserProfile.js
+++ b/jams-react-client/src/views/UserProfile/UserProfile.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
 import { useHistory } from "react-router-dom";
 // core components
 import Devices from "components/Devices/Devices.js";
@@ -57,8 +57,8 @@ function a11yProps(index) {
 export default function UserProfile(props) {
   const history = useHistory();
 
-  const [value, setValue] = React.useState(0);
-  const [displayUser, setDisplayUser] = React.useState(true);
+  const [value, setValue] = useState(0);
+  const [displayUser, setDisplayUser] = useState(true);
 
   const handleChange = (event, newValue) => {
     setValue(newValue);
diff --git a/jams-react-client/src/views/Users/Users.js b/jams-react-client/src/views/Users/Users.js
index 59ce0c9f..65a0429d 100644
--- a/jams-react-client/src/views/Users/Users.js
+++ b/jams-react-client/src/views/Users/Users.js
@@ -75,20 +75,20 @@ const useStyles = makeStyles(styles);
 export default function Users(props) {
   const classes = useStyles();
   const history = useHistory();
-  const [users, setUsers] = React.useState([]);
-  const [noUsersFound, setNoUsersFound] = React.useState(false);
-  const [noMatchFound, setNoMatchFound] = React.useState(false);
-  const [selectedUsername, setSelectedUsername] = React.useState("");
-  const [createUser, setCreateUser] = React.useState(false);
-  const [loading, setLoading] = React.useState(false);
-  const [progress, setProgress] = React.useState(0);
-  const [showRevokedUsers, setShowRevokedUsers] = React.useState(false);
+  const [users, setUsers] = useState([]);
+  const [noUsersFound, setNoUsersFound] = useState(false);
+  const [noMatchFound, setNoMatchFound] = useState(false);
+  const [selectedUsername, setSelectedUsername] = useState("");
+  const [createUser, setCreateUser] = useState(false);
+  const [loading, setLoading] = useState(false);
+  const [progress, setProgress] = useState(0);
+  const [showRevokedUsers, setShowRevokedUsers] = useState(false);
 
-  const [searchValue, setSearchValue] = React.useState("");
+  const [searchValue, setSearchValue] = useState("");
 
-  const [selectedPage, setSelectedPage] = React.useState(1);
+  const [selectedPage, setSelectedPage] = useState(1);
 
-  const [numberPages, setNumberPages] = React.useState(1);
+  const [numberPages, setNumberPages] = useState(1);
   useEffect(() => {
     setLoading(true);
     const timer = setInterval(() => {
-- 
GitLab