diff --git a/client/src/components/Dashboard/Dashboard.js b/client/src/components/Dashboard/Dashboard.js index d24660695..e710485a6 100644 --- a/client/src/components/Dashboard/Dashboard.js +++ b/client/src/components/Dashboard/Dashboard.js @@ -8,7 +8,7 @@ import PreferencesSidebar from 'components/Preferences/PreferencesSidebar'; export default function() { return ( -
+
diff --git a/client/src/components/Preferences/PreferencesContent.js b/client/src/components/Preferences/PreferencesContent.js index 9bcfcfa9e..4e2cd404e 100644 --- a/client/src/components/Preferences/PreferencesContent.js +++ b/client/src/components/Preferences/PreferencesContent.js @@ -4,7 +4,7 @@ import PreferencesContentRoute from 'components/Preferences/PreferencesContentRo export default function() { return ( -
+
diff --git a/client/src/components/Preferences/PreferencesContentRoute.js b/client/src/components/Preferences/PreferencesContentRoute.js index d619171dd..3ed99820a 100644 --- a/client/src/components/Preferences/PreferencesContentRoute.js +++ b/client/src/components/Preferences/PreferencesContentRoute.js @@ -3,15 +3,13 @@ import { Route, Switch, useRouteMatch } from 'react-router-dom'; import preferencesRoutes from 'routes/preferences' export default function DashboardContentRoute() { - const { path } = useRouteMatch(); - return ( { preferencesRoutes.map((route, index) => ( diff --git a/client/src/components/Preferences/PreferencesSidebar.js b/client/src/components/Preferences/PreferencesSidebar.js index 763ad31a0..c1987de94 100644 --- a/client/src/components/Preferences/PreferencesSidebar.js +++ b/client/src/components/Preferences/PreferencesSidebar.js @@ -18,13 +18,15 @@ export default function PreferencesSidebar() { return (
-
-

Preferences

-
+
+
+

Preferences

+
- - { items } - + + { items } + +
); } \ No newline at end of file diff --git a/client/src/components/Views/ViewForm.js b/client/src/components/Views/ViewForm.js index 20d8c5283..0caca61e4 100644 --- a/client/src/components/Views/ViewForm.js +++ b/client/src/components/Views/ViewForm.js @@ -1,4 +1,4 @@ -import React, {useState, useEffect} from 'react'; +import React, {useState, useEffect, useCallback, useMemo} from 'react'; import {Formik, useFormik, ErrorMessage} from "formik"; import {useIntl} from 'react-intl'; import { @@ -34,12 +34,13 @@ function ViewForm({ const [draggedColumns, setDraggedColumn] = useState([]); const [availableColumns, setAvailableColumns] = useState(columns); - const defaultViewRole = { + const defaultViewRole = useMemo(() => ({ field_key: '', comparator: 'AND', value: '', index: 1, - }; + }), []); + const validationSchema = Yup.object().shape({ resource_name: Yup.string().required(), name: Yup.string().required(), @@ -86,7 +87,6 @@ function ViewForm({ ], }, onSubmit: (values) => { - if (viewForm && viewForm.id) { editView(viewForm.id, values).then((response) => { @@ -100,10 +100,11 @@ function ViewForm({ }); useEffect(() => { - formik.setFieldValue('columns', draggedColumns.map((column, index) => ({ + formik.setFieldValue('columns', + draggedColumns.map((column, index) => ({ index, key: column.key, }))); - }, [draggedColumns]); + }, [draggedColumns, formik]); const conditionalsItems = [ { value: 'and', label: 'AND' }, @@ -123,16 +124,16 @@ function ViewForm({ ]; // Resource fields. - const resourceFields = [ + const resourceFields = useMemo(() => ([ {value: '', label: 'Select a field'}, ...fields.map((field) => ({ value: field.key, label: field.labelName, })), - ]; + ]), []); // Account item of select accounts field. const selectItem = (item, { handleClick, modifiers, query }) => { return () }; // Handle click new condition button. - const onClickNewRole = () => { + const onClickNewRole = useCallback(() => { formik.setFieldValue('roles', [ ...formik.values.roles, { @@ -140,9 +141,10 @@ function ViewForm({ index: formik.values.roles.length + 1, } ]); - }; + }, [formik, defaultViewRole]); + // Handle click remove view role button. - const onClickRemoveRole = (viewRole, index) => () => { + const onClickRemoveRole = useCallback((viewRole, index) => () => { const viewRoles = [...formik.values.roles]; viewRoles.splice(index, 1); viewRoles.map((role, i) => { @@ -150,9 +152,12 @@ function ViewForm({ return role; }); formik.setFieldValue('roles', viewRoles); - }; + }, [formik]); + + const onClickDeleteView = useCallback(() => { + onDelete && onDelete(viewForm); + }, [onDelete, viewForm]); - const onClickDeleteView = () => { onDelete(viewForm); }; return (
diff --git a/client/src/containers/Dashboard/Preferences/General.js b/client/src/containers/Dashboard/Preferences/General.js index 2a2ce3cce..a7c3d9c75 100644 --- a/client/src/containers/Dashboard/Preferences/General.js +++ b/client/src/containers/Dashboard/Preferences/General.js @@ -1,30 +1,22 @@ import React from 'react'; import { useFormik } from 'formik'; import * as Yup from 'yup'; -import {connect} from 'react-redux'; import { Button, FormGroup, InputGroup, Intent, } from "@blueprintjs/core"; -import { useAsync } from 'react-use'; import {optionsMapToArray} from 'utils'; -import AppToaster from 'components/AppToaster'; -import { - savePreferences, - fetchPreferences, -} from 'store/preferences/preferences.actions'; -function GeneralPreferences({ savePreferences, fetchPreferences }) { +function GeneralPreferences({ + +}) { const validationSchema = Yup.object().shape({ organization_name: Yup.string().required(), organization_industry: Yup.string().required(), }); - const asyncHook = useAsync(async () => { - await fetchPreferences(); - }); const formik = useFormik({ enableReinitialize: true, initialValues: { @@ -35,13 +27,6 @@ function GeneralPreferences({ savePreferences, fetchPreferences }) { return {...option, group: 'general'}; }); - savePreferences(options).then((response) => { - AppToaster.show({ - message: 'preferences_have_been_updated', - }); - }).catch(error => { - - }); }, }); @@ -80,9 +65,4 @@ function GeneralPreferences({ savePreferences, fetchPreferences }) { ) } -const mapDispatchToProps = (dispatch) => ({ - savePreferences: (options) => dispatch(savePreferences({ options })), - fetchPreferences: (keys) => dispatch(fetchPreferences()) -}); - -export default connect(null, mapDispatchToProps)(GeneralPreferences); \ No newline at end of file +export default GeneralPreferences; \ No newline at end of file diff --git a/client/src/style/pages/preferences.scss b/client/src/style/pages/preferences.scss index 655884307..813ccf730 100644 --- a/client/src/style/pages/preferences.scss +++ b/client/src/style/pages/preferences.scss @@ -1,5 +1,8 @@ +.dashboard-content--preferences{ + margin-left: 430px; +} .preferences{ &__inside-content--tabable{ @@ -8,7 +11,6 @@ } &__inside-content{ - .#{$ns}-tab-list{ border-bottom: 1px solid #E5E5E5; padding-left: 15px; @@ -22,9 +24,16 @@ .preferences__sidebar{ background: #fdfdfd; + position: fixed; + left: 220px; min-width: 210px; max-width: 210px; - + height: 100%; + + .sidebar-wrapper{ + + } + &-head{ display: flex; flex-direction: row;