update imports for React 18
Change-Id: Ibc75ce532003a478b31d5d85d84c83a017262041
diff --git a/client/src/components/AccountPreferences.js b/client/src/components/AccountPreferences.js
index 0c62204..68509f2 100644
--- a/client/src/components/AccountPreferences.js
+++ b/client/src/components/AccountPreferences.js
@@ -1,4 +1,4 @@
-import React, { useState } from 'react'
+import { useState } from 'react'
import { List, ListItem, ListItemIcon, ListItemSecondaryAction, ListItemText, ListSubheader, Switch, Typography, Grid, Paper, CardContent, Card, TableContainer, Table, TableHead, TableRow, TableCell, TableBody, Toolbar, IconButton, ListItemAvatar, Input, TextField } from '@mui/material'
import { PhoneCallbackRounded, GroupRounded, DeleteRounded, AddCircle } from '@mui/icons-material'
diff --git a/client/src/components/ContactList.js b/client/src/components/ContactList.js
index ec04cef..f3f4efa 100644
--- a/client/src/components/ContactList.js
+++ b/client/src/components/ContactList.js
@@ -2,7 +2,7 @@
import authManager from "../AuthManager";
import ConversationAvatar from "./ConversationAvatar";
import Modal from 'react-modal';
-import React, { useState, useEffect } from "react";
+import { useState, useEffect } from "react";
import { Person } from "@mui/icons-material";
import { useAppDispatch, useAppSelector } from "../../redux/hooks";
import { ListItem, ListItemAvatar, ListItemText } from "@mui/material";
diff --git a/client/src/components/ConversationAvatar.js b/client/src/components/ConversationAvatar.js
index 9d19f25..ea9fcb0 100644
--- a/client/src/components/ConversationAvatar.js
+++ b/client/src/components/ConversationAvatar.js
@@ -1,4 +1,3 @@
-import React from 'react'
import { Avatar } from '@mui/material'
export default function ConversationAvatar({displayName,...props}) {
diff --git a/client/src/components/ConversationList.js b/client/src/components/ConversationList.js
index 28ecbd5..d81ebb2 100644
--- a/client/src/components/ConversationList.js
+++ b/client/src/components/ConversationList.js
@@ -1,5 +1,5 @@
import List from '@mui/material/List'
-import React, { useEffect } from "react";
+import { useEffect } from "react";
import ConversationListItem from './ConversationListItem'
import ListSubheader from '@mui/material/ListSubheader';
import Conversation from '../../../model/Conversation';
diff --git a/client/src/components/ConversationListItem.js b/client/src/components/ConversationListItem.js
index 36932bf..e0b8e49 100644
--- a/client/src/components/ConversationListItem.js
+++ b/client/src/components/ConversationListItem.js
@@ -1,12 +1,10 @@
-import React, { useEffect } from 'react';
import Modal from 'react-modal';
import authManager from '../AuthManager'
import ConversationAvatar from './ConversationAvatar'
import Conversation from '../../../model/Conversation'
-import React, { useState } from "react";
+import { useState } from "react";
import { useNavigate, useParams } from "react-router-dom"
-import { ListItem, ListItemAvatar, ListItemText, Box, Typography } from '@mui/material'
-import { Button, Stack, Typography, Modal as ModalUM } from "@mui/material"
+import { ListItem, Stack, ListItemAvatar, ListItemText, Box, Typography } from '@mui/material'
import { RemoveContactIcon, VideoCallIcon } from './svgIcons';
import { AudioCallIcon, BlockContactIcon, ContactDetailsIcon, CrossIcon, MessageIcon } from './svgIcons';
import { QRCodeCanvas} from 'qrcode.react';
diff --git a/client/src/components/ConversationView.js b/client/src/components/ConversationView.js
index ba9b932..9d12665 100644
--- a/client/src/components/ConversationView.js
+++ b/client/src/components/ConversationView.js
@@ -1,4 +1,4 @@
-import React, { useCallback, useContext, useEffect, useState } from 'react';
+import { useCallback, useContext, useEffect, useState } from 'react'
import MessageList from './MessageList';
import SendMessageForm from './SendMessageForm';
import Conversation from '../../../model/Conversation';
diff --git a/client/src/components/ConversationsOverviewCard.js b/client/src/components/ConversationsOverviewCard.js
index 89f8576..04f74f5 100644
--- a/client/src/components/ConversationsOverviewCard.js
+++ b/client/src/components/ConversationsOverviewCard.js
@@ -1,4 +1,4 @@
-import React, { useEffect, useState } from 'react';
+import { useEffect, useState } from 'react'
import { Card, CardActionArea, CardContent, CircularProgress, Typography } from '@mui/material';
import { useNavigate, useParams } from 'react-router';
import authManager from '../AuthManager'
diff --git a/client/src/components/Header.js b/client/src/components/Header.js
index c2dc29e..0c3eda4 100644
--- a/client/src/components/Header.js
+++ b/client/src/components/Header.js
@@ -1,4 +1,4 @@
-import React, { useState } from 'react'
+import { useState } from 'react'
import { Box, Button, Menu, MenuItem } from '@mui/material'
import { useNavigate, useParams } from "react-router-dom"
import authManager from '../AuthManager'
diff --git a/client/src/components/JamiIdCard.js b/client/src/components/JamiIdCard.js
index 32949d6..b999780a 100644
--- a/client/src/components/JamiIdCard.js
+++ b/client/src/components/JamiIdCard.js
@@ -1,4 +1,3 @@
-import React from 'react';
import { Box, Card, CardContent, Typography } from '@mui/material';
export default function JamiIdCard(props) {
diff --git a/client/src/components/ListItemLink.js b/client/src/components/ListItemLink.js
index a0ebc3b..c72a268 100644
--- a/client/src/components/ListItemLink.js
+++ b/client/src/components/ListItemLink.js
@@ -1,4 +1,4 @@
-import React, { useMemo, forwardRef } from 'react';
+import { useMemo, forwardRef } from 'react'
import PropTypes from 'prop-types';
import ListItem from '@mui/material/ListItem';
import ListItemIcon from '@mui/material/ListItemIcon';
diff --git a/client/src/components/Message.js b/client/src/components/Message.js
index 44d423a..e22d863 100644
--- a/client/src/components/Message.js
+++ b/client/src/components/Message.js
@@ -2,7 +2,7 @@
import dayjs from "dayjs"
import isToday from "dayjs/plugin/isToday"
import isYesterday from "dayjs/plugin/isYesterday"
-import React from "react"
+import { useMemo } from "react";
import { useTranslation } from "react-i18next"
import ConversationAvatar from "./ConversationAvatar"
@@ -219,7 +219,7 @@
const MessageBubble = (props) => {
const largeRadius = "20px"
const smallRadius = "5px"
- const radius = React.useMemo(() => {
+ const radius = useMemo(() => {
if (props.position == "start") {
return {
borderStartStartRadius: props.isFirstOfGroup ? largeRadius : smallRadius,
diff --git a/client/src/components/MessageList.js b/client/src/components/MessageList.js
index 5ea46b5..a6084a7 100644
--- a/client/src/components/MessageList.js
+++ b/client/src/components/MessageList.js
@@ -1,5 +1,5 @@
import dayjs from "dayjs"
-import React, { useMemo } from 'react'
+import { useMemo } from 'react'
import dayOfYear from 'dayjs/plugin/dayOfYear'
import isBetween from 'dayjs/plugin/isBetween'
import { Stack } from "@mui/system"
diff --git a/client/src/components/NewContactForm.js b/client/src/components/NewContactForm.js
index a4c6f84..9482948 100644
--- a/client/src/components/NewContactForm.js
+++ b/client/src/components/NewContactForm.js
@@ -1,4 +1,4 @@
-import React, { useState } from 'react'
+import { useState } from 'react'
import { InputBase, InputAdornment } from '@mui/material';
import { SearchRounded } from '@mui/icons-material';
diff --git a/client/src/components/SendMessageForm.js b/client/src/components/SendMessageForm.js
index f1cb2d6..df520ff 100644
--- a/client/src/components/SendMessageForm.js
+++ b/client/src/components/SendMessageForm.js
@@ -1,10 +1,10 @@
-import React from 'react'
+import { useState, useCallback } from 'react'
import { Divider, InputBase } from '@mui/material'
import { RecordVideoMessageButton, RecordVoiceMessageButton, SelectEmojiButton, SendMessageButton, UploadFileButton } from './buttons';
import { Stack } from '@mui/system';
export default function SendMessageForm(props) {
- const [currentMessage, setCurrentMessage] = React.useState("")
+ const [currentMessage, setCurrentMessage] = useState("")
const handleSubmit = e => {
e.preventDefault()
@@ -15,7 +15,7 @@
}
const handleInputChange = (event) => setCurrentMessage(event.target.value)
- const onEmojiSelected = React.useCallback(
+ const onEmojiSelected = useCallback(
(emoji) => setCurrentMessage((currentMessage) => currentMessage + emoji),
[setCurrentMessage],
)
diff --git a/client/src/components/UsernameChooser.js b/client/src/components/UsernameChooser.js
index 2df96c6..7703639 100644
--- a/client/src/components/UsernameChooser.js
+++ b/client/src/components/UsernameChooser.js
@@ -1,4 +1,4 @@
-import React, { useEffect, useState } from 'react'
+import { useEffect, useState } from 'react'
import usePromise from "react-fetch-hook/usePromise"
import { InputAdornment, TextField } from '@mui/material'
import { SearchRounded } from '@mui/icons-material'
diff --git a/client/src/components/buttons.js b/client/src/components/buttons.js
index e1b82a4..7ea9802 100644
--- a/client/src/components/buttons.js
+++ b/client/src/components/buttons.js
@@ -2,7 +2,7 @@
import { Box, ClickAwayListener, IconButton, Popper } from "@mui/material";
import { styled } from "@mui/material/styles";
import EmojiPicker from "emoji-picker-react";
-import React from "react";
+import { useState, useCallback } from "react";
import { Arrow2Icon, ArrowIcon, CameraIcon, CameraInBubbleIcon, CancelIcon, CrossedEyeIcon, CrossIcon, EmojiIcon, EyeIcon, FolderIcon, InfoIcon, MicroInBubbleIcon, PaperClipIcon, PenIcon } from "./svgIcons";
const RoundButton = styled(
@@ -215,19 +215,19 @@
}
export const SelectEmojiButton = (props) => {
- const [anchorEl, setAnchorEl] = React.useState(null)
+ const [anchorEl, setAnchorEl] = useState(null)
- const handleOpenEmojiPicker = React.useCallback(
+ const handleOpenEmojiPicker = useCallback(
e => setAnchorEl(anchorEl ? null : e.currentTarget),
[anchorEl],
)
- const handleClose = React.useCallback(
+ const handleClose = useCallback(
() => setAnchorEl(null),
[setAnchorEl],
)
- const onEmojiClick = React.useCallback(
+ const onEmojiClick = useCallback(
(e, emojiObject) => {
props.onEmojiSelected(emojiObject.emoji)
handleClose()
diff --git a/client/src/components/inputs.js b/client/src/components/inputs.js
index 52047d3..a0315d3 100644
--- a/client/src/components/inputs.js
+++ b/client/src/components/inputs.js
@@ -1,6 +1,6 @@
import { Stack, TextField } from "@mui/material"
import { styled } from "@mui/material/styles"
-import React from "react"
+import { useState, useCallback, useEffect } from "react";
import { InfoButton, ToggleVisibilityButton } from "./buttons"
import { CheckedIcon, RoundCrossIcon, LockIcon, PenIcon, PersonIcon } from "./svgIcons"
@@ -13,16 +13,16 @@
const StyledLockIcon = styled(LockIcon)({height: iconsHeight, color: "#03B9E9"})
export const UsernameInput = ({infoButtonProps, ...props}) => {
- const [isSelected, setIsSelected] = React.useState(false);
- const [input, setInput] = React.useState(props.defaultValue);
- const [startAdornment, setStartAdornment] = React.useState()
+ const [isSelected, setIsSelected] = useState(false);
+ const [input, setInput] = useState(props.defaultValue);
+ const [startAdornment, setStartAdornment] = useState()
- const onChange = React.useCallback((event) => {
+ const onChange = useCallback((event) => {
setInput(event.target.value)
props.onChange?.(event)
}, [props.onChange])
- React.useEffect(() => {
+ useEffect(() => {
/* Handle startAdornment */
let Icon = StyledPersonIconLight
let visibility = "visible"
@@ -56,21 +56,21 @@
}
export const PasswordInput = ({infoButtonProps, ...props}) => {
- const [showPassword, setShowPassword] = React.useState(false);
- const [isSelected, setIsSelected] = React.useState(false);
- const [input, setInput] = React.useState(props.defaultValue);
- const [startAdornment, setStartAdornment] = React.useState()
+ const [showPassword, setShowPassword] = useState(false);
+ const [isSelected, setIsSelected] = useState(false);
+ const [input, setInput] = useState(props.defaultValue);
+ const [startAdornment, setStartAdornment] = useState()
const toggleShowPassword = () => {
setShowPassword((showPassword) => !showPassword);
}
- const onChange = React.useCallback((event) => {
+ const onChange = useCallback((event) => {
setInput(event.target.value)
props.onChange?.(event)
}, [props.onChange])
- React.useEffect(() => {
+ useEffect(() => {
/* Handle startAdornment */
let Icon = StyledLockIcon
let visibility = "visible"
@@ -112,16 +112,16 @@
}
export const NickNameInput = (props) => {
- const [isSelected, setIsSelected] = React.useState(false);
- const [input, setInput] = React.useState(props.defaultValue);
- const [startAdornmentVisibility, setStartAdornmentVisibility] = React.useState()
+ const [isSelected, setIsSelected] = useState(false);
+ const [input, setInput] = useState(props.defaultValue);
+ const [startAdornmentVisibility, setStartAdornmentVisibility] = useState()
- const onChange = React.useCallback((event) => {
+ const onChange = useCallback((event) => {
setInput(event.target.value)
props.onChange?.(event)
}, [props.onChange])
- React.useEffect(() => {
+ useEffect(() => {
setStartAdornmentVisibility((isSelected || input) ? "visible" : "hidden")
}, [isSelected, input])
@@ -142,17 +142,17 @@
}
export const RegularInput = (props) => {
- const [isSelected, setIsSelected] = React.useState(false);
- const [input, setInput] = React.useState(props.defaultValue);
- const [startAdornmentVisibility, setStartAdornmentVisibility] = React.useState()
- const [endAdornmentVisibility, setEndAdornmentVisibility] = React.useState()
+ const [isSelected, setIsSelected] = useState(false);
+ const [input, setInput] = useState(props.defaultValue);
+ const [startAdornmentVisibility, setStartAdornmentVisibility] = useState()
+ const [endAdornmentVisibility, setEndAdornmentVisibility] = useState()
- const onChange = React.useCallback((event) => {
+ const onChange = useCallback((event) => {
setInput(event.target.value)
props.onChange?.(event)
}, [props.onChange])
- React.useEffect(() => {
+ useEffect(() => {
setStartAdornmentVisibility((isSelected || input) ? "visible" : "hidden")
setEndAdornmentVisibility((isSelected || input) ? "hidden" : "visible")
}, [isSelected, input])
diff --git a/client/src/components/loading.js b/client/src/components/loading.js
index dee6e88..a928a22 100644
--- a/client/src/components/loading.js
+++ b/client/src/components/loading.js
@@ -1,5 +1,4 @@
import { CircularProgress, Container } from '@mui/material';
-import React from 'react';
export default function LoadingPage() {
return <Container style={{ textAlign: "center" }}>
diff --git a/client/src/components/welcome.js b/client/src/components/welcome.js
index 46c054c..24a217a 100644
--- a/client/src/components/welcome.js
+++ b/client/src/components/welcome.js
@@ -1,6 +1,6 @@
import { Button, Container } from '@mui/material';
import { AnimatePresence, motion } from 'framer-motion';
-import React, { useState } from 'react';
+import { useState } from 'react'
import JamiLogo from '../../public/jami-logo-icon.svg'
const list = {