Web.Client: Settings: passed right prop currentModuleId to Layout, changed prop currentModuleId from Settings

This commit is contained in:
Daniil Senkiv 2019-10-29 09:14:12 +03:00
parent 167a9734d9
commit b9faf28210
5 changed files with 26 additions and 7 deletions

View File

@ -75,7 +75,7 @@ const getAvailableModules = (modules, currentUser) => {
id: "nav-separator-2"
},
{
id: 'testId',
id: 'settings',
title: 'Settings',
iconName: "SettingsIcon",
notifications: 0,

View File

@ -72,7 +72,7 @@ const getAvailableModules = (modules, currentUser) => {
id: "nav-separator-2"
},
{
id: 'testId',
id: 'settings',
title: 'Settings',
iconName: "SettingsIcon",
notifications: 0,
@ -102,7 +102,7 @@ function mapStateToProps(state) {
hasChanges: state.auth.isAuthenticated && state.auth.isLoaded,
availableModules: availableModules,
currentUser: state.auth.user,
currentModuleId: state.auth.settings.currentModuleId,
currentModuleId: state.auth.settings.currentProductId,
language: state.auth.user.cultureName || state.auth.settings.culture,
};
};

View File

@ -1,4 +1,5 @@
import React, { Suspense } from "react";
import React, { Suspense, useEffect } from "react";
import { connect } from 'react-redux';
import { Loader, PageLayout } from "asc-web-components";
import i18n from "./i18n";
import { I18nextProvider } from "react-i18next";
@ -7,8 +8,14 @@ import {
ArticleBodyContent
} from "./Article";
import { SectionHeaderContent, SectionBodyContent } from './Section';
import { setCurrentProductId } from '../../../store/auth/actions';
const Settings = () => {
const Settings = (props) => {
useEffect(() => {
const { currentProductId, setCurrentProductId } = props;
currentProductId !== 'settings' && setCurrentProductId('settings');
}, [props]);
console.log("Settings render");
return (
<I18nextProvider i18n={i18n}>
@ -28,4 +35,4 @@ const Settings = () => {
);
};
export default Settings;
export default connect(null, { setCurrentProductId })(Settings);

View File

@ -14,6 +14,7 @@ export const SET_NEW_SETTING_NODE = 'SET_NEW_SETTING_NODE';
export const GET_PORTAL_CULTURES = 'GET_PORTAL_CULTURES';
export const SET_PORTAL_LANGUAGE_AND_TIME = 'SET_PORTAL_LANGUAGE_AND_TIME';
export const GET_TIMEZONES = 'GET_TIMEZONES';
export const SET_CURRENT_PRODUCT_ID = 'SET_CURRENT_PRODUCT_ID';
export function setCurrentUser(user) {
return {
@ -98,6 +99,13 @@ export function getTimezones(timezones) {
};
};
export function setCurrentProductId(currentProductId) {
return {
type: SET_CURRENT_PRODUCT_ID,
currentProductId
};
};
export function getUser(dispatch) {
return api.getUser()
.then(user => dispatch(setCurrentUser(user)));

View File

@ -1,6 +1,6 @@
import {
SET_CURRENT_USER, SET_MODULES, SET_SETTINGS, SET_IS_LOADED, LOGOUT, SET_PASSWORD_SETTINGS, SET_IS_CONFIRM_LOADED, SET_NEW_EMAIL, SET_NEW_SETTING_NODE,
GET_PORTAL_CULTURES, SET_PORTAL_LANGUAGE_AND_TIME, GET_TIMEZONES
GET_PORTAL_CULTURES, SET_PORTAL_LANGUAGE_AND_TIME, GET_TIMEZONES, SET_CURRENT_PRODUCT_ID
} from './actions';
import isEmpty from 'lodash/isEmpty';
import config from "../../../package.json";
@ -85,6 +85,10 @@ const authReducer = (state = initialState, action) => {
return Object.assign({}, state, {
settings: { ...state.settings, timezones: action.timezones }
});
case SET_CURRENT_PRODUCT_ID:
return Object.assign({}, state, {
settings: { ...state.settings, currentProductId: action.currentProductId }
});
case LOGOUT:
return initialState;
default: