at the end of the day, it was inevitable
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
import { combineReducers } from 'redux-immutable';
|
||||
|
||||
// App state and actions
|
||||
import register, {
|
||||
actions as registerActions
|
||||
} from './modules/common/register';
|
||||
import routing from './modules/routing/routing';
|
||||
|
||||
import sidebar, { actions as sidebarActions } from './modules/appState/sidebar';
|
||||
import search, { actions as searchActions } from './modules/appState/search';
|
||||
import searchByFilters, {
|
||||
actions as searchByFiltersActions
|
||||
} from './modules/appState/searchByFilters';
|
||||
import sourcesState, {
|
||||
actions as sourcesStateActions
|
||||
} from './modules/appState/sourcesState';
|
||||
import articles, {
|
||||
actions as articleActions
|
||||
} from './modules/appState/articles';
|
||||
import shareTabs, {
|
||||
actions as shareTabsActions,
|
||||
NOTIFICATION_TABLES,
|
||||
RECEIVER_TABLES,
|
||||
RECIPIENT_FORM_TABLES,
|
||||
GROUP_FORM_TABLES,
|
||||
NOTIFICATION_SUBSCREENS,
|
||||
RECEIVER_SUBSCREENS
|
||||
} from './modules/appState/share/tabs';
|
||||
import { actions as shareFormsCommonActions } from './modules/appState/share/shareForms';
|
||||
import exportFeeds, {
|
||||
actions as exportFeedsActions
|
||||
} from './modules/appState/share/exportFeeds';
|
||||
import ThemeOptions, { themeActions } from './modules/appState/themeOptions';
|
||||
|
||||
//inherited from reduxModule
|
||||
import auth, { AuthNS, USER_LOGOUT } from './modules/common/auth';
|
||||
import base from './modules/common/base';
|
||||
import alerts from './modules/common/alerts';
|
||||
|
||||
import dashboards from './modules/appState/dashboards';
|
||||
|
||||
import myEmailsTable from './modules/appState/share/tables/myEmailsTable';
|
||||
import publishedEmailsTable from './modules/appState/share/tables/publishedEmailsTable';
|
||||
import recipientsTable from './modules/appState/share/tables/recipientsTable';
|
||||
import groupsTable from './modules/appState/share/tables/groupsTable';
|
||||
import emailHistoryTable from './modules/appState/share/tables/receiverForm/emailHistoryTable';
|
||||
import receiverSubscriptionsTable from './modules/appState/share/tables/receiverForm/receiverSubscriptionsTable';
|
||||
import receiverGroupsTable from './modules/appState/share/tables/receiverForm/receiverGroupsTable';
|
||||
import receiverRecipientsTable from './modules/appState/share/tables/receiverForm/receiverRecipientsTable';
|
||||
import emailsTable from './modules/appState/share/tables/emailsTable';
|
||||
import emailFiltersTable from './modules/appState/share/tables/emailFiltersTable';
|
||||
|
||||
import alertForm from './modules/appState/share/forms/alertForm';
|
||||
import newsletterForm from './modules/appState/share/forms/newsletterForm';
|
||||
import recipientForm from './modules/appState/share/forms/recipientForm';
|
||||
import groupForm from './modules/appState/share/forms/groupForm';
|
||||
|
||||
import themes from './modules/appState/share/emailThemes/themes';
|
||||
import analyze, { analyzeActions } from './modules/appState/analyze/analyze';
|
||||
|
||||
const shareTables = combineReducers({
|
||||
[NOTIFICATION_TABLES.MY_EMAILS]: myEmailsTable.reducers,
|
||||
[NOTIFICATION_TABLES.PUBLISHED]: publishedEmailsTable.reducers,
|
||||
[RECEIVER_TABLES.RECIPIENTS]: recipientsTable.reducers,
|
||||
[RECEIVER_TABLES.GROUPS]: groupsTable.reducers,
|
||||
emails: emailsTable.reducers,
|
||||
emailFilters: emailFiltersTable.reducers,
|
||||
receiverForm: combineReducers({
|
||||
[RECIPIENT_FORM_TABLES.GROUPS]: receiverGroupsTable.reducers,
|
||||
[RECIPIENT_FORM_TABLES.SUBSCRIPTIONS]: receiverSubscriptionsTable.reducers,
|
||||
[RECIPIENT_FORM_TABLES.EMAIL_HISTORY]: emailHistoryTable.reducers,
|
||||
[GROUP_FORM_TABLES.RECIPIENTS]: receiverRecipientsTable.reducers
|
||||
})
|
||||
});
|
||||
|
||||
const shareForms = combineReducers({
|
||||
[NOTIFICATION_SUBSCREENS.ALERT_FORM]: alertForm.reducers,
|
||||
[NOTIFICATION_SUBSCREENS.NEWSLETTER_FORM]: newsletterForm.reducers,
|
||||
[RECEIVER_SUBSCREENS.RECIPIENT_FORM]: recipientForm.reducers,
|
||||
[RECEIVER_SUBSCREENS.GROUP_FORM]: groupForm.reducers
|
||||
});
|
||||
|
||||
const appReducers = combineReducers({
|
||||
routing,
|
||||
common: combineReducers({
|
||||
base: base.reducers,
|
||||
auth: auth.reducers,
|
||||
alerts: alerts.reducers,
|
||||
register
|
||||
}),
|
||||
appState: combineReducers({
|
||||
sidebar,
|
||||
search,
|
||||
searchByFilters,
|
||||
sourcesState,
|
||||
analyze,
|
||||
articles,
|
||||
dashboards: dashboards.reducers,
|
||||
themeOptions: ThemeOptions,
|
||||
share: combineReducers({
|
||||
tabs: shareTabs,
|
||||
forms: shareForms,
|
||||
tables: shareTables,
|
||||
themes: themes.reducers,
|
||||
exportFeeds
|
||||
})
|
||||
})
|
||||
});
|
||||
|
||||
export function rootReducers(state, action) {
|
||||
if (action.type === `${AuthNS} ${USER_LOGOUT}`) {
|
||||
state = undefined; // to clear state when logout
|
||||
}
|
||||
|
||||
return appReducers(state, action);
|
||||
}
|
||||
|
||||
export const shareFormsActions = {
|
||||
alert: alertForm.actions,
|
||||
newsletter: alertForm.actions,
|
||||
recipient: recipientForm.actions,
|
||||
group: groupForm.actions
|
||||
};
|
||||
|
||||
export const shareTablesActions = {
|
||||
[NOTIFICATION_TABLES.MY_EMAILS]: myEmailsTable.actions,
|
||||
[NOTIFICATION_TABLES.PUBLISHED]: publishedEmailsTable.actions,
|
||||
[RECEIVER_TABLES.RECIPIENTS]: recipientsTable.actions,
|
||||
[RECEIVER_TABLES.GROUPS]: groupsTable.actions,
|
||||
emails: emailsTable.actions,
|
||||
emailFilters: emailFiltersTable.actions,
|
||||
receiverForm: {
|
||||
[RECIPIENT_FORM_TABLES.GROUPS]: receiverGroupsTable.actions,
|
||||
[RECIPIENT_FORM_TABLES.SUBSCRIPTIONS]: receiverSubscriptionsTable.actions,
|
||||
[RECIPIENT_FORM_TABLES.EMAIL_HISTORY]: emailHistoryTable.actions,
|
||||
[GROUP_FORM_TABLES.RECIPIENTS]: receiverRecipientsTable.actions
|
||||
}
|
||||
};
|
||||
|
||||
export const rootActions = Object.assign(
|
||||
{},
|
||||
auth.actions,
|
||||
alerts.actions,
|
||||
base.actions,
|
||||
registerActions,
|
||||
sidebarActions,
|
||||
searchActions,
|
||||
analyzeActions,
|
||||
searchByFiltersActions,
|
||||
sourcesStateActions,
|
||||
shareTabsActions,
|
||||
shareFormsCommonActions,
|
||||
themes.actions,
|
||||
themeActions,
|
||||
articleActions,
|
||||
exportFeedsActions,
|
||||
dashboards.actions,
|
||||
{ shareTables: shareTablesActions },
|
||||
{ shareForms: shareFormsActions }
|
||||
);
|
||||
Reference in New Issue
Block a user