diff --git a/new-lamassu-admin/package-lock.json b/new-lamassu-admin/package-lock.json
index cf9f71e2..bdc74ca3 100644
--- a/new-lamassu-admin/package-lock.json
+++ b/new-lamassu-admin/package-lock.json
@@ -4737,7 +4737,8 @@
"asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
+ "dev": true
},
"asn1": {
"version": "0.2.4",
@@ -7705,6 +7706,7 @@
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.3.tgz",
"integrity": "sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==",
+ "dev": true,
"requires": {
"fbjs": "^0.8.0",
"gud": "^1.0.0"
@@ -8800,6 +8802,7 @@
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
+ "dev": true,
"requires": {
"iconv-lite": "~0.4.13"
}
@@ -10278,6 +10281,7 @@
"version": "0.8.17",
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
"integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
+ "dev": true,
"requires": {
"core-js": "^1.0.0",
"isomorphic-fetch": "^2.1.1",
@@ -10291,12 +10295,14 @@
"core-js": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
- "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+ "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=",
+ "dev": true
},
"promise": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "dev": true,
"requires": {
"asap": "~2.0.3"
}
@@ -10618,17 +10624,16 @@
"dev": true
},
"formik": {
- "version": "1.5.8",
- "resolved": "https://registry.npmjs.org/formik/-/formik-1.5.8.tgz",
- "integrity": "sha512-fNvPe+ddbh+7xiByT25vuso2p2hseG/Yvuj211fV1DbCjljUEG9OpgRpcb7g7O3kxHX/q31cbZDzMxJXPWSNwA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/formik/-/formik-2.0.3.tgz",
+ "integrity": "sha512-kYBvcxlsYSncY8OiJHD49C0UmoWXbgmIc9V1g3N1WwBJ7SMLk34QpcJDgroYd42K1cH+mSJlXhB7PlgTXTzlWg==",
"requires": {
- "create-react-context": "^0.2.2",
"deepmerge": "^2.1.1",
"hoist-non-react-statics": "^3.3.0",
"lodash": "^4.17.14",
"lodash-es": "^4.17.14",
- "prop-types": "^15.6.1",
"react-fast-compare": "^2.0.1",
+ "scheduler": "^0.14.0",
"tiny-warning": "^1.0.2",
"tslib": "^1.9.3"
},
@@ -10637,6 +10642,15 @@
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz",
"integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA=="
+ },
+ "scheduler": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.14.0.tgz",
+ "integrity": "sha512-9CgbS06Kki2f4R9FjLSITjZo5BZxPsryiRNyL3LpvrM9WxcVmhlqAOc9E+KQbeI2nqej4JIIbOsfdL51cNb4Iw==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
}
}
},
@@ -11476,6 +11490,7 @@
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
@@ -11975,7 +11990,8 @@
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
},
"is-svg": {
"version": "3.0.0",
@@ -12041,6 +12057,7 @@
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
+ "dev": true,
"requires": {
"node-fetch": "^1.0.1",
"whatwg-fetch": ">=0.10.0"
@@ -14856,6 +14873,7 @@
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
"integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
+ "dev": true,
"requires": {
"encoding": "^0.1.11",
"is-stream": "^1.0.1"
@@ -19994,7 +20012,8 @@
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
},
"sane": {
"version": "4.1.0",
@@ -20318,7 +20337,8 @@
"setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+ "dev": true
},
"setprototypeof": {
"version": "1.1.1",
@@ -22019,7 +22039,8 @@
"ua-parser-js": {
"version": "0.7.20",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.20.tgz",
- "integrity": "sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw=="
+ "integrity": "sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw==",
+ "dev": true
},
"uglify-js": {
"version": "3.4.9",
@@ -22849,7 +22870,8 @@
"whatwg-fetch": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz",
- "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q=="
+ "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==",
+ "dev": true
},
"whatwg-mimetype": {
"version": "2.3.0",
diff --git a/new-lamassu-admin/package.json b/new-lamassu-admin/package.json
index 6324bb0d..813a6ba2 100644
--- a/new-lamassu-admin/package.json
+++ b/new-lamassu-admin/package.json
@@ -11,7 +11,7 @@
"classnames": "2.2.6",
"downshift": "3.3.4",
"file-saver": "2.0.2",
- "formik": "1.5.8",
+ "formik": "2.0.3",
"jss-plugin-extend": "^10.0.0",
"lodash": "4.17.15",
"moment": "2.24.0",
diff --git a/new-lamassu-admin/src/components/Header.js b/new-lamassu-admin/src/components/Header.js
index 6245bc3c..c6855ecf 100644
--- a/new-lamassu-admin/src/components/Header.js
+++ b/new-lamassu-admin/src/components/Header.js
@@ -62,7 +62,9 @@ const Header = memo(({ tree }) => {
className={classnames(classes.link, classes.whiteLink)}
activeClassName={classes.activeLink}
>
- {it.label}
+
+ {it.label}
+
))}
diff --git a/new-lamassu-admin/src/components/Header.styles.js b/new-lamassu-admin/src/components/Header.styles.js
index ea3e2939..5bcac0e8 100644
--- a/new-lamassu-admin/src/components/Header.styles.js
+++ b/new-lamassu-admin/src/components/Header.styles.js
@@ -11,10 +11,10 @@ import {
import typographyStyles from './typography/styles'
-const { tl2 } = typographyStyles
+const { tl2, p } = typographyStyles
let headerHeight = spacer * 7
-let subheaderHeight = spacer * 6
+let subheaderHeight = spacer * 5
if (version === 8) {
headerHeight = spacer * 8
@@ -51,11 +51,15 @@ export default {
padding: `0 ${spacer * 2.5}px`
},
link: {
- extend: tl2,
+ extend: p,
textDecoration: 'none',
border: 'none',
color: white,
backgroundColor: 'transparent',
+ '&:hover': {
+ extend: tl2,
+ color: white
+ },
'&:hover::after': {
width: '50%',
marginLeft: '-25%'
@@ -75,7 +79,21 @@ export default {
transition: 'all 0.2s cubic-bezier(0.95, 0.1, 0.45, 0.94)'
}
},
+ forceSize: {
+ display: 'inline-block',
+ textAlign: 'center',
+ '&:after': {
+ display: 'block',
+ content: 'attr(forcesize)',
+ fontWeight: 700,
+ height: 0,
+ overflow: 'hidden',
+ visibility: 'hidden'
+ }
+ },
activeLink: {
+ extend: tl2,
+ color: white,
'&::after': {
width: '50%',
marginLeft: '-25%'
diff --git a/new-lamassu-admin/src/components/Sidebar.js b/new-lamassu-admin/src/components/Sidebar.js
index 39c6a0b8..6ca857d4 100644
--- a/new-lamassu-admin/src/components/Sidebar.js
+++ b/new-lamassu-admin/src/components/Sidebar.js
@@ -6,19 +6,25 @@ import styles from './Sidebar.styles'
const useStyles = makeStyles(styles)
-const Logs = ({ data, displayName, isSelected, onClick, children }) => {
+const Logs = ({ data, displayName, isSelected, onClick, children, itemRender }) => {
const classes = useStyles()
+
return (
{data &&
data.map((it, idx) => (
-
onClick(it)}
>
- {displayName(it)}
-
+ {itemRender ? itemRender(it) : displayName(it)}
+
))}
{children}
diff --git a/new-lamassu-admin/src/components/Sidebar.styles.js b/new-lamassu-admin/src/components/Sidebar.styles.js
index f87e5bca..f32cfa46 100644
--- a/new-lamassu-admin/src/components/Sidebar.styles.js
+++ b/new-lamassu-admin/src/components/Sidebar.styles.js
@@ -1,6 +1,10 @@
import { respondTo } from '../styling/helpers'
import { primaryColor, spacer, placeholderColor, zircon, xxl } from '../styling/variables'
+import typographyStyles from './typography/styles'
+
+const { tl2 } = typographyStyles
+
const sidebarColor = zircon
export default {
@@ -12,7 +16,7 @@ export default {
boxShadow: `-500px 0px 0px 0px ${sidebarColor}`,
borderRadius: '0 20px 0 0',
alignItems: 'flex-end',
- padding: spacer * 2.5,
+ padding: spacer * 3,
flexDirection: 'column',
[respondTo(xxl)]: {
width: 'auto',
@@ -23,9 +27,10 @@ export default {
},
link: {
+ extend: tl2,
position: 'relative',
color: placeholderColor,
- marginRight: 24,
+ margin: '12px 24px 12px 0',
cursor: 'pointer',
'&:hover::after': {
height: '140%'
@@ -50,5 +55,18 @@ export default {
'&::after': {
height: '140%'
}
+ },
+ customRenderLink: {
+ '&:hover::after': {
+ height: '100%'
+ },
+ '&:after': {
+ bottom: 0
+ }
+ },
+ customRenderActiveLink: {
+ '&::after': {
+ height: '100%'
+ }
}
}
diff --git a/new-lamassu-admin/src/components/buttons/ActionButton.styles.js b/new-lamassu-admin/src/components/buttons/ActionButton.styles.js
index a557f96e..ec902176 100644
--- a/new-lamassu-admin/src/components/buttons/ActionButton.styles.js
+++ b/new-lamassu-admin/src/components/buttons/ActionButton.styles.js
@@ -9,7 +9,7 @@ import {
import typographyStyles from '../typography/styles'
-const { label } = typographyStyles
+const { p } = typographyStyles
const colors = (color1, color2, color3) => {
return {
@@ -25,7 +25,7 @@ const colors = (color1, color2, color3) => {
export default {
actionButton: {
- extend: label,
+ extend: p,
cursor: 'pointer',
border: 'none',
height: 24,
diff --git a/new-lamassu-admin/src/components/editableTable/Row.js b/new-lamassu-admin/src/components/editableTable/Row.js
index 9f5df266..5f4bb687 100644
--- a/new-lamassu-admin/src/components/editableTable/Row.js
+++ b/new-lamassu-admin/src/components/editableTable/Row.js
@@ -1,6 +1,6 @@
-import React, { useState } from 'react'
-import { identity } from 'lodash/fp'
-import { FastField } from 'formik'
+import React, { useState, memo } from 'react'
+import { identity, isEmpty } from 'lodash/fp'
+import { Form, Formik, FastField, useFormikContext } from 'formik'
import {
Td,
@@ -13,18 +13,24 @@ const getField = (name, component, props = {}) => (
)
-const ERow = ({ elements, cancel, save, value }) => {
+const ERow = memo(({ elements }) => {
+ const { values, submitForm, resetForm, errors } = useFormikContext()
const [editing, setEditing] = useState(false)
+
+ const innerSave = () => {
+ submitForm()
+ }
+
const innerCancel = () => {
setEditing(false)
- cancel()
+ resetForm()
}
return (
-
- {elements.map(({ name, input, size, view = identity, inputProps }, idx) => (
- |
- {editing ? getField(name, input, inputProps) : view(value[name])}
+ |
+ {elements.map(({ name, input, size, textAlign, view = identity, inputProps }, idx) => (
+ |
+ {editing ? getField(name, input, inputProps) : view(values[name])}
|
))}
@@ -33,7 +39,7 @@ const ERow = ({ elements, cancel, save, value }) => {
Cancel
-
+
Save
>
@@ -45,6 +51,21 @@ const ERow = ({ elements, cancel, save, value }) => {
|
)
-}
+})
-export default ERow
+const ERowWithFormik = memo(({ value, validationSchema, save, elements }) => {
+ return (
+
+
+
+ )
+})
+
+export default ERowWithFormik
diff --git a/new-lamassu-admin/src/components/editableTable/Table.js b/new-lamassu-admin/src/components/editableTable/Table.js
index c5636b5d..3b172516 100644
--- a/new-lamassu-admin/src/components/editableTable/Table.js
+++ b/new-lamassu-admin/src/components/editableTable/Table.js
@@ -1,4 +1,4 @@
-import React from 'react'
+import React, { memo } from 'react'
import { startCase } from 'lodash/fp'
import {
@@ -10,23 +10,20 @@ import {
import ERow from './Row'
-const ETable = ({ elements = [], data = [], cancel, save, components = {} }) => {
- const { row } = components
- const Row = row || ERow
-
+const ETable = memo(({ elements = [], data = [], save, validationSchema }) => {
return (
- {elements.map(({ name, size, header }, idx) => (
- | {header || startCase(name)} |
+ {elements.map(({ name, size, header, textAlign }, idx) => (
+ {header || startCase(name)} |
))}
|
- {data.map((it, idx) =>
)}
+ {data.map((it, idx) => )}
)
-}
+})
export default ETable
diff --git a/new-lamassu-admin/src/components/fake-table/Table.js b/new-lamassu-admin/src/components/fake-table/Table.js
index a12678ea..47f4291d 100644
--- a/new-lamassu-admin/src/components/fake-table/Table.js
+++ b/new-lamassu-admin/src/components/fake-table/Table.js
@@ -1,7 +1,7 @@
import React from 'react'
import classnames from 'classnames'
-import ExpansionPanel from '@material-ui/core/ExpansionPanel'
-import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary'
+import Card from '@material-ui/core/Card'
+import CardContent from '@material-ui/core/CardContent'
import { makeStyles } from '@material-ui/core/styles'
@@ -10,20 +10,21 @@ import { Link } from '../../components/buttons'
import {
tableHeaderColor,
tableHeaderHeight,
+ tableErrorColor,
spacer,
white
} from '../../styling/variables'
import typographyStyles from '../typography/styles'
-const { label2, p } = typographyStyles
+const { tl2, p } = typographyStyles
const useStyles = makeStyles({
body: {
borderSpacing: '0 4px'
},
header: {
- extend: label2,
+ extend: tl2,
backgroundColor: tableHeaderColor,
height: tableHeaderHeight,
textAlign: 'left',
@@ -39,39 +40,31 @@ const useStyles = makeStyles({
display: 'table-cell',
padding: `0 ${spacer * 3}px`
},
- summary: {
- cursor: 'auto'
+ trError: {
+ backgroundColor: tableErrorColor
+ },
+ mainContent: {
+ display: 'flex',
+ alignItems: 'center',
+ minHeight: 54
},
// mui-overrides
- panelRoot: {
+ cardContentRoot: {
+ // display: 'flex',
+ margin: 0,
+ padding: 0,
+ '&:last-child': {
+ padding: 0
+ }
+ },
+ card: {
extend: p,
- display: 'table-row',
'&:before': {
height: 0
},
margin: '4px 0',
+ width: 'min-content',
boxShadow: '0 0 4px 0 rgba(0, 0, 0, 0.08)'
- },
- panelExpanded: {
- '&:first-child': {
- marginTop: '4px !important'
- }
- },
- summaryRoot: {
- userSelect: 'auto',
- '&:hover:not(.Mui-disabled)': {
- cursor: 'auto'
- },
- cursor: 'auto',
- padding: 0
- },
- summaryContent: {
- margin: 0,
- height: 54,
- alignItems: 'center'
- },
- summaryFocused: {
- backgroundColor: 'inherit !important'
}
})
@@ -99,7 +92,7 @@ const TBody = ({ children, className }) => {
)
}
-const Td = ({ children, header, className, size = 100 }) => {
+const Td = ({ children, header, className, size = 100, textAlign }) => {
const classes = useStyles()
const classNames = {
[classes.td]: true,
@@ -107,23 +100,28 @@ const Td = ({ children, header, className, size = 100 }) => {
}
return (
-
+
{children}
)
}
-const Tr = ({ children }) => {
+const Tr = ({ error, errorMessage, children }) => {
const classes = useStyles()
- const epClasses = { root: classes.panelRoot, expanded: classes.panelExpanded }
- const summaryClasses = { root: classes.summaryRoot, content: classes.summaryContent, focused: classes.summaryFocused }
+ const cardClasses = { root: classes.cardContentRoot }
+ const classNames = {
+ [classes.trError]: error
+ }
return (
-
-
- {children}
-
-
+ <>
+
+
+ {children}
+ {error && {errorMessage}
}
+
+
+ >
)
}
diff --git a/new-lamassu-admin/src/components/inputs/autocomplete/Autocomplete.js b/new-lamassu-admin/src/components/inputs/autocomplete/Autocomplete.js
index 1da63405..dec2a6f8 100644
--- a/new-lamassu-admin/src/components/inputs/autocomplete/Autocomplete.js
+++ b/new-lamassu-admin/src/components/inputs/autocomplete/Autocomplete.js
@@ -35,13 +35,15 @@ const Autocomplete = memo(({ suggestions, classes, placeholder, label, itemToStr
}) => (
{renderInput({
+ id: name,
fullWidth: true,
classes,
- onBlur,
- error: touched[name] && errors[name],
+ error: (touched[`${name}-input`] || touched[name]) && errors[name],
+ success: (touched[`${name}-input`] || touched[name] || value) && !errors[name],
InputProps: getInputProps({
value: inputValue2 || '',
placeholder,
+ onBlur,
onClick: () => toggleMenu(),
onChange: it => {
if (it.target.value === '') {
diff --git a/new-lamassu-admin/src/components/inputs/autocomplete/AutocompleteMultiple.js b/new-lamassu-admin/src/components/inputs/autocomplete/AutocompleteMultiple.js
index 08a6c7aa..e53a85c6 100644
--- a/new-lamassu-admin/src/components/inputs/autocomplete/AutocompleteMultiple.js
+++ b/new-lamassu-admin/src/components/inputs/autocomplete/AutocompleteMultiple.js
@@ -60,10 +60,11 @@ const AutocompleteMultiple = memo(
}) => (
{renderInput({
+ id: name,
fullWidth: true,
classes,
- onBlur,
- error: touched[name] && errors[name],
+ error: (touched[`${name}-input`] || touched[name]) && errors[name],
+ success: (touched[`${name}-input`] || touched[name] || value) && !errors[name],
InputProps: getInputProps({
startAdornment: (value || []).map(item => (
)),
+ onBlur,
onChange: it => setInputValue(it.target.value),
onClick: () => toggleMenu(),
onKeyDown: handleKeyDown,
diff --git a/new-lamassu-admin/src/components/inputs/autocomplete/commons.js b/new-lamassu-admin/src/components/inputs/autocomplete/commons.js
index c309a789..a52e3759 100644
--- a/new-lamassu-admin/src/components/inputs/autocomplete/commons.js
+++ b/new-lamassu-admin/src/components/inputs/autocomplete/commons.js
@@ -6,7 +6,7 @@ import MenuItem from '@material-ui/core/MenuItem'
import { fontColor, inputFontSize, inputFontWeight } from '../../../styling/variables'
function renderInput (inputProps) {
- const { InputProps, classes, ref, ...other } = inputProps
+ const { onBlur, success, InputProps, classes, ref, ...other } = inputProps
return (
({
inputInput: {
flex: 1
},
+ success: {
+ '&:after': {
+ transform: 'scaleX(1)'
+ }
+ },
divider: {
height: theme.spacing(2)
}
diff --git a/new-lamassu-admin/src/components/typography/index.js b/new-lamassu-admin/src/components/typography/index.js
index 18ac1e56..127ad39a 100644
--- a/new-lamassu-admin/src/components/typography/index.js
+++ b/new-lamassu-admin/src/components/typography/index.js
@@ -25,22 +25,25 @@ function H4 ({ children, className, ...props }) {
return {children}
}
-const P = pBuilder()
+const P = pBuilder('p')
const Info1 = pBuilder('info1')
const Info2 = pBuilder('info2')
const Info3 = pBuilder('info3')
-const Info4 = pBuilder('info4')
const Mono = pBuilder('mono')
const TL1 = pBuilder('tl1')
const TL2 = pBuilder('tl2')
+const Label1 = pBuilder('label1')
+const Label2 = pBuilder('label2')
+const Label3 = pBuilder('label3')
function pBuilder (elementClass) {
- return ({ inline, className, children, ...props }) => {
+ return ({ inline, noMargin, className, children, ...props }) => {
const classes = useStyles()
const classNames = {
[classes[elementClass]]: elementClass,
className: true,
- [classes.inline]: inline
+ [classes.inline]: inline,
+ [classes.noMarginP]: noMargin
}
return (
@@ -50,4 +53,4 @@ function pBuilder (elementClass) {
}
}
-export { H1, H2, H3, H4, TL1, TL2, P, Info1, Info2, Info3, Info4, Mono }
+export { H1, H2, H3, H4, TL1, TL2, P, Info1, Info2, Info3, Mono, Label1, Label2, Label3 }
diff --git a/new-lamassu-admin/src/components/typography/styles.js b/new-lamassu-admin/src/components/typography/styles.js
index 30e262d0..2c4ed79a 100644
--- a/new-lamassu-admin/src/components/typography/styles.js
+++ b/new-lamassu-admin/src/components/typography/styles.js
@@ -70,6 +70,12 @@ export default {
fontFamily: fontSecondary,
fontWeight: 700
},
+ info3: {
+ extend: base,
+ fontSize: fontSize3,
+ fontFamily: fontSecondary,
+ fontWeight: 500
+ },
mono: {
extend: base,
fontSize: fontSize4,
@@ -95,7 +101,7 @@ export default {
fontWeight: 500,
lineHeight: '110%'
},
- label: {
+ label1: {
fontSize: fontSize5,
fontFamily: fontSecondary,
fontWeight: 500
@@ -105,6 +111,12 @@ export default {
fontFamily: fontSecondary,
fontWeight: 700
},
+ label3: {
+ fontSize: fontSize4,
+ fontFamily: fontSecondary,
+ fontWeight: 500,
+ color: fontColor
+ },
select: {
fontSize: fontSize3,
fontFamily: fontSecondary,
@@ -112,5 +124,8 @@ export default {
},
inline: {
display: 'inline'
+ },
+ noMarginP: {
+ margin: 0
}
}
diff --git a/new-lamassu-admin/src/pages/Funding.js b/new-lamassu-admin/src/pages/Funding.js
index bb98cab3..13e76ffc 100644
--- a/new-lamassu-admin/src/pages/Funding.js
+++ b/new-lamassu-admin/src/pages/Funding.js
@@ -5,7 +5,7 @@ import BigNumber from 'bignumber.js'
import useAxios from '@use-hooks/axios'
import { makeStyles } from '@material-ui/core/styles'
-import { H3, Info1, Info3, Info4, Mono } from '../components/typography'
+import { H3, Info1, Info2, Info3, Mono, Label1, Label3, TL2 } from '../components/typography'
import Title from '../components/Title'
import Sidebar from '../components/Sidebar'
import { primaryColor } from '../styling/variables'
@@ -58,6 +58,16 @@ const Funding = () => {
}
})
+ const itemRender = (it) => {
+ return (
+
+
{it.display}
+
{it.fiatConfirmedBalance} {it.fiatCode}
+
{it.confirmedBalance} {it.cryptoCode}
+
+ )
+ }
+
return (
<>
Funding
@@ -67,14 +77,15 @@ const Funding = () => {
isSelected={isSelected}
onClick={setSelected}
displayName={it => it.display}
+ itemRender={itemRender}
>
{data && data.length && (
- Total Crypto Balance
+ Total Crypto Balance
{getConfirmedTotal(data)} {data[0].fiatCode}
- (+{getPendingTotal(data)} pending)
+ (+{getPendingTotal(data)} pending)
)}
@@ -83,21 +94,21 @@ const Funding = () => {
Balance ({selected.display})
-
+
{`${selected.confirmedBalance} ${selected.cryptoCode}`}
-
-
- {` (+ ${selected.pending} pending)`}
-
+
+
+ {`(+ ${selected.pending} pending)`}
+
-
+
{`= ${formatNumber(selected.fiatConfirmedBalance)} ${selected.fiatCode}`}
-
-
+
+
{`(+${formatNumber(selected.fiatPending)} pending)`}
-
+
Address
@@ -109,7 +120,7 @@ const Funding = () => {
- Scan to send {selected.display}
+ Scan to send {selected.display}
diff --git a/new-lamassu-admin/src/pages/Funding.styles.js b/new-lamassu-admin/src/pages/Funding.styles.js
index f3f2de8c..107d23de 100644
--- a/new-lamassu-admin/src/pages/Funding.styles.js
+++ b/new-lamassu-admin/src/pages/Funding.styles.js
@@ -1,4 +1,8 @@
-import { spacer, subheaderColor, placeholderColor } from '../styling/variables'
+import { spacer, subheaderColor, placeholderColor, fontColor } from '../styling/variables'
+
+import typographyStyles from '../components/typography/styles'
+
+const { label1 } = typographyStyles
export default {
wrapper: {
@@ -38,12 +42,27 @@ export default {
width: 375,
margin: `${spacer * 1.5}px ${spacer * 3}px`
},
+ itemWrapper: {
+ textAlign: 'end'
+ },
+ item: {
+ extend: label1,
+ margin: 2
+ },
+ firstItem: {
+ margin: 2
+ },
total: {
marginTop: 'auto',
textAlign: 'right',
- marginRight: 20
+ marginRight: 24
+ },
+ totalPending: {
+ color: fontColor,
+ marginTop: 2
},
totalTitle: {
- color: placeholderColor
+ color: placeholderColor,
+ marginBottom: 2
}
}
diff --git a/new-lamassu-admin/src/pages/Locales/Locales.js b/new-lamassu-admin/src/pages/Locales/Locales.js
index cab092a3..a1b78803 100644
--- a/new-lamassu-admin/src/pages/Locales/Locales.js
+++ b/new-lamassu-admin/src/pages/Locales/Locales.js
@@ -1,5 +1,4 @@
import React, { memo, useState } from 'react'
-import { withFormik } from 'formik'
import * as Yup from 'yup'
import useAxios from '@use-hooks/axios'
@@ -24,7 +23,6 @@ const initialValues = {
const Locales = memo(() => {
const [locale, setLocale] = useState(initialValues)
- const [editing, setEditing] = useState(false)
const [data, setData] = useState(null)
useAxios({
@@ -48,21 +46,16 @@ const Locales = memo(() => {
}
})
- const MainFormFormik = withFormik({
- mapPropsToValues: () => locale,
- validationSchema: LocaleSchema,
- handleSubmit: it => {
- setEditing(false)
- setLocale(it)
- reFetch()
- }
- })(MainForm)
+ const save = (it) => {
+ setLocale(it)
+ reFetch()
+ }
return (
<>
Locales
Default settings
-
+
Overrides
>
)
diff --git a/new-lamassu-admin/src/pages/Locales/MainForm.js b/new-lamassu-admin/src/pages/Locales/MainForm.js
index 1a05d177..34770a6d 100644
--- a/new-lamassu-admin/src/pages/Locales/MainForm.js
+++ b/new-lamassu-admin/src/pages/Locales/MainForm.js
@@ -1,181 +1,70 @@
-import React, { useState, memo } from 'react'
-import { Form, FastField } from 'formik'
-import { __, compose, join, map, get, isEmpty } from 'lodash/fp'
+import React, { memo } from 'react'
+import { __, compose, join, map, get } from 'lodash/fp'
-import { Link } from '../../components/buttons'
import { Autocomplete, AutocompleteMultiple } from '../../components/inputs'
import { Checkbox } from '../../components/inputs/formik'
-import {
- EditCell,
- Table,
- TableHead,
- TableRow,
- TableHeader,
- TableBody,
- TableCell as Td
-} from '../../components/table'
-
// import styles from './MainForm.module.scss'
import { Table as EditableTable } from '../../components/editableTable'
-const styles = {}
-
const sizes = {
country: 200,
fiatCurrency: 150,
languages: 240,
- cryptoCurrencies: 280,
+ cryptoCurrencies: 270,
showRates: 125,
action: 175
}
const MainForm = memo(
- ({ values, resetForm, submitForm, errors, editing, setEditing, data }) => {
- const [submitted, setSubmitted] = useState(false)
-
- const getData = get(__, data)
+ ({ value, save, auxData, validationSchema }) => {
+ const getData = get(__, auxData)
const displayCodeArray = compose(join(', '), map(get('code')))
- const save = () => {
- setSubmitted(true)
- submitForm()
- }
-
- const cancel = () => {
- resetForm()
- setSubmitted(false)
- setEditing(false)
- }
-
- const ViewFields = (
- <>
-
{values.country && values.country.display} |
-
{values.fiatCurrency && values.fiatCurrency.code} |
-
- {values.languages && values.languages.map(it => it.code).join(', ')}
- |
-
- {values.cryptoCurrencies &&
- values.cryptoCurrencies.map(it => it.code).join(', ')}
- |
-
{values.showRates ? 'true' : 'false'} |
-
- setEditing(true)}>
- Edit
-
- |
- >
- )
-
- const EditFields = (
- <>
-
-
- |
-
-
- |
-
-
- |
-
-
- |
-
-
- |
-
- >
- )
-
return (
-
+
it ? 'true' : 'false',
+ input: Checkbox
+ }
+ ]}
+ />
)
}
)
diff --git a/new-lamassu-admin/src/styling/variables.js b/new-lamassu-admin/src/styling/variables.js
index 2d438e0b..414f3e5d 100644
--- a/new-lamassu-admin/src/styling/variables.js
+++ b/new-lamassu-admin/src/styling/variables.js
@@ -1,4 +1,4 @@
-const version = 8
+const version = 9
// Primary
const zodiac = '#1b2559'
@@ -8,8 +8,8 @@ const spring = '#48f694'
const comet = '#5f668a'
const comet2 = '#72799d'
const spring2 = '#44e188'
-const spring4 = '#3fd07e'
const spring3 = '#ecfbef'
+const spring4 = '#3fd07e'
const zircon = '#ebefff'
const zircon2 = '#dbdfed'
@@ -75,7 +75,7 @@ if (version === 8) {
fontSize5 = 14
}
-const smallestFontSize = fontSize5 - 1
+const smallestFontSize = fontSize5
const inputFontSize = fontSize4
const inputFontSizeLg = fontSize1
const inputFontWeight = 500