at the end of the day, it was inevitable
This commit is contained in:
@@ -0,0 +1,157 @@
|
||||
import reduxModule from '../abstract/reduxModule';
|
||||
import dashboards, { LOAD_DASHBOARDS } from '../appState/dashboards';
|
||||
import * as api from '../../../api/usersApi';
|
||||
|
||||
export const TOGGLE_UPGRADE_PLAN = 'TOGGLE_UPGRADE_PLAN';
|
||||
|
||||
export class Base extends reduxModule {
|
||||
getNamespace() {
|
||||
return '[Base]';
|
||||
}
|
||||
|
||||
changeUserPassword = (password, oldPassword, { token, dispatch }) => {
|
||||
dispatch(this.setSettingsPopupError(null));
|
||||
return api
|
||||
.changePassword(token, { password, oldPassword })
|
||||
.then(() => {
|
||||
dispatch(this.hideUserSettingsPopup());
|
||||
})
|
||||
.catch((response) => {
|
||||
dispatch(this.setSettingsPopupError(response[0].message));
|
||||
});
|
||||
};
|
||||
|
||||
defineActions() {
|
||||
// const toggleLangsDrop = this.toggle('TOGGLE_LANGS_DROP', 'isLangsDropVisible')
|
||||
// const hideLangsDrop = this.reset('HIDE_LANGS_DROP', 'isLangsDropVisible', false)
|
||||
// const toggleSidebar = this.toggle('TOGGLE_SIDEBAR', 'isSidebarCollapsed')
|
||||
const setDashboardTabs = this.createAction('SET_DASHBOARD_TABS');
|
||||
const chooseLanguage = this.createAction('CHOOSE_LANG');
|
||||
const showUserSettingsPopup = this.reset(
|
||||
'SHOW_USER_SETTINGS_DROP',
|
||||
'isSettingsPopupVisible',
|
||||
true
|
||||
);
|
||||
const hideUserSettingsPopup = (this.hideUserSettingsPopup = this.reset(
|
||||
'HIDE_USER_SETTINGS_DROP',
|
||||
'isSettingsPopupVisible',
|
||||
false
|
||||
));
|
||||
const changeUserPassword = this.thunkAction(
|
||||
'CHANGE_USER_PASSWORD',
|
||||
this.changeUserPassword
|
||||
);
|
||||
const setSettingsPopupError = (this.setSettingsPopupError = this.set(
|
||||
'SET_SETTINGS_POPUP_ERROR',
|
||||
'settingsPopupError'
|
||||
));
|
||||
const toggleResponsiveMenu = this.toggle(
|
||||
'TOGGLE_RESPONSIVE_MENU',
|
||||
'responsiveMenuVisible'
|
||||
);
|
||||
const toggleUpgradeModal = this.toggle(
|
||||
TOGGLE_UPGRADE_PLAN,
|
||||
'isUpgradeVisible'
|
||||
);
|
||||
const toggleWebTour = this.toggle('TOGGLE_WEBTOUR', 'isTourOpen');
|
||||
|
||||
return {
|
||||
// toggleLangsDrop,
|
||||
chooseLanguage,
|
||||
// hideLangsDrop,
|
||||
// toggleSidebar,
|
||||
setDashboardTabs,
|
||||
showUserSettingsPopup,
|
||||
hideUserSettingsPopup,
|
||||
changeUserPassword,
|
||||
setSettingsPopupError,
|
||||
toggleResponsiveMenu,
|
||||
toggleUpgradeModal,
|
||||
toggleWebTour
|
||||
};
|
||||
}
|
||||
|
||||
getInitialState() {
|
||||
return {
|
||||
tabs: {
|
||||
/*'dashboard': {
|
||||
items: []
|
||||
},*/
|
||||
search: {
|
||||
items: [
|
||||
{ title: 'search', url: 'search' },
|
||||
{ title: 'sourceIndex', url: 'source-index' },
|
||||
{ title: 'sourceLists', url: 'source-lists' }
|
||||
],
|
||||
icon: 'pe-7s-search'
|
||||
},
|
||||
analyze: {
|
||||
items: [
|
||||
// {title: 'welcome', url: 'welcome'},
|
||||
{ title: 'savedAnalysis', url: 'saved' },
|
||||
{ title: 'createAnalysis', url: 'create' }
|
||||
],
|
||||
icon: 'pe-7s-graph1'
|
||||
},
|
||||
share: {
|
||||
items: [
|
||||
{ title: 'notifications', url: 'notifications' },
|
||||
{ title: 'manageEmails', url: 'manage-emails', masterOnly: true },
|
||||
{
|
||||
title: 'manageRecipients',
|
||||
url: 'manage-recipients',
|
||||
masterOnly: true
|
||||
},
|
||||
{ title: 'export', url: 'export' }
|
||||
],
|
||||
icon: 'pe-7s-share'
|
||||
}
|
||||
},
|
||||
// isSidebarCollapsed: false,
|
||||
isUserSettingsDropVisible: false,
|
||||
// isLangsDropVisible: false,
|
||||
isSettingsPopupVisible: false,
|
||||
settingsPopupError: '',
|
||||
isThereSomethingNew: true,
|
||||
langs: ['en', 'ar', 'fr'],
|
||||
// langs: ['en', 'ar', 'fr', 'es', 'de', , 'he', 'nl', 'pt'],
|
||||
activeLang: '',
|
||||
rtlLang: false,
|
||||
responsiveMenuVisible: false,
|
||||
isUpgradeVisible: false
|
||||
};
|
||||
}
|
||||
|
||||
defineReducers() {
|
||||
this.addExternalReducer(
|
||||
dashboards.ns(`${LOAD_DASHBOARDS} fulfilled`),
|
||||
(state, { payload: dashboards }) => {
|
||||
const dashboardTabs = dashboards.map((d) => ({
|
||||
url: d.id,
|
||||
title: d.name
|
||||
}));
|
||||
return state.mergeIn(['tabs', 'dashboard', 'items'], dashboardTabs);
|
||||
}
|
||||
);
|
||||
|
||||
return {
|
||||
CHOOSE_LANG: (state, { payload: lang }) => {
|
||||
const langsAvailable = state.get('langs');
|
||||
const language = langsAvailable.includes(lang) ? lang : 'en';
|
||||
const rtlLanguages = ['ar', 'he'];
|
||||
const rtlLang = rtlLanguages.includes(language);
|
||||
const dir = rtlLang ? 'rtl' : 'ltr';
|
||||
document.documentElement.dir = dir; // set page direction
|
||||
document.documentElement.lang = language;
|
||||
return state.merge({
|
||||
activeLang: language,
|
||||
rtlLang: rtlLang
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
const instance = new Base();
|
||||
instance.init();
|
||||
export default instance;
|
||||
Reference in New Issue
Block a user