Now using contexts from ucentral-libs

This commit is contained in:
BourqueCharles
2021-08-06 10:08:13 -04:00
parent 9001214462
commit c6b77aecb9
40 changed files with 54 additions and 207 deletions

18
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "ucentral-client",
"version": "2.0.6",
"version": "2.0.7",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "ucentral-client",
"version": "2.0.6",
"version": "2.0.7",
"dependencies": {
"@coreui/coreui": "^3.4.0",
"@coreui/icons": "^2.0.1",
@@ -29,7 +29,7 @@
"react-tooltip": "^4.2.21",
"react-widgets": "^5.1.1",
"sass": "^1.35.1",
"ucentral-libs": "^0.8.46",
"ucentral-libs": "^0.8.47",
"uuid": "^8.3.2"
},
"devDependencies": {
@@ -14311,9 +14311,9 @@
}
},
"node_modules/ucentral-libs": {
"version": "0.8.46",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-0.8.46.tgz",
"integrity": "sha512-mNveenbZFxnOz3yqepXV5y/jXPKr1hxUhSwC1iqie/bI6xj40vPg5zdD+8lmEEdayFoAGXb9bZbSyjYSUKw3Sg==",
"version": "0.8.47",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-0.8.47.tgz",
"integrity": "sha512-aDPTTJlRwN4RMI8LYUEZxNxM4XseNNHjYZ53/qajR/XohX0H3npm5Vaa5g/lCWhVgCIuJ1581VzJVCD+quXMdA==",
"engines": {
"node": ">=10"
},
@@ -26634,9 +26634,9 @@
}
},
"ucentral-libs": {
"version": "0.8.46",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-0.8.46.tgz",
"integrity": "sha512-mNveenbZFxnOz3yqepXV5y/jXPKr1hxUhSwC1iqie/bI6xj40vPg5zdD+8lmEEdayFoAGXb9bZbSyjYSUKw3Sg==",
"version": "0.8.47",
"resolved": "https://registry.npmjs.org/ucentral-libs/-/ucentral-libs-0.8.47.tgz",
"integrity": "sha512-aDPTTJlRwN4RMI8LYUEZxNxM4XseNNHjYZ53/qajR/XohX0H3npm5Vaa5g/lCWhVgCIuJ1581VzJVCD+quXMdA==",
"requires": {}
},
"unbox-primitive": {

View File

@@ -1,6 +1,6 @@
{
"name": "ucentral-client",
"version": "2.0.6",
"version": "2.0.7",
"dependencies": {
"@coreui/coreui": "^3.4.0",
"@coreui/icons": "^2.0.1",
@@ -23,7 +23,7 @@
"react-tooltip": "^4.2.21",
"react-widgets": "^5.1.1",
"sass": "^1.35.1",
"ucentral-libs": "^0.8.46",
"ucentral-libs": "^0.8.47",
"uuid": "^8.3.2"
},
"main": "index.js",

View File

@@ -2,8 +2,9 @@ import React from 'react';
import { HashRouter, Switch } from 'react-router-dom';
import 'scss/style.scss';
import Router from 'router';
import { AuthProvider } from 'contexts/AuthProvider';
import { AuthProvider } from 'ucentral-libs';
import { checkIfJson } from 'utils/helper';
import axiosInstance from 'utils/axiosInstance';
const loading = (
<div className="pt-3 text-center">
@@ -18,7 +19,11 @@ const App = () => {
: {};
return (
<AuthProvider token={storageToken ?? ''} apiEndpoints={apiEndpoints}>
<AuthProvider
axiosInstance={axiosInstance}
token={storageToken ?? ''}
apiEndpoints={apiEndpoints}
>
<HashRouter>
<React.Suspense fallback={loading}>
<Switch>

View File

@@ -18,12 +18,10 @@ import DatePicker from 'react-widgets/DatePicker';
import PropTypes from 'prop-types';
import { dateToUnix } from 'utils/helper';
import 'react-widgets/styles.css';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import axiosInstance from 'utils/axiosInstance';
import eventBus from 'utils/eventBus';
import SuccessfulActionModalBody from 'components/SuccessfulActionModalBody';
import { LoadingButton } from 'ucentral-libs';
import { LoadingButton, useAuth, useDevice } from 'ucentral-libs';
import styles from './index.module.scss';

View File

@@ -16,11 +16,9 @@ import DatePicker from 'react-widgets/DatePicker';
import { cilCloudDownload, cilSync, cilCalendarCheck } from '@coreui/icons';
import { prettyDate, dateToUnix } from 'utils/helper';
import axiosInstance from 'utils/axiosInstance';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import eventBus from 'utils/eventBus';
import ConfirmModal from 'components/ConfirmModal';
import { LoadingButton } from 'ucentral-libs';
import { LoadingButton, useAuth, useDevice } from 'ucentral-libs';
import WifiScanResultModalWidget from 'components/WifiScanResultModal';
import DeviceCommandsCollapse from './DeviceCommandsCollapse';
import styles from './index.module.scss';

View File

@@ -17,8 +17,7 @@ import React, { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import PropTypes from 'prop-types';
import 'react-widgets/styles.css';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import { useAuth, useDevice } from 'ucentral-libs';
import { checkIfJson } from 'utils/helper';
import axiosInstance from 'utils/axiosInstance';
import eventBus from 'utils/eventBus';

View File

@@ -10,9 +10,8 @@ import {
CModalBody,
CToastHeader,
} from '@coreui/react';
import { CreateUserForm, useFormFields } from 'ucentral-libs';
import { CreateUserForm, useFormFields, useAuth } from 'ucentral-libs';
import axiosInstance from 'utils/axiosInstance';
import { useAuth } from 'contexts/AuthProvider';
import { testRegex, validateEmail } from 'utils/helper';
const initialState = {

View File

@@ -3,11 +3,9 @@ import { useTranslation } from 'react-i18next';
import { CModal, CModalHeader, CModalTitle, CModalBody, CCol, CRow } from '@coreui/react';
import DatePicker from 'react-widgets/DatePicker';
import PropTypes from 'prop-types';
import { ConfirmFooter } from 'ucentral-libs';
import { ConfirmFooter, useAuth, useDevice } from 'ucentral-libs';
import { dateToUnix } from 'utils/helper';
import axiosInstance from 'utils/axiosInstance';
import { useDevice } from 'contexts/DeviceProvider';
import { useAuth } from 'contexts/AuthProvider';
import eventBus from 'utils/eventBus';
import styles from './index.module.scss';

View File

@@ -13,9 +13,7 @@ import {
CToastHeader,
} from '@coreui/react';
import axiosInstance from 'utils/axiosInstance';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import { LoadingButton } from 'ucentral-libs';
import { LoadingButton, useAuth, useDevice } from 'ucentral-libs';
import RebootModal from 'components/RebootModal';
import DeviceFirmwareModal from 'components/DeviceFirmwareModal';
import ConfigureModal from 'components/ConfigureModal';

View File

@@ -16,9 +16,7 @@ import CIcon from '@coreui/icons-react';
import { cilWindowMaximize } from '@coreui/icons';
import { prettyDate } from 'utils/helper';
import axiosInstance from 'utils/axiosInstance';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import { CopyToClipboardButton, NotesTable } from 'ucentral-libs';
import { CopyToClipboardButton, NotesTable, useAuth, useDevice } from 'ucentral-libs';
import DeviceConfigurationModal from './DeviceConfigurationModal';
import styles from './index.module.scss';

View File

@@ -1,8 +1,7 @@
import React, { useState, useEffect } from 'react';
import PropTypes from 'prop-types';
import { DeviceFirmwareModal as Modal } from 'ucentral-libs';
import { DeviceFirmwareModal as Modal, useAuth } from 'ucentral-libs';
import axiosInstance from 'utils/axiosInstance';
import { useAuth } from 'contexts/AuthProvider';
import { useTranslation } from 'react-i18next';
const DeviceFirmwareModal = ({

View File

@@ -16,11 +16,9 @@ import CIcon from '@coreui/icons-react';
import { useTranslation } from 'react-i18next';
import DatePicker from 'react-widgets/DatePicker';
import { prettyDate, dateToUnix } from 'utils/helper';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import axiosInstance from 'utils/axiosInstance';
import eventBus from 'utils/eventBus';
import { LoadingButton } from 'ucentral-libs';
import { LoadingButton, useAuth, useDevice } from 'ucentral-libs';
import DeleteLogModal from 'components/DeleteLogModal';
import styles from './index.module.scss';

View File

@@ -2,12 +2,11 @@ import React, { useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { useHistory, useLocation } from 'react-router-dom';
import { CToast, CToastBody, CToaster, CToastHeader } from '@coreui/react';
import { useAuth } from 'contexts/AuthProvider';
import axiosInstance from 'utils/axiosInstance';
import { getItem, setItem } from 'utils/localStorageHelper';
import DeviceFirmwareModal from 'components/DeviceFirmwareModal';
import FirmwareHistoryModal from 'components/FirmwareHistoryModal';
import { DeviceListTable } from 'ucentral-libs';
import { DeviceListTable, useAuth } from 'ucentral-libs';
import meshIcon from '../../assets/icons/Mesh.png';
import apIcon from '../../assets/icons/AP.png';
import internetSwitch from '../../assets/icons/Switch.png';

View File

@@ -16,10 +16,8 @@ import { useTranslation } from 'react-i18next';
import DatePicker from 'react-widgets/DatePicker';
import { prettyDate, dateToUnix } from 'utils/helper';
import axiosInstance from 'utils/axiosInstance';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import eventBus from 'utils/eventBus';
import { LoadingButton } from 'ucentral-libs';
import { LoadingButton, useAuth, useDevice } from 'ucentral-libs';
import DeleteLogModal from 'components/DeleteLogModal';
import styles from './index.module.scss';

View File

@@ -3,9 +3,8 @@ import { useTranslation } from 'react-i18next';
import { CDataTable, CRow, CCol, CLabel, CInput } from '@coreui/react';
import PropTypes from 'prop-types';
import axiosInstance from 'utils/axiosInstance';
import { useAuth } from 'contexts/AuthProvider';
import { prettyDate } from 'utils/helper';
import { LoadingButton } from 'ucentral-libs';
import { LoadingButton, useAuth } from 'ucentral-libs';
import styles from './index.module.scss';

View File

@@ -13,8 +13,7 @@ import {
CSpinner,
} from '@coreui/react';
import CIcon from '@coreui/icons-react';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import { useDevice, useAuth } from 'ucentral-libs';
import { cilSync } from '@coreui/icons';
import { useTranslation } from 'react-i18next';
import axiosInstance from 'utils/axiosInstance';

View File

@@ -2,8 +2,7 @@ import React, { useEffect, useState } from 'react';
import PropTypes from 'prop-types';
import { useTranslation } from 'react-i18next';
import axiosInstance from 'utils/axiosInstance';
import { useAuth } from 'contexts/AuthProvider';
import { useUser, EditUserModal as Modal } from 'ucentral-libs';
import { useUser, EditUserModal as Modal, useAuth } from 'ucentral-libs';
import { CCol, CRow, CToaster, CToast, CToastBody, CToastHeader } from '@coreui/react';
const initialState = {

View File

@@ -15,8 +15,7 @@ import React, { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import PropTypes from 'prop-types';
import 'react-widgets/styles.css';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import { useAuth, useDevice } from 'ucentral-libs';
import axiosInstance from 'utils/axiosInstance';
import SuccessfulActionModalBody from 'components/SuccessfulActionModalBody';
import styles from './index.module.scss';

View File

@@ -1,6 +1,5 @@
import React, { useState, useEffect } from 'react';
import PropTypes from 'prop-types';
import { useAuth } from 'contexts/AuthProvider';
import { useTranslation } from 'react-i18next';
import axiosInstance from 'utils/axiosInstance';
import {
@@ -11,7 +10,7 @@ import {
CModalFooter,
CModalTitle,
} from '@coreui/react';
import { FirmwareHistoryTable } from 'ucentral-libs';
import { FirmwareHistoryTable, useAuth } from 'ucentral-libs';
const FirmwareHistoryModal = ({ serialNumber, show, toggle }) => {
const { t } = useTranslation();

View File

@@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next';
import PropTypes from 'prop-types';
import { CModalBody } from '@coreui/react';
import { v4 as createUuid } from 'uuid';
import { useAuth } from 'contexts/AuthProvider';
import { useAuth } from 'ucentral-libs';
import axiosInstance from 'utils/axiosInstance';
const UpgradeWaitingBody = ({ serialNumber }) => {

View File

@@ -17,8 +17,7 @@ import DatePicker from 'react-widgets/DatePicker';
import PropTypes from 'prop-types';
import { dateToUnix } from 'utils/helper';
import 'react-widgets/styles.css';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import { useDevice, useAuth } from 'ucentral-libs';
import axiosInstance from 'utils/axiosInstance';
import eventBus from 'utils/eventBus';
import getDeviceConnection from 'utils/deviceHelper';

View File

@@ -10,8 +10,7 @@ import {
import PropTypes from 'prop-types';
import { useTranslation } from 'react-i18next';
import axiosInstance from 'utils/axiosInstance';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import { useAuth, useDevice } from 'ucentral-libs';
import styles from './index.module.scss';
const LatestStatisticsModal = ({ show, toggle }) => {

View File

@@ -2,8 +2,7 @@ import React, { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import { v4 as createUuid } from 'uuid';
import axiosInstance from 'utils/axiosInstance';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import { useAuth, useDevice } from 'ucentral-libs';
import { unixToTime, capitalizeFirstLetter } from 'utils/helper';
import eventBus from 'utils/eventBus';
import DeviceStatisticsChart from './DeviceStatisticsChart';

View File

@@ -15,11 +15,9 @@ import DatePicker from 'react-widgets/DatePicker';
import PropTypes from 'prop-types';
import { dateToUnix } from 'utils/helper';
import 'react-widgets/styles.css';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import axiosInstance from 'utils/axiosInstance';
import eventBus from 'utils/eventBus';
import { LoadingButton } from 'ucentral-libs';
import { LoadingButton, useAuth, useDevice } from 'ucentral-libs';
import SuccessfulActionModalBody from 'components/SuccessfulActionModalBody';
import styles from './index.module.scss';

View File

@@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import PropTypes from 'prop-types';
import { CModalBody, CButton, CSpinner, CModalFooter } from '@coreui/react';
import { useAuth } from 'contexts/AuthProvider';
import { useAuth } from 'ucentral-libs';
import axiosInstance from 'utils/axiosInstance';
import styles from './index.module.scss';

View File

@@ -18,12 +18,10 @@ import React, { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import PropTypes from 'prop-types';
import 'react-widgets/styles.css';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import axiosInstance from 'utils/axiosInstance';
import eventBus from 'utils/eventBus';
import getDeviceConnection from 'utils/deviceHelper';
import { LoadingButton } from 'ucentral-libs';
import { LoadingButton, useAuth, useDevice } from 'ucentral-libs';
import SuccessfulActionModalBody from 'components/SuccessfulActionModalBody';
import WaitingForTraceBody from './WaitingForTraceBody';
import styles from './index.module.scss';

View File

@@ -14,11 +14,9 @@ import {
import React, { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import PropTypes from 'prop-types';
import { useAuth } from 'contexts/AuthProvider';
import { useDevice } from 'contexts/DeviceProvider';
import axiosInstance from 'utils/axiosInstance';
import eventBus from 'utils/eventBus';
import { LoadingButton } from 'ucentral-libs';
import { LoadingButton, useAuth, useDevice } from 'ucentral-libs';
import WifiChannelTable from 'components/WifiScanResultModal/WifiChannelTable';
import 'react-widgets/styles.css';
import styles from './index.module.scss';

View File

@@ -1,96 +0,0 @@
import React, { useState, useEffect } from 'react';
import PropTypes from 'prop-types';
import axiosInstance from 'utils/axiosInstance';
const AuthContext = React.createContext();
export const AuthProvider = ({ token, apiEndpoints, children }) => {
const [currentToken, setCurrentToken] = useState(token);
const [endpoints, setEndpoints] = useState(apiEndpoints);
const [avatar, setAvatar] = useState('');
const [user, setUser] = useState({
avatar: '',
});
const getAvatar = (newUserId) => {
const options = {
headers: {
Accept: 'application/json',
Authorization: `Bearer ${currentToken}`,
},
responseType: 'arraybuffer',
};
axiosInstance
.get(
`${endpoints.ucentralsec}/api/v1/avatar/${
newUserId ?? user.Id
}?timestamp=${new Date().getTime()}`,
options,
)
.then((response) => {
const base64 = btoa(
new Uint8Array(response.data).reduce(
(data, byte) => data + String.fromCharCode(byte),
'',
),
);
setAvatar(`data:;base64,${base64}`);
})
.catch(() => {});
};
const getUser = () => {
const options = {
headers: {
Accept: 'application/json',
Authorization: `Bearer ${currentToken}`,
},
};
axiosInstance
.get(`${endpoints.ucentralsec}/api/v1/oauth2?me=true`, options)
.then((response) => {
setUser(response.data);
if (response.data.Id && response.data.Id.length > 0) {
getAvatar(response.data.Id);
}
})
.catch(() => {});
};
useEffect(() => {
if (currentToken.length > 0 && endpoints?.ucentralsec?.length > 0) {
getUser();
}
}, [currentToken]);
return (
<AuthContext.Provider
value={{
currentToken,
setCurrentToken,
endpoints,
setEndpoints,
user,
setUser,
avatar,
getAvatar,
}}
>
{children}
</AuthContext.Provider>
);
};
AuthProvider.propTypes = {
token: PropTypes.string.isRequired,
children: PropTypes.node.isRequired,
apiEndpoints: PropTypes.instanceOf(Object),
};
AuthProvider.defaultProps = {
apiEndpoints: {},
};
export const useAuth = () => React.useContext(AuthContext);

View File

@@ -1,21 +0,0 @@
import React, { useState } from 'react';
import PropTypes from 'prop-types';
const DeviceContext = React.createContext();
export const DeviceProvider = ({ serialNumber, children }) => {
const [deviceSerialNumber, setDeviceSerialNumber] = useState(serialNumber);
return (
<DeviceContext.Provider value={{ deviceSerialNumber, setDeviceSerialNumber }}>
{children}
</DeviceContext.Provider>
);
};
DeviceProvider.propTypes = {
serialNumber: PropTypes.string.isRequired,
children: PropTypes.node.isRequired,
};
export const useDevice = () => React.useContext(DeviceContext);

View File

@@ -2,8 +2,7 @@ import React, { useState } from 'react';
import { useTranslation } from 'react-i18next';
import { logout } from 'utils/authHelper';
import routes from 'routes';
import { useAuth } from 'contexts/AuthProvider';
import { Header, Sidebar, Footer, PageContainer } from 'ucentral-libs';
import { Header, Sidebar, Footer, PageContainer, useAuth } from 'ucentral-libs';
const TheLayout = () => {
const [showSidebar, setShowSidebar] = useState('responsive');
@@ -89,7 +88,7 @@ const TheLayout = () => {
<div className="c-body">
<PageContainer t={t} routes={routes} redirectTo="/devices" />
</div>
<Footer t={t} version="2.0.6" />
<Footer t={t} version="2.0.7" />
</div>
</div>
);

View File

@@ -1,7 +1,6 @@
import React, { useState, useEffect } from 'react';
import { useAuth } from 'contexts/AuthProvider';
import { useTranslation } from 'react-i18next';
import { DeviceDashboard as Dashboard } from 'ucentral-libs';
import { DeviceDashboard as Dashboard, useAuth } from 'ucentral-libs';
import axiosInstance from 'utils/axiosInstance';
import colors from 'utils/colors';

View File

@@ -8,7 +8,7 @@ import DeviceLogs from 'components/DeviceLogs';
import DeviceStatisticsCard from 'components/InterfaceStatistics';
import DeviceActionCard from 'components/DeviceActionCard';
import DeviceStatusCard from 'components/DeviceStatusCard';
import { DeviceProvider } from 'contexts/DeviceProvider';
import { DeviceProvider } from 'ucentral-libs';
const DevicePage = () => {
const { deviceId } = useParams();

View File

@@ -1,7 +1,6 @@
import React, { useState, useEffect } from 'react';
import { useAuth } from 'contexts/AuthProvider';
import { useTranslation } from 'react-i18next';
import { FirmwareDashboard as Dashboard } from 'ucentral-libs';
import { FirmwareDashboard as Dashboard, useAuth } from 'ucentral-libs';
import axiosInstance from 'utils/axiosInstance';
import colors from 'utils/colors';

View File

@@ -2,8 +2,7 @@ import React, { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import { CToast, CToastBody, CToaster, CToastHeader } from '@coreui/react';
import axiosInstance from 'utils/axiosInstance';
import { useAuth } from 'contexts/AuthProvider';
import { FirmwareList } from 'ucentral-libs';
import { FirmwareList, useAuth } from 'ucentral-libs';
const FirmwareListPage = () => {
const { t } = useTranslation();

View File

@@ -1,8 +1,7 @@
import React, { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import * as axios from 'axios';
import { LoginPage, useFormFields } from 'ucentral-libs';
import { useAuth } from 'contexts/AuthProvider';
import { LoginPage, useFormFields, useAuth } from 'ucentral-libs';
const initialFormState = {
username: {

View File

@@ -3,8 +3,7 @@ import { useTranslation } from 'react-i18next';
import { CCard, CCardBody, CToast, CToastBody, CToaster, CToastHeader } from '@coreui/react';
import axiosInstance from 'utils/axiosInstance';
import { testRegex } from 'utils/helper';
import { useAuth } from 'contexts/AuthProvider';
import { useUser, EditMyProfile } from 'ucentral-libs';
import { useUser, EditMyProfile, useAuth } from 'ucentral-libs';
const initialState = {
Id: {

View File

@@ -1,7 +1,6 @@
import React, { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import { ApiStatusCard } from 'ucentral-libs';
import { useAuth } from 'contexts/AuthProvider';
import { ApiStatusCard, useAuth } from 'ucentral-libs';
import axiosInstance from 'utils/axiosInstance';
import { CRow, CCol } from '@coreui/react';
import { prettyDate, secondsToDetailed } from 'utils/helper';

View File

@@ -1,10 +1,9 @@
import React, { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import { CToast, CToastBody, CToaster, CToastHeader } from '@coreui/react';
import { UserListTable } from 'ucentral-libs';
import { UserListTable, useAuth } from 'ucentral-libs';
import axiosInstance from 'utils/axiosInstance';
import { getItem, setItem } from 'utils/localStorageHelper';
import { useAuth } from 'contexts/AuthProvider';
import CreateUserModal from 'components/CreateUserModal';
import EditUserModal from 'components/EditUserModal';

View File

@@ -1,8 +1,7 @@
import React, { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import { useParams } from 'react-router-dom';
import { WifiAnalysisTable, RadioAnalysisTable } from 'ucentral-libs';
import { useAuth } from 'contexts/AuthProvider';
import { WifiAnalysisTable, RadioAnalysisTable, useAuth } from 'ucentral-libs';
import axiosInstance from 'utils/axiosInstance';
import { cleanBytesString, prettyDate, compactSecondsToDetailed } from 'utils/helper';
import { CCard, CCardBody, CCardHeader, CCol, CRow } from '@coreui/react';

View File

@@ -1,4 +1,4 @@
import { useAuth } from 'contexts/AuthProvider';
import { useAuth } from 'ucentral-libs';
import { Route } from 'react-router-dom';
import React from 'react';