added action getPortalCultures, fix routing
This commit is contained in:
parent
1a730f0750
commit
779eb155b5
@ -18,7 +18,7 @@ const App = () => {
|
||||
fallback={<Loader className="pageLoader" type="rombs" size='40px' />}
|
||||
>
|
||||
<Switch>
|
||||
<PrivateRoute exact path="/wizard" component={Wizard} />
|
||||
<Route exact path="/wizard" component={Wizard} />
|
||||
<PublicRoute exact path={["/login","/login/error=:error", "/login/confirmed-email=:confirmedEmail"]} component={Login} />
|
||||
<Route path="/confirm" component={Confirm} />
|
||||
<PrivateRoute exact path={["/","/error=:error"]} component={Home} />
|
||||
@ -34,4 +34,4 @@ const App = () => {
|
||||
);
|
||||
};
|
||||
|
||||
export default App;
|
||||
export default App;
|
@ -4,6 +4,7 @@ import styled from "styled-components";
|
||||
import i18n from './i18n';
|
||||
import { withTranslation } from 'react-i18next';
|
||||
import { connect } from 'react-redux';
|
||||
import { Redirect } from 'react-router-dom'
|
||||
|
||||
import { PageLayout } from "asc-web-common";
|
||||
import {
|
||||
@ -14,7 +15,7 @@ import {
|
||||
Button, Box, Loader,
|
||||
ModalDialog, utils } from 'asc-web-components';
|
||||
|
||||
import { getWizardInfo } from '../../../store/wizard/actions';
|
||||
import { getWizardInfo, getPortalTimezones, getPortalCultures, setIsWizardLoaded } from '../../../store/wizard/actions';
|
||||
|
||||
const { EmailSettings } = utils.email;
|
||||
const settings = new EmailSettings();
|
||||
@ -317,17 +318,23 @@ class Body extends Component {
|
||||
email: '',
|
||||
newEmail: '',
|
||||
license: false,
|
||||
selectLanguage: props.languages[0],
|
||||
selectTimezone: props.timezones[0]
|
||||
selectLanguage: props.portalCulture,
|
||||
selectTimezone: props.portalTimezone
|
||||
}
|
||||
|
||||
this.inputRef = React.createRef();
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
const { t, wizardToken, getWizardInfo } = this.props;
|
||||
async componentDidMount() {
|
||||
const { t, wizardToken, getWizardInfo, getPortalCultures, getPortalTimezones, setIsWizardLoaded } = this.props;
|
||||
document.title = t('title');
|
||||
getWizardInfo(wizardToken);
|
||||
|
||||
//await getPortalTimezones()
|
||||
await getPortalCultures();
|
||||
await getWizardInfo(wizardToken);
|
||||
setIsWizardLoaded(true);
|
||||
|
||||
|
||||
}
|
||||
|
||||
isValidPassHandler = val => {
|
||||
@ -571,7 +578,7 @@ class Body extends Component {
|
||||
|
||||
renderSettingsBox = () => {
|
||||
const { selectLanguage, selectTimezone } = this.state;
|
||||
const { isOwner, t, domain, languages, timezones, ownerEmail } = this.props;
|
||||
const { isOwner, t, domain, cultures, timezones, ownerEmail } = this.props;
|
||||
|
||||
const titleEmail = isOwner
|
||||
? <Text className="settings-title">{t('email')}</Text>
|
||||
@ -594,7 +601,7 @@ class Body extends Component {
|
||||
{contentEmail}
|
||||
<GroupButton className="drop-down value" label={selectLanguage} isDropdown={true}>
|
||||
{
|
||||
languages.map(el => (
|
||||
cultures.map(el => (
|
||||
<DropDownItem
|
||||
key={el}
|
||||
label={el}
|
||||
@ -633,7 +640,17 @@ class Body extends Component {
|
||||
}
|
||||
|
||||
render() {
|
||||
const { isWizardLoaded } = this.props;
|
||||
const { isWizardLoaded, wizardToken } = this.props;
|
||||
if(!wizardToken) {
|
||||
return (
|
||||
<Redirect
|
||||
to={{
|
||||
pathname: "/login",
|
||||
state: { from: this.props.location }
|
||||
}}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
console.log('wizard render', this.props)
|
||||
|
||||
@ -685,10 +702,13 @@ function mapStateToProps(state) {
|
||||
|
||||
settingsPassword: state.auth.settings.passwordSettings,
|
||||
wizardToken: state.auth.settings.wizardToken,
|
||||
isWizardLoaded: state.wizard.isWizardLoaded
|
||||
isWizardLoaded: state.wizard.isWizardLoaded,
|
||||
cultures: state.auth.settings.cultures,
|
||||
portalCulture: state.auth.settings.culture,
|
||||
portalTimezone: state.auth.settings.timezone
|
||||
};
|
||||
}
|
||||
|
||||
export default connect(mapStateToProps, {
|
||||
getWizardInfo
|
||||
getWizardInfo, getPortalCultures, getPortalTimezones, setIsWizardLoaded
|
||||
})(withRouter(Wizard));
|
@ -1,5 +1,5 @@
|
||||
import { store } from "asc-web-common";
|
||||
const { getPortalPasswordSettings } = store.auth.actions;
|
||||
import { store, api } from "asc-web-common";
|
||||
const { getPortalPasswordSettings, setPortalLanguageAndTime, setTimezones, setPortalCultures } = store.auth.actions;
|
||||
|
||||
export const SET_IS_WIZARD_LOADED = 'SET_IS_WIZARD_LOADED';
|
||||
|
||||
@ -12,7 +12,23 @@ export function setIsWizardLoaded(isWizardLoaded) {
|
||||
|
||||
export function getWizardInfo(token) {
|
||||
return dispatch => {
|
||||
return getPortalPasswordSettings(dispatch, token)
|
||||
.then(() => dispatch(setIsWizardLoaded(true)));
|
||||
return getPortalPasswordSettings(dispatch, token);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
export function getPortalTimezones() {
|
||||
return dispatch => {
|
||||
return api.settings.getPortalTimezones().then(timezones => {
|
||||
console.log('timezones -----------------------------')
|
||||
dispatch(setTimezones(timezones));
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
export function getPortalCultures() {
|
||||
return dispatch => {
|
||||
return api.settings.getPortalCultures().then(cultures => {
|
||||
dispatch(setPortalCultures(cultures));
|
||||
})
|
||||
}
|
||||
}
|
@ -36,11 +36,7 @@ const PrivateRoute = ({ component: Component, ...rest }) => {
|
||||
}
|
||||
|
||||
if (!token || (isLoaded && !isAuthenticated)) {
|
||||
|
||||
if (wizardToken) {
|
||||
if(props.history.location.pathname === '/wizard') {
|
||||
return <Component {...props} />;
|
||||
}
|
||||
if(wizardToken) {
|
||||
return (
|
||||
<Redirect
|
||||
to={{
|
||||
@ -49,8 +45,7 @@ const PrivateRoute = ({ component: Component, ...rest }) => {
|
||||
}}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
return (
|
||||
<Redirect
|
||||
to={{
|
||||
|
@ -2,10 +2,13 @@
|
||||
import React, { useCallback } from 'react';
|
||||
import { Redirect, Route } from 'react-router-dom';
|
||||
import { AUTH_KEY } from "../../constants";
|
||||
import { connect } from "react-redux";
|
||||
|
||||
export const PublicRoute = ({ component: Component, ...rest }) => {
|
||||
const token = localStorage.getItem(AUTH_KEY);
|
||||
|
||||
const {wizardToken} = rest;
|
||||
|
||||
const renderComponent = useCallback(
|
||||
props => {
|
||||
if(token) {
|
||||
@ -19,11 +22,14 @@ export const PublicRoute = ({ component: Component, ...rest }) => {
|
||||
);
|
||||
}
|
||||
|
||||
if(!token) {
|
||||
if(wizardToken) {
|
||||
if(props.location.pathname === '/wizard') {
|
||||
return <Component {...props} />;
|
||||
}
|
||||
return (
|
||||
<Redirect
|
||||
to={{
|
||||
pathname: "/",
|
||||
pathname: "/wizard",
|
||||
state: { from: props.location }
|
||||
}}
|
||||
/>
|
||||
@ -31,7 +37,7 @@ export const PublicRoute = ({ component: Component, ...rest }) => {
|
||||
}
|
||||
|
||||
return <Component {...props} />;
|
||||
}, [token, Component]);
|
||||
}, [token, wizardToken, Component]);
|
||||
return (
|
||||
<Route
|
||||
{...rest}
|
||||
@ -40,4 +46,10 @@ export const PublicRoute = ({ component: Component, ...rest }) => {
|
||||
)
|
||||
};
|
||||
|
||||
export default PublicRoute;
|
||||
function mapStateToProps(state) {
|
||||
return {
|
||||
wizardToken: state.auth.settings.wizardToken
|
||||
};
|
||||
}
|
||||
|
||||
export default connect(mapStateToProps)(PublicRoute);
|
Loading…
Reference in New Issue
Block a user