diff --git a/package-lock.json b/package-lock.json index 68a68ed..ac9b7a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ucentral-libs", - "version": "1.0.48", + "version": "1.0.54", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "ucentral-libs", - "version": "1.0.48", + "version": "1.0.54", "license": "BSD-3-Clause", "dependencies": { "@coreui/coreui": "^3.4.0", diff --git a/package.json b/package.json index cc00ab9..70fd02e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ucentral-libs", - "version": "1.0.48", + "version": "1.0.54", "main": "dist/index.js", "source": "src/index.js", "engines": { diff --git a/src/components/Dot/index.js b/src/components/Dot/index.js new file mode 100644 index 0000000..cfa41ca --- /dev/null +++ b/src/components/Dot/index.js @@ -0,0 +1,16 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import styles from './index.module.scss'; + +const Dot = ({ className }) => ; + +Dot.propTypes = { + className: PropTypes.string, +}; + +Dot.defaultProps = { + className: '', +}; + +export default Dot; diff --git a/src/components/Dot/index.module.scss b/src/components/Dot/index.module.scss new file mode 100644 index 0000000..bcfd598 --- /dev/null +++ b/src/components/Dot/index.module.scss @@ -0,0 +1,7 @@ +.dot { + height: 1rem; + width: 1rem; + border-radius: 50%; + display: inline-block; + vertical-align: middle; +} diff --git a/src/components/Modal/index.js b/src/components/Modal/index.js index 25fb08a..f56325a 100644 --- a/src/components/Modal/index.js +++ b/src/components/Modal/index.js @@ -24,7 +24,7 @@ Modal.propTypes = { }; Modal.defaultProps = { - size: 'md', + size: '', headerButtons: null, children: null, footer: null, diff --git a/src/index.js b/src/index.js index 13c2df3..3d8ab76 100644 --- a/src/index.js +++ b/src/index.js @@ -3,6 +3,9 @@ export { default as COLOR_LIST } from './constants/colors'; export { default as COUNTRY_LIST } from './constants/countryList'; export { default as SELECT_STYLES } from './constants/selectStyles'; +// Utils +export { numberToCompact } from './utils/formatting'; + // Layout export { default as Footer } from './layout/Footer'; export { default as Header } from './layout/Header'; @@ -10,6 +13,7 @@ export { default as PageContainer } from './layout/PageContainer'; export { default as Sidebar } from './layout/Sidebar'; // General use components +export { default as Dot } from './components/Dot'; export { default as Modal } from './components/Modal'; // Specific-task components @@ -30,6 +34,7 @@ export { default as ConfirmFooter } from './components/ConfirmFooter'; export { default as ConfirmStopEditingButton } from './components/ConfirmStopEditingButton'; export { default as CopyToClipboardButton } from './components/CopyToClipboardButton'; export { default as DetailedNotesTable } from './components/DetailedNotesTable'; +export { default as DeleteModal } from './components/DeleteModal'; export { default as DeviceBadge } from './components/DeviceBadge'; export { default as DeviceSearchBar } from './components/DeviceSearchBar'; export { default as FileToStringButton } from './components/FileToStringButton'; diff --git a/src/layout/Header/index.js b/src/layout/Header/index.js index 300db8e..bf3f494 100644 --- a/src/layout/Header/index.js +++ b/src/layout/Header/index.js @@ -83,6 +83,9 @@ const Header = ({ '/myprofile'}>
{t('user.my_profile')}
+ '/preferences'}> +
{t('common.preferences')}
+
logout(authToken, endpoints.owsec)}> {t('common.logout')} diff --git a/src/layout/Sidebar/index.js b/src/layout/Sidebar/index.js index f3fe95e..33f523c 100644 --- a/src/layout/Sidebar/index.js +++ b/src/layout/Sidebar/index.js @@ -1,15 +1,5 @@ import React from 'react'; -import { - CCreateElement, - CSidebar, - CSidebarBrand, - CSidebarNav, - CSidebarNavDivider, - CSidebarNavTitle, - CSidebarMinimizer, - CSidebarNavDropdown, - CSidebarNavItem, -} from '@coreui/react'; +import { CSidebar, CSidebarBrand, CSidebarNav } from '@coreui/react'; import PropTypes from 'prop-types'; import styles from './index.module.scss'; @@ -37,18 +27,7 @@ const Sidebar = ({ alt="OpenWifi" /> - - - - + {options} ); @@ -56,7 +35,7 @@ Sidebar.propTypes = { showSidebar: PropTypes.string.isRequired, setShowSidebar: PropTypes.func.isRequired, logo: PropTypes.string.isRequired, - options: PropTypes.arrayOf(Object).isRequired, + options: PropTypes.node.isRequired, redirectTo: PropTypes.string.isRequired, logoHeight: PropTypes.string, logoWidth: PropTypes.string, diff --git a/src/pages/UserListPage/Table.js b/src/pages/UserListPage/Table.js index 9b5d195..a1a1d09 100644 --- a/src/pages/UserListPage/Table.js +++ b/src/pages/UserListPage/Table.js @@ -73,7 +73,7 @@ const UserListTable = ({
- {t('user.users')} + {t('user.table_title')}
diff --git a/src/utils/formatting.js b/src/utils/formatting.js index b1400d1..a40376a 100644 --- a/src/utils/formatting.js +++ b/src/utils/formatting.js @@ -148,3 +148,21 @@ export const testRegex = (value, regexString) => { const regex = new RegExp(regexString); return regex.test(value); }; + +export const numberToCompact = (num, digits) => { + const lookup = [ + { value: 1, symbol: '' }, + { value: 1e3, symbol: 'k' }, + { value: 1e6, symbol: 'M' }, + { value: 1e9, symbol: 'G' }, + { value: 1e12, symbol: 'T' }, + { value: 1e15, symbol: 'P' }, + { value: 1e18, symbol: 'E' }, + ]; + const rx = /\.0+$|(\.[0-9]*[1-9])0+$/; + const item = lookup + .slice() + .reverse() + .find((i) => num >= i.value); + return item ? (num / item.value).toFixed(digits).replace(rx, '$1') + item.symbol : '0'; +};