Update to React 18 and react-bootstrap 2

This commit is contained in:
Aurora Lahtela 2023-02-06 19:01:33 +02:00
parent c28f239ddc
commit a2d92a34cb
84 changed files with 234 additions and 219 deletions

View File

@ -29,9 +29,9 @@
"i18next-http-backend": "^2.1.1",
"i18next-localstorage-backend": "^4.1.0",
"masonry-layout": "^4.2.2",
"react": "^17.0.2",
"react-bootstrap-v5": "^1.4.0",
"react-dom": "^17.0.2",
"react": "^18.2.0",
"react-bootstrap": "^2.7.0",
"react-dom": "^18.2.0",
"react-i18next": "^12.1.5",
"react-mcjsonchat": "^1.0.0",
"react-router-dom": "6",

View File

@ -3,7 +3,7 @@ import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faCrosshairs, faGavel, faLocationArrow, faServer, faSkull} from "@fortawesome/free-solid-svg-icons";
import {faCalendarCheck, faCalendarPlus, faClock} from "@fortawesome/free-regular-svg-icons";
import Datapoint from "../Datapoint";
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import WorldPie from "../graphs/WorldPie";
import Accordion from "./Accordion";
import {faSuperpowers} from "@fortawesome/free-brands-svg-icons";

View File

@ -3,7 +3,7 @@ import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faCrosshairs, faServer, faSignal, faSkull, faUser} from "@fortawesome/free-solid-svg-icons";
import {faCalendarPlus, faClock, faMap} from "@fortawesome/free-regular-svg-icons";
import Datapoint from "../Datapoint";
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import WorldPie from "../graphs/WorldPie";
import KillsTable from "../table/KillsTable";
import Accordion from "./Accordion";

View File

@ -1,6 +1,6 @@
import React from 'react';
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {useTranslation} from "react-i18next";
const CardHeader = ({icon, color, label}) => {

View File

@ -1,14 +1,11 @@
import {useTranslation} from "react-i18next";
import {Card, Col, Dropdown, Row} from "react-bootstrap-v5";
import {Card, Col, Dropdown, Row} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import React, {useState} from "react";
import {faExclamationTriangle, faGlobe, faLayerGroup} from "@fortawesome/free-solid-svg-icons";
import GeolocationBarGraph from "../../graphs/GeolocationBarGraph";
import GeolocationWorldMap, {ProjectionOptions} from "../../graphs/GeolocationWorldMap";
import {CardLoader} from "../../navigation/Loader";
import DropdownToggle from "react-bootstrap-v5/lib/esm/DropdownToggle";
import DropdownMenu from "react-bootstrap-v5/lib/esm/DropdownMenu";
import DropdownItem from "react-bootstrap-v5/lib/esm/DropdownItem";
const ProjectionDropDown = ({projection, setProjection}) => {
const {t} = useTranslation();
@ -18,18 +15,18 @@ const ProjectionDropDown = ({projection, setProjection}) => {
return (
<Dropdown className="float-end" style={{position: "absolute", right: "0.5rem"}}
title={t('html.label.geoProjection.dropdown')}>
<DropdownToggle variant=''>
<Dropdown.Toggle variant=''>
<Fa icon={faLayerGroup}/> {t(projection)}
</DropdownToggle>
</Dropdown.Toggle>
<DropdownMenu>
<Dropdown.Menu>
<h6 className="dropdown-header">{t('html.label.geoProjection.dropdown')}</h6>
{projectionOptions.map((option, i) => (
<DropdownItem key={i} onClick={() => setProjection(option)}>
<Dropdown.Item key={i} onClick={() => setProjection(option)}>
{t(option)}
</DropdownItem>
</Dropdown.Item>
))}
</DropdownMenu>
</Dropdown.Menu>
</Dropdown>
)
}

View File

@ -1,5 +1,5 @@
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import React from "react";
import {faLifeRing} from "@fortawesome/free-regular-svg-icons";

View File

@ -1,5 +1,5 @@
import React from 'react';
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import CardHeader from "../CardHeader";
import {faWifi} from "@fortawesome/free-solid-svg-icons";
import PingTable from "../../table/PingTable";

View File

@ -1,5 +1,5 @@
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import React, {useEffect, useState} from "react";
import {faUsers} from "@fortawesome/free-solid-svg-icons";

View File

@ -1,5 +1,5 @@
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faCrosshairs} from "@fortawesome/free-solid-svg-icons";
import KillsTable from "../../table/KillsTable";

View File

@ -1,5 +1,5 @@
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faCalendar, faHandPointer} from "@fortawesome/free-regular-svg-icons";
import Scrollable from "../../Scrollable";

View File

@ -1,4 +1,4 @@
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import React from "react";
import {CardLoader} from "../../navigation/Loader";
import ServerPie from "../../graphs/ServerPie";

View File

@ -1,4 +1,4 @@
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import Datapoint from "../../Datapoint";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faLongArrowAltRight} from "@fortawesome/free-solid-svg-icons";

View File

@ -1,5 +1,5 @@
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faClock} from "@fortawesome/free-regular-svg-icons";
import WorldPie from "../../graphs/WorldPie";

View File

@ -9,7 +9,7 @@ import {
faTachometerAlt,
faUser
} from "@fortawesome/free-solid-svg-icons";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {useDataRequest} from "../../../hooks/dataFetchHook";
import {fetchPingGraph} from "../../../service/serverService";
import {tooltip, yAxisConfigurations} from "../../../util/graphs";

View File

@ -1,5 +1,5 @@
import React from 'react';
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import CardHeader from "../CardHeader";
import {
faBookOpen,

View File

@ -1,6 +1,6 @@
import React from 'react';
import CardHeader from "../CardHeader";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import PlayersOnlineGraph from "../../graphs/PlayersOnlineGraph";
import {faChartArea} from "@fortawesome/free-solid-svg-icons";
import {useTranslation} from "react-i18next";

View File

@ -1,12 +1,9 @@
import React, {useCallback, useState} from 'react';
import {Card, Dropdown} from "react-bootstrap-v5";
import {Card, Dropdown} from "react-bootstrap";
import ServersTable, {ServerSortOption} from "../../table/ServersTable";
import {faNetworkWired} from "@fortawesome/free-solid-svg-icons";
import {useTranslation} from "react-i18next";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import DropdownToggle from "react-bootstrap-v5/lib/esm/DropdownToggle";
import DropdownMenu from "react-bootstrap-v5/lib/esm/DropdownMenu";
import DropdownItem from "react-bootstrap-v5/lib/esm/DropdownItem";
import {CardLoader} from "../../navigation/Loader";
const SortDropDown = ({sortBy, sortReversed, setSortBy}) => {
@ -20,18 +17,18 @@ const SortDropDown = ({sortBy, sortReversed, setSortBy}) => {
return (
<Dropdown className="float-end" style={{position: "absolute", right: "0.5rem"}}>
<DropdownToggle variant=''>
<Dropdown.Toggle variant=''>
<Fa icon={getSortIcon()}/> {t(sortBy.label)}
</DropdownToggle>
</Dropdown.Toggle>
<DropdownMenu>
<Dropdown.Menu>
<h6 className="dropdown-header">{t('html.label.sortBy')}</h6>
{sortOptions.map((option, i) => (
<DropdownItem key={i} onClick={() => setSortBy(option)}>
<Dropdown.Item key={i} onClick={() => setSortBy(option)}>
{t(option.label)}
</DropdownItem>
</Dropdown.Item>
))}
</DropdownMenu>
</Dropdown.Menu>
</Dropdown>
)
}

View File

@ -1,6 +1,6 @@
import {useTranslation} from "react-i18next";
import {useTheme} from "../../../hooks/themeHook";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faServer, faSignature} from "@fortawesome/free-solid-svg-icons";
import Scrollable from "../../Scrollable";

View File

@ -1,5 +1,5 @@
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faCampground} from "@fortawesome/free-solid-svg-icons";
import React from "react";

View File

@ -1,9 +1,6 @@
import React from 'react';
import DropdownToggle from "react-bootstrap-v5/lib/esm/DropdownToggle";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import DropdownMenu from "react-bootstrap-v5/lib/esm/DropdownMenu";
import DropdownItem from "react-bootstrap-v5/lib/esm/DropdownItem";
import {Dropdown} from "react-bootstrap-v5";
import {Dropdown} from "react-bootstrap";
import {faPlus} from "@fortawesome/free-solid-svg-icons";
import {useTranslation} from "react-i18next";
import Scrollable from "../../Scrollable";
@ -47,20 +44,20 @@ const FilterDropdown = ({filterOptions, filters, setFilters}) => {
return (
<Dropdown>
<DropdownToggle variant=''>
<Dropdown.Toggle variant=''>
<Fa icon={faPlus}/> {t('html.query.filters.add')}
</DropdownToggle>
</Dropdown.Toggle>
<DropdownMenu popperConfig={{strategy: "absolute"}}>
<Dropdown.Menu popperConfig={{strategy: "absolute"}}>
<h6 className="dropdown-header">{t('html.query.filters.add')}</h6>
<Scrollable>
{filterOptions.map((option, i) => (
<DropdownItem key={i} onClick={() => addFilter(option)}>
<Dropdown.Item key={i} onClick={() => addFilter(option)}>
{getReadableFilterName(option)}
</DropdownItem>
</Dropdown.Item>
))}
</Scrollable>
</DropdownMenu>
</Dropdown.Menu>
</Dropdown>
)
};

View File

@ -29,8 +29,8 @@ const FilterList = ({filters, setFilters, setAsInvalid, setAsValid}) => {
return (
<ul id={"filters"} className={"filters"}>
{filters.map((filter, i) => <li className={"filter"}>
<Filter filter={filter} key={i} index={i}
{filters.map((filter, i) => <li key={i} className={"filter"}>
<Filter filter={filter} index={i}
setFilterOptions={newOptions => updateFilterOptions(i, newOptions)}
removeFilter={() => removeFilter(i)}
moveUp={() => moveUp(i)}

View File

@ -1,5 +1,5 @@
import React, {useCallback, useEffect, useState} from 'react';
import {Card, Col, Row} from "react-bootstrap-v5";
import {Card, Col, Row} from "react-bootstrap";
import {useTranslation} from "react-i18next";
import {useDataRequest} from "../../../hooks/dataFetchHook";
import {fetchFilters, postQuery} from "../../../service/queryService";
@ -61,8 +61,8 @@ const QueryOptionsCard = () => {
// View state handling
const [invalidFields, setInvalidFields] = useState([]);
const setAsInvalid = id => setInvalidFields([...invalidFields, id]);
const setAsValid = id => setInvalidFields(invalidFields.filter(invalid => id !== invalid));
const setAsInvalid = useCallback(id => setInvalidFields([...invalidFields, id]), [setInvalidFields, invalidFields]);
const setAsValid = useCallback(id => setInvalidFields(invalidFields.filter(invalid => id !== invalid)), [setInvalidFields, invalidFields]);
const [extremes, setExtremes] = useState(undefined);
/*eslint-disable react-hooks/exhaustive-deps */

View File

@ -1,5 +1,5 @@
import React from 'react';
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import CardHeader from "../CardHeader";
import {faCalendar, faCalendarCheck, faClock} from "@fortawesome/free-regular-svg-icons";
import Datapoint from "../../Datapoint";

View File

@ -2,7 +2,7 @@ import React, {useEffect, useState} from 'react';
import {useTranslation} from "react-i18next";
import DateInputField from "../../../input/DateInputField";
import TimeInputField from "../../../input/TimeInputField";
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import {FontAwesomeIcon} from "@fortawesome/react-fontawesome";
import {faTrashAlt} from "@fortawesome/free-regular-svg-icons";

View File

@ -3,7 +3,7 @@ import {useTranslation} from "react-i18next";
import MultiSelect from "../../../input/MultiSelect";
import {FontAwesomeIcon} from "@fortawesome/react-fontawesome";
import {faTrashAlt} from "@fortawesome/free-regular-svg-icons";
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
const MultipleChoiceFilter = ({index, label, filter, removeFilter, setFilterOptions}) => {
const {t} = useTranslation();

View File

@ -3,7 +3,7 @@ import {useDataRequest} from "../../../../hooks/dataFetchHook";
import {fetchPlayerbaseDevelopmentGraph} from "../../../../service/serverService";
import {ErrorViewCard} from "../../../../views/ErrorView";
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faUsers} from "@fortawesome/free-solid-svg-icons";
import {CardLoader} from "../../../navigation/Loader";

View File

@ -4,7 +4,7 @@ import {useDataRequest} from "../../../../hooks/dataFetchHook";
import {fetchJoinAddressByDay} from "../../../../service/serverService";
import {ErrorViewCard} from "../../../../views/ErrorView";
import {CardLoader} from "../../../navigation/Loader";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faChartColumn} from "@fortawesome/free-solid-svg-icons";
import JoinAddressGraph from "../../../graphs/JoinAddressGraph";

View File

@ -4,7 +4,7 @@ import {useDataRequest} from "../../../../hooks/dataFetchHook";
import {fetchJoinAddressPie} from "../../../../service/serverService";
import {ErrorViewCard} from "../../../../views/ErrorView";
import {CardLoader} from "../../../navigation/Loader";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faLocationArrow} from "@fortawesome/free-solid-svg-icons";
import GroupVisualizer from "../../../graphs/GroupVisualizer";

View File

@ -1,6 +1,6 @@
import React from 'react';
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import CardTabs from "../../../CardTabs";
import {faChartArea} from "@fortawesome/free-solid-svg-icons";
import {useDataRequest} from "../../../../hooks/dataFetchHook";

View File

@ -3,7 +3,7 @@ import {useParams} from "react-router-dom";
import {useDataRequest} from "../../../../hooks/dataFetchHook";
import {fetchPlayersOnlineGraph} from "../../../../service/serverService";
import {ErrorViewCard} from "../../../../views/ErrorView";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faChartArea} from "@fortawesome/free-solid-svg-icons";
import PlayersOnlineGraph from "../../../graphs/PlayersOnlineGraph";

View File

@ -9,7 +9,7 @@ import {
import {ErrorViewBody} from "../../../../views/ErrorView";
import PunchCard from "../../../graphs/PunchCard";
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import CardTabs from "../../../CardTabs";
import {faBraille, faChartArea} from "@fortawesome/free-solid-svg-icons";
import {faCalendar} from "@fortawesome/free-regular-svg-icons";

View File

@ -3,7 +3,7 @@ import {useDataRequest} from "../../../../hooks/dataFetchHook";
import {fetchOptimizedPerformance, fetchPingGraph} from "../../../../service/serverService";
import {ErrorViewBody} from "../../../../views/ErrorView";
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import CardTabs from "../../../CardTabs";
import {faGears, faHdd, faMap, faMicrochip, faSignal, faTachometerAlt} from "@fortawesome/free-solid-svg-icons";
import React, {useEffect, useState} from "react";

View File

@ -2,7 +2,7 @@ import {useTranslation} from "react-i18next";
import {useDataRequest} from "../../../../hooks/dataFetchHook";
import {fetchPlayerbaseDevelopmentGraph} from "../../../../service/serverService";
import {ErrorViewCard} from "../../../../views/ErrorView";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faChartLine} from "@fortawesome/free-solid-svg-icons";
import React from "react";

View File

@ -1,5 +1,5 @@
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faBookOpen} from "@fortawesome/free-solid-svg-icons";
import React from "react";

View File

@ -2,7 +2,7 @@ import React from 'react';
import PerformanceAsNumbersTable from "../../../table/PerformanceAsNumbersTable";
import CardHeader from "../../CardHeader";
import {faBookOpen} from "@fortawesome/free-solid-svg-icons";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
const PerformanceAsNumbersCard = ({data}) => {
return (

View File

@ -1,5 +1,5 @@
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faExchangeAlt, faUsers} from "@fortawesome/free-solid-svg-icons";
import ComparisonTable from "../../../table/ComparisonTable";

View File

@ -1,5 +1,5 @@
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faCampground} from "@fortawesome/free-solid-svg-icons";
import React from "react";

View File

@ -1,5 +1,5 @@
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faCrosshairs, faExchangeAlt, faSkull, faUsers} from "@fortawesome/free-solid-svg-icons";
import ComparisonTable from "../../../table/ComparisonTable";

View File

@ -1,5 +1,5 @@
import {useTranslation} from "react-i18next";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {
faBookOpen,

View File

@ -1,5 +1,5 @@
import React, {useEffect, useState} from "react";
import {Card, Col} from "react-bootstrap-v5";
import {Card, Col} from "react-bootstrap";
import ExtensionIcon from "./ExtensionIcon";
import Datapoint from "../Datapoint";
import Masonry from 'masonry-layout'

View File

@ -3,7 +3,7 @@ import GroupTable from "../table/GroupTable";
import GroupPie from "./GroupPie";
import {FontAwesomeIcon} from "@fortawesome/react-fontawesome";
import {faBarChart, faChartColumn, faPieChart, faTable} from "@fortawesome/free-solid-svg-icons";
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import GroupBarGraph from "./GroupBarGraph";
const options = {

View File

@ -1,10 +1,10 @@
import React from 'react';
import DropdownToggle from "react-bootstrap-v5/lib/esm/DropdownToggle";
import DropdownToggle from "react-bootstrap/lib/esm/DropdownToggle";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import DropdownMenu from "react-bootstrap-v5/lib/esm/DropdownMenu";
import DropdownItem from "react-bootstrap-v5/lib/esm/DropdownItem";
import DropdownMenu from "react-bootstrap/lib/esm/DropdownMenu";
import DropdownItem from "react-bootstrap/lib/esm/DropdownItem";
import {useTranslation} from "react-i18next";
import {Dropdown} from "react-bootstrap-v5";
import {Dropdown} from "react-bootstrap";
export const DropDownWithOptions = ({selected, optionList, onChange, optionLabelMapper, icon, title}) => {
const {t} = useTranslation();

View File

@ -1,5 +1,5 @@
import React, {useState} from 'react';
import {InputGroup} from "react-bootstrap-v5";
import {InputGroup} from "react-bootstrap";
import {FontAwesomeIcon} from "@fortawesome/react-fontawesome";
import {faCalendar} from "@fortawesome/free-regular-svg-icons";

View File

@ -1,5 +1,5 @@
import React, {useState} from 'react';
import {InputGroup} from "react-bootstrap-v5";
import {InputGroup} from "react-bootstrap";
import {FontAwesomeIcon} from "@fortawesome/react-fontawesome";
import {faClock} from "@fortawesome/free-regular-svg-icons";

View File

@ -3,7 +3,7 @@ import {useTheme} from "../../hooks/themeHook";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faCloudMoon, faPalette} from "@fortawesome/free-solid-svg-icons";
import {colorEnumToBgClass} from "../../util/colors";
import {Modal} from "react-bootstrap-v5";
import {Modal} from "react-bootstrap";
import {useTranslation} from "react-i18next";
const ColorSelectorButton = ({color, setColor, disabled}) =>

View File

@ -1,7 +1,7 @@
import React from 'react';
import {useTranslation} from "react-i18next";
import {useMetadata} from "../../hooks/metadataHook";
import {Modal} from "react-bootstrap-v5";
import {Modal} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faHandPointRight} from "@fortawesome/free-regular-svg-icons";

View File

@ -1,5 +1,5 @@
import React from 'react';
import {Modal} from "react-bootstrap-v5";
import {Modal} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faHandPointRight} from "@fortawesome/free-regular-svg-icons";
import {useTranslation} from "react-i18next";

View File

@ -1,6 +1,6 @@
import React from "react";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {Modal} from "react-bootstrap-v5";
import {Modal} from "react-bootstrap";
import {
faBug,
faChartArea,

View File

@ -1,6 +1,6 @@
import React from "react";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {Modal} from "react-bootstrap-v5";
import {Modal} from "react-bootstrap";
import {faCheckCircle, faDownload} from "@fortawesome/free-solid-svg-icons";
import {useTranslation} from "react-i18next";

View File

@ -2,11 +2,8 @@ import {useMetadata} from "../../hooks/metadataHook";
import {useAuth} from "../../hooks/authenticationHook";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faBars, faClockRotateLeft, faCog, faDoorOpen, faPalette, faSyncAlt} from "@fortawesome/free-solid-svg-icons";
import DropdownMenu from "react-bootstrap-v5/lib/esm/DropdownMenu";
import DropdownItem from "react-bootstrap-v5/lib/esm/DropdownItem";
import {useTheme} from "../../hooks/themeHook";
import {Dropdown} from "react-bootstrap-v5";
import DropdownToggle from "react-bootstrap-v5/lib/esm/DropdownToggle";
import {Dropdown} from "react-bootstrap";
import {localeService} from "../../service/localeService";
import {useTranslation} from "react-i18next";
import {useNavigation} from "../../hooks/navigationHook";
@ -71,23 +68,23 @@ const Header = ({page, tab, hideUpdater}) => {
<div className="topbar-divider"/>
<Dropdown className="nav-item">
<DropdownToggle variant=''>
<Dropdown.Toggle variant=''>
{authRequired && user ? <>
<span className="me-1 login-username">{user.username} </span>
<img alt="user img" className="rounded-circle" src={headImageUrl} style={{height: "2rem"}}/>
</> : <>
<Fa icon={faCog} className="me-2"/>
</>}
</DropdownToggle>
</Dropdown.Toggle>
<DropdownMenu>
<DropdownItem onClick={toggleColorChooser}>
<Dropdown.Menu>
<Dropdown.Item onClick={toggleColorChooser}>
<Fa icon={faPalette}/> {t('html.label.themeSelect')}
</DropdownItem>
{authRequired ? <DropdownItem href={baseAddress + "/auth/logout"}>
</Dropdown.Item>
{authRequired ? <Dropdown.Item href={baseAddress + "/auth/logout"}>
<Fa icon={faDoorOpen}/> {t('html.login.logout')}
</DropdownItem> : ''}
</DropdownMenu>
</Dropdown.Item> : ''}
</Dropdown.Menu>
</Dropdown>
</nav>
)

View File

@ -1,5 +1,5 @@
import React from "react";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
export const CardLoader = () => {
return (

View File

@ -2,7 +2,7 @@ import React, {useEffect, useState} from 'react';
import {faCompass} from "@fortawesome/free-solid-svg-icons";
import {useTranslation} from "react-i18next";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {InputGroup} from "react-bootstrap-v5";
import {InputGroup} from "react-bootstrap";
import {useLocation, useNavigate} from "react-router-dom";
import {useMetadata} from "../../hooks/metadataHook";
import {useAuth} from "../../hooks/authenticationHook";
@ -86,7 +86,7 @@ const PageNavigationItem = ({page}) => {
className="form-select form-select-sm scrollbar"
id="pageSelector"
defaultValue={currentPage ? currentPage : items[0].id}>
{items.map((item, i) =>
{items.map(item =>
<option key={item.id} value={item.id}>{item.displayName}</option>)}
</select>
</InputGroup>

View File

@ -10,7 +10,7 @@ import {fetchPlanVersion} from "../../service/metadataService";
import {useAuth} from "../../hooks/authenticationHook";
import {useNavigation} from "../../hooks/navigationHook";
import {useTranslation} from "react-i18next";
import {Collapse} from "react-bootstrap-v5";
import {Collapse} from "react-bootstrap";
import {baseAddress} from "../../service/backendConfiguration";
import PageNavigationItem from "./PageNavigationItem";
@ -238,7 +238,9 @@ const Sidebar = ({page, items}) => {
setVersionInfo({currentVersion: "Error getting version", updateAvailable: false})
}
}
useEffect(() => loadVersion(), []);
useEffect(() => {
loadVersion();
}, []);
return (
<>

View File

@ -1,5 +1,5 @@
import React from 'react';
import ReactDOM from 'react-dom';
import {createRoot} from "react-dom/client";
import './index.css';
import App from './App';
@ -16,9 +16,12 @@ library.add(fab);
library.add(fas);
library.add(far);
localeService.init().then(() => ReactDOM.render(
localeService.init().then(() => {
const container = document.getElementById('root');
const root = createRoot(container);
root.render(
<React.StrictMode>
<App/>
</React.StrictMode>,
document.getElementById('root')
));
</React.StrictMode>
);
});

View File

@ -1,4 +1,4 @@
import {Card, Col, Row} from "react-bootstrap-v5";
import {Card, Col, Row} from "react-bootstrap";
import React from "react";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faBug} from "@fortawesome/free-solid-svg-icons";

View File

@ -1,5 +1,5 @@
import React from 'react';
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import {ErrorViewCard} from "../ErrorView";
import GeolocationsCard from "../../components/cards/common/GeolocationsCard";
import PingTableCard from "../../components/cards/common/PingTableCard";

View File

@ -8,7 +8,7 @@ import {useDataRequest} from "../../hooks/dataFetchHook";
import {fetchErrorLogs} from "../../service/metadataService";
import ErrorPage from "./ErrorPage";
import ErrorsAccordion from "../../components/accordion/ErrorsAccordion";
import {Card} from "react-bootstrap-v5";
import {Card} from "react-bootstrap";
const ErrorsPage = () => {
const {data, loadingError} = useDataRequest(fetchErrorLogs, []);

View File

@ -1,7 +1,7 @@
import React, {useCallback, useEffect, useState} from 'react';
import logo from '../../Flaticon_circle.png'
import {Alert, Card, Col, Row} from "react-bootstrap-v5";
import {Alert, Card, Col, Row} from "react-bootstrap";
import {Link, useNavigate} from "react-router-dom";
import {useTranslation} from "react-i18next";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";

View File

@ -1,7 +1,7 @@
import React, {useCallback, useEffect, useState} from 'react';
import logo from '../../Flaticon_circle.png'
import {Alert, Card, Col, Row} from "react-bootstrap-v5";
import {Alert, Card, Col, Row} from "react-bootstrap";
import {Link, useNavigate} from "react-router-dom";
import {useTranslation} from "react-i18next";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";

View File

@ -1,5 +1,5 @@
import React from 'react';
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import JoinAddressGroupCard from "../../components/cards/server/graphs/JoinAddressGroupCard";
import JoinAddressGraphCard from "../../components/cards/server/graphs/JoinAddressGraphCard";
import LoadIn from "../../components/animation/LoadIn";

View File

@ -2,7 +2,7 @@ import React from 'react';
import {useDataRequest} from "../../hooks/dataFetchHook";
import ErrorView from "../ErrorView";
import LoadIn from "../../components/animation/LoadIn";
import {Card, Col, Row} from "react-bootstrap-v5";
import {Card, Col, Row} from "react-bootstrap";
import ServerAsNumbersCard from "../../components/cards/server/values/ServerAsNumbersCard";
import ServerWeekComparisonCard from "../../components/cards/server/tables/ServerWeekComparisonCard";
import {fetchNetworkOverview} from "../../service/networkService";

View File

@ -1,6 +1,6 @@
import React, {useCallback, useEffect, useState} from 'react';
import LoadIn from "../../components/animation/LoadIn";
import {Card, Col, Row} from "react-bootstrap-v5";
import {Card, Col, Row} from "react-bootstrap";
import {useMetadata} from "../../hooks/metadataHook";
import CardHeader from "../../components/cards/CardHeader";
import {faServer} from "@fortawesome/free-solid-svg-icons";

View File

@ -1,4 +1,4 @@
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import React from "react";
import PlayerbaseDevelopmentCard from "../../components/cards/server/graphs/PlayerbaseDevelopmentCard";
import CurrentPlayerbaseCard from "../../components/cards/server/graphs/CurrentPlayerbaseCard";

View File

@ -1,5 +1,5 @@
import React, {useState} from 'react';
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import {useDataRequest} from "../../hooks/dataFetchHook";
import {fetchServersOverview} from "../../service/networkService";
import ErrorView from "../ErrorView";

View File

@ -1,4 +1,4 @@
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import React from "react";
import ServerRecentSessionsCard from "../../components/cards/server/tables/ServerRecentSessionsCard";
import SessionInsightsCard from "../../components/cards/server/insights/SessionInsightsCard";

View File

@ -1,5 +1,5 @@
import React from "react";
import {Card, Col, Row} from "react-bootstrap-v5";
import {Card, Col, Row} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faAddressBook, faCalendar, faCalendarCheck, faClock} from "@fortawesome/free-regular-svg-icons";
import {

View File

@ -1,6 +1,6 @@
import React, {useEffect} from "react";
import ExtensionCard, {ExtensionCardWrapper} from "../../components/extensions/ExtensionCard";
import {Card, Col, Row} from "react-bootstrap-v5";
import {Card, Col, Row} from "react-bootstrap";
import {useParams} from "react-router-dom";
import Masonry from "masonry-layout";
import {usePlayer} from "../layout/PlayerPage";

View File

@ -1,5 +1,5 @@
import React from "react";
import {Card, Col, Row} from "react-bootstrap-v5";
import {Card, Col, Row} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faLifeRing} from "@fortawesome/free-regular-svg-icons";
import {faKhanda, faSkull} from "@fortawesome/free-solid-svg-icons";

View File

@ -1,5 +1,5 @@
import React from "react";
import {Card, Col, Row} from "react-bootstrap-v5";
import {Card, Col, Row} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faHandPointer} from "@fortawesome/free-regular-svg-icons";
import Scrollable from "../../components/Scrollable";

View File

@ -1,5 +1,5 @@
import React from "react";
import {Card, Col, Row} from "react-bootstrap-v5";
import {Card, Col, Row} from "react-bootstrap";
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
import {faCalendarAlt} from "@fortawesome/free-regular-svg-icons";
import PlayerSessionCalendar from "../../components/calendar/PlayerSessionCalendar";

View File

@ -2,7 +2,7 @@ import React from 'react';
import {useDataRequest} from "../../hooks/dataFetchHook";
import {fetchPlayers} from "../../service/serverService";
import ErrorView from "../ErrorView";
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import PlayerListCard from "../../components/cards/common/PlayerListCard";
import LoadIn from "../../components/animation/LoadIn";
import {CardLoader} from "../../components/navigation/Loader";

View File

@ -1,6 +1,6 @@
import React from 'react';
import LoadIn from "../../components/animation/LoadIn";
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import QueryOptionsCard from "../../components/cards/query/QueryOptionsCard";
import QueryPath from "../../components/alert/QueryPath";

View File

@ -1,6 +1,6 @@
import React, {useCallback, useEffect} from 'react';
import LoadIn from "../../components/animation/LoadIn";
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import QueryPath from "../../components/alert/QueryPath";
import {useQueryResultContext} from "../../hooks/queryResultContext";
import {useNavigate} from "react-router-dom";

View File

@ -1,5 +1,5 @@
import React from "react";
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import OnlineActivityGraphsCard from "../../components/cards/server/graphs/OnlineActivityGraphsCard";
import OnlineActivityAsNumbersCard from "../../components/cards/server/tables/OnlineActivityAsNumbersCard";
import {useParams} from "react-router-dom";

View File

@ -1,4 +1,4 @@
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import React from "react";
import PlayerbaseDevelopmentCard from "../../components/cards/server/graphs/PlayerbaseDevelopmentCard";
import CurrentPlayerbaseCard from "../../components/cards/server/graphs/CurrentPlayerbaseCard";

View File

@ -1,5 +1,5 @@
import React from 'react';
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import JoinAddressGroupCard from "../../components/cards/server/graphs/JoinAddressGroupCard";
import JoinAddressGraphCard from "../../components/cards/server/graphs/JoinAddressGraphCard";
import {useParams} from "react-router-dom";

View File

@ -1,6 +1,6 @@
import React from "react";
import {Card, Col, Row} from "react-bootstrap-v5";
import {Card, Col, Row} from "react-bootstrap";
import {faExclamationCircle, faPowerOff, faTachometerAlt, faUser, faUsers} from "@fortawesome/free-solid-svg-icons";
import Datapoint from "../../components/Datapoint";
import {useTranslation} from "react-i18next";

View File

@ -1,6 +1,6 @@
import React from 'react';
import LoadIn from "../../components/animation/LoadIn";
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import {useParams} from "react-router-dom";
import {useDataRequest} from "../../hooks/dataFetchHook";
import {fetchPerformanceOverview} from "../../service/serverService";

View File

@ -3,7 +3,7 @@ import {useDataRequest} from "../../hooks/dataFetchHook";
import {useParams} from "react-router-dom";
import {fetchPlayers} from "../../service/serverService";
import ErrorView from "../ErrorView";
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import PlayerListCard from "../../components/cards/common/PlayerListCard";
import LoadIn from "../../components/animation/LoadIn";

View File

@ -1,7 +1,7 @@
import React, {useEffect} from 'react';
import Masonry from "masonry-layout";
import LoadIn from "../../components/animation/LoadIn";
import {Card, Col, Row} from "react-bootstrap-v5";
import {Card, Col, Row} from "react-bootstrap";
import ExtensionCard, {ExtensionCardWrapper} from "../../components/extensions/ExtensionCard";
import Loader from "../../components/navigation/Loader";
import {useTranslation} from "react-i18next";

View File

@ -1,6 +1,6 @@
import React from "react";
import PvpPveAsNumbersCard from "../../components/cards/server/tables/PvpPveAsNumbersCard";
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import PvpKillsTableCard from "../../components/cards/common/PvpKillsTableCard";
import PvpPveInsightsCard from "../../components/cards/server/insights/PvpPveInsightsCard";
import {useParams} from "react-router-dom";

View File

@ -1,4 +1,4 @@
import {Col, Row} from "react-bootstrap-v5";
import {Col, Row} from "react-bootstrap";
import React from "react";
import ServerWorldPieCard from "../../components/cards/server/graphs/ServerWorldPieCard";
import ServerRecentSessionsCard from "../../components/cards/server/tables/ServerRecentSessionsCard";

View File

@ -1,7 +1,7 @@
import React, {useEffect, useState} from 'react';
import ErrorView from "../ErrorView";
import LoadIn from "../../components/animation/LoadIn";
import {Card, Col, Row} from "react-bootstrap-v5";
import {Card, Col, Row} from "react-bootstrap";
import ExtensionCard from "../../components/extensions/ExtensionCard";
import {useParams} from "react-router-dom";
import {useTranslation} from "react-i18next";

View File

@ -1022,13 +1022,20 @@
core-js-pure "^3.20.2"
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.19.4", "@babel/runtime@^7.20.6", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.19.4", "@babel/runtime@^7.20.6", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
version "7.20.6"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3"
integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==
dependencies:
regenerator-runtime "^0.13.11"
"@babel/runtime@^7.17.2", "@babel/runtime@^7.20.7":
version "7.20.13"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b"
integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==
dependencies:
regenerator-runtime "^0.13.11"
"@babel/template@^7.16.7", "@babel/template@^7.3.3":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155"
@ -1520,28 +1527,45 @@
schema-utils "^3.0.0"
source-map "^0.7.3"
"@popperjs/core@^2.5.3":
version "2.11.5"
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64"
integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==
"@popperjs/core@^2.11.6":
version "2.11.6"
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45"
integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==
"@react-aria/ssr@^3.4.1":
version "3.4.1"
resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.4.1.tgz#79e8bb621487e8f52890c917d3c734f448ba95e7"
integrity sha512-NmhoilMDyIfQiOSdQgxpVH2tC2u85Y0mVijtBNbI9kcDYLEiW/r6vKYVKtkyU+C4qobXhGMPfZ70PTc0lysSVA==
dependencies:
"@swc/helpers" "^0.4.14"
"@remix-run/router@1.3.0":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.3.0.tgz#b6ee542c7f087b73b3d8215b9bf799f648be71cb"
integrity sha512-nwQoYb3m4DDpHTeOwpJEuDt8lWVcujhYYSFGLluC+9es2PyLjm+jjq3IeRBQbwBtPLJE/lkuHuGHr8uQLgmJRA==
"@restart/context@^2.1.4":
version "2.1.4"
resolved "https://registry.yarnpkg.com/@restart/context/-/context-2.1.4.tgz#a99d87c299a34c28bd85bb489cb07bfd23149c02"
integrity sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==
"@restart/hooks@^0.3.21", "@restart/hooks@^0.3.25":
version "0.3.27"
resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.3.27.tgz#91f356d66d4699a8cd8b3d008402708b6a9dc505"
integrity sha512-s984xV/EapUIfkjlf8wz9weP2O9TNKR96C68FfMEy2bE69+H4cNv3RD4Mf97lW7Htt7PjZrYTjSC8f3SB9VCXw==
"@restart/hooks@^0.4.6", "@restart/hooks@^0.4.7":
version "0.4.8"
resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.4.8.tgz#67ada92e36527956865ab9b1ddfb87d37aa1db42"
integrity sha512-Ivvp1FZ0Lja80iUTYAhbzy+stxwO7FbPHP95ypCtIh0wyOLiayQywXhVJ2ZYP5S1AjW2GmKHeRU4UglMwTG2sA==
dependencies:
dequal "^2.0.2"
"@restart/ui@^1.4.1":
version "1.5.4"
resolved "https://registry.yarnpkg.com/@restart/ui/-/ui-1.5.4.tgz#2537e1b7495f7ed4257dae3676c8d2b91e664e03"
integrity sha512-ziNtXY2PrjXrRUfR1D/ry1v1i5IF+kfMcH9d1kIcU2lOELfmDsVb+fzbyEDz3yKvKuqkphTunVDuLdYRJ0YsAg==
dependencies:
"@babel/runtime" "^7.20.7"
"@popperjs/core" "^2.11.6"
"@react-aria/ssr" "^3.4.1"
"@restart/hooks" "^0.4.7"
"@types/warning" "^3.0.0"
dequal "^2.0.3"
dom-helpers "^5.2.0"
uncontrollable "^7.2.1"
warning "^4.0.3"
"@rollup/plugin-babel@^5.2.0":
version "5.3.1"
resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283"
@ -1711,6 +1735,13 @@
"@svgr/plugin-svgo" "^5.5.0"
loader-utils "^2.0.0"
"@swc/helpers@^0.4.14":
version "0.4.14"
resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.14.tgz#1352ac6d95e3617ccb7c1498ff019654f1e12a74"
integrity sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==
dependencies:
tslib "^2.4.0"
"@testing-library/dom@^8.0.0":
version "8.13.0"
resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.13.0.tgz#bc00bdd64c7d8b40841e27a70211399ad3af46f5"
@ -1817,13 +1848,6 @@
dependencies:
"@types/node" "*"
"@types/classnames@^2.2.10":
version "2.3.1"
resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.3.1.tgz#3c2467aa0f1a93f1f021e3b9bcf938bd5dfdc0dd"
integrity sha512-zeOWb0JGBoVmlQoznvqXbE0tEC/HONsnoUNH19Hc96NFsTAwTXbTqb8FMYkru1F/iqp7a18Ws3nWJvtA1sHD1A==
dependencies:
classnames "*"
"@types/connect-history-api-fallback@^1.3.5":
version "1.3.5"
resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae"
@ -1926,11 +1950,6 @@
dependencies:
"@types/node" "*"
"@types/invariant@^2.2.33":
version "2.2.35"
resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.35.tgz#cd3ebf581a6557452735688d8daba6cf0bd5a3be"
integrity sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
version "2.0.4"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
@ -1988,7 +2007,7 @@
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.0.tgz#efcbd41937f9ae7434c714ab698604822d890759"
integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw==
"@types/prop-types@*", "@types/prop-types@^15.7.3":
"@types/prop-types@*":
version "15.7.5"
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
@ -2025,10 +2044,10 @@
hoist-non-react-statics "^3.3.0"
redux "^4.0.0"
"@types/react-transition-group@^4.4.0":
version "4.4.4"
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.4.tgz#acd4cceaa2be6b757db61ed7b432e103242d163e"
integrity sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==
"@types/react-transition-group@^4.4.4":
version "4.4.5"
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.5.tgz#aae20dcf773c5aa275d5b9f7cdbca638abc5e416"
integrity sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==
dependencies:
"@types/react" "*"
@ -2041,15 +2060,6 @@
"@types/scheduler" "*"
csstype "^3.0.2"
"@types/react@^16.9.35":
version "16.14.25"
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.25.tgz#d003f712c7563fdef5a87327f1892825af375608"
integrity sha512-cXRVHd7vBT5v1is72mmvmsg9stZrbJO04DJqFeh3Yj2tVKO6vmxg5BI+ybI6Ls7ROXRG3aFbZj9x0WA3ZAoDQw==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "*"
csstype "^3.0.2"
"@types/react@^17":
version "17.0.44"
resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7"
@ -3116,7 +3126,7 @@ cjs-module-lexer@^1.0.0:
resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40"
integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==
classnames@*, classnames@^2.2.6, classnames@^2.3.1:
classnames@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e"
integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==
@ -3712,6 +3722,11 @@ dequal@^2.0.2:
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d"
integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==
dequal@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
desandro-matches-selector@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/desandro-matches-selector/-/desandro-matches-selector-2.0.2.tgz#717beed4dc13e7d8f3762f707a6d58a6774218e1"
@ -3809,7 +3824,7 @@ dom-converter@^0.2.0:
dependencies:
utila "~0.4"
dom-helpers@^5.0.1, dom-helpers@^5.1.2, dom-helpers@^5.2.0:
dom-helpers@^5.0.1, dom-helpers@^5.2.0, dom-helpers@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902"
integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==
@ -7644,28 +7659,22 @@ react-app-polyfill@^3.0.0:
regenerator-runtime "^0.13.9"
whatwg-fetch "^3.6.2"
react-bootstrap-v5@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/react-bootstrap-v5/-/react-bootstrap-v5-1.4.0.tgz#be8694dc14000725065f58b909c4ea8f542e5711"
integrity sha512-AsPE19bacvLNXdTVqDLspM+K5SOa4XBgT6SFesUiC5JnYGqVmspIgYSgu8SwcSaiGgrkFtd9v9XLSqf0l9YvEA==
react-bootstrap@^2.7.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-2.7.0.tgz#4a8f0311bccac477dc925366763c536f46e4393b"
integrity sha512-Jcrn6aUuRVBeSB6dzKODKZU1TONOdhAxu0IDm4Sv74SJUm98dMdhSotF2SNvFEADANoR+stV+7TK6SNX1wWu5w==
dependencies:
"@babel/runtime" "^7.4.2"
"@restart/context" "^2.1.4"
"@restart/hooks" "^0.3.21"
"@types/classnames" "^2.2.10"
"@types/invariant" "^2.2.33"
"@types/prop-types" "^15.7.3"
"@types/react" "^16.9.35"
"@types/react-transition-group" "^4.4.0"
"@types/warning" "^3.0.0"
classnames "^2.2.6"
dom-helpers "^5.1.2"
"@babel/runtime" "^7.17.2"
"@restart/hooks" "^0.4.6"
"@restart/ui" "^1.4.1"
"@types/react-transition-group" "^4.4.4"
classnames "^2.3.1"
dom-helpers "^5.2.1"
invariant "^2.2.4"
prop-types "^15.7.2"
prop-types "^15.8.1"
prop-types-extra "^1.1.0"
react-overlays "^4.1.0"
react-transition-group "^4.4.1"
uncontrollable "^7.0.0"
react-transition-group "^4.4.2"
uncontrollable "^7.2.1"
warning "^4.0.3"
react-copy-to-clipboard@5.1.0:
@ -7714,7 +7723,7 @@ react-dev-utils@^12.0.1:
strip-ansi "^6.0.1"
text-table "^0.2.0"
react-dom@=17.0.2, react-dom@^17.0.2:
react-dom@=17.0.2:
version "17.0.2"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
@ -7723,6 +7732,14 @@ react-dom@=17.0.2, react-dom@^17.0.2:
object-assign "^4.1.1"
scheduler "^0.20.2"
react-dom@^18.2.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
dependencies:
loose-envify "^1.1.0"
scheduler "^0.23.0"
react-error-overlay@^6.0.11:
version "6.0.11"
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb"
@ -7773,20 +7790,6 @@ react-mcjsonchat@^1.0.0:
resolved "https://registry.yarnpkg.com/react-mcjsonchat/-/react-mcjsonchat-1.0.0.tgz#6a0c748b074c06a2d64a66db76e5fb2036c48a9a"
integrity sha512-H/OYi1iRYFG2Bntj1EYWfTxOaWtIopHy6ILoaXtD3OFONK7kQnp0lXFf6sw1G3BU0DL7s8NL4+AmMCer/A5eIQ==
react-overlays@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-4.1.1.tgz#0060107cbe1c5171a744ccda3fbf0556d064bc5f"
integrity sha512-WtJifh081e6M24KnvTQoNjQEpz7HoLxqt8TwZM7LOYIkYJ8i/Ly1Xi7RVte87ZVnmqQ4PFaFiNHZhSINPSpdBQ==
dependencies:
"@babel/runtime" "^7.12.1"
"@popperjs/core" "^2.5.3"
"@restart/hooks" "^0.3.25"
"@types/warning" "^3.0.0"
dom-helpers "^5.2.0"
prop-types "^15.7.2"
uncontrollable "^7.0.0"
warning "^4.0.3"
react-redux@^7.2.4:
version "7.2.8"
resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.8.tgz#a894068315e65de5b1b68899f9c6ee0923dd28de"
@ -7885,17 +7888,17 @@ react-syntax-highlighter@^15.5.0:
prismjs "^1.27.0"
refractor "^3.6.0"
react-transition-group@^4.4.1:
version "4.4.2"
resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470"
integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==
react-transition-group@^4.4.2:
version "4.4.5"
resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1"
integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==
dependencies:
"@babel/runtime" "^7.5.5"
dom-helpers "^5.0.1"
loose-envify "^1.4.0"
prop-types "^15.6.2"
react@=17.0.2, react@^17.0.2:
react@=17.0.2:
version "17.0.2"
resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
@ -7903,6 +7906,13 @@ react@=17.0.2, react@^17.0.2:
loose-envify "^1.1.0"
object-assign "^4.1.1"
react@^18.2.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
dependencies:
loose-envify "^1.1.0"
readable-stream@^2.0.1:
version "2.3.7"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
@ -8256,6 +8266,13 @@ scheduler@^0.20.2:
loose-envify "^1.1.0"
object-assign "^4.1.1"
scheduler@^0.23.0:
version "0.23.0"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
dependencies:
loose-envify "^1.1.0"
schema-utils@2.7.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7"
@ -9091,6 +9108,11 @@ tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
tslib@^2.4.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
tsutils@^3.21.0:
version "3.21.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
@ -9157,7 +9179,7 @@ unbox-primitive@^1.0.1:
has-symbols "^1.0.2"
which-boxed-primitive "^1.0.2"
uncontrollable@^7.0.0:
uncontrollable@^7.2.1:
version "7.2.1"
resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-7.2.1.tgz#1fa70ba0c57a14d5f78905d533cf63916dc75738"
integrity sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==