re-structure to monorepo.

This commit is contained in:
a.bouhuolia
2023-02-03 01:02:31 +02:00
parent 8242ec64ba
commit 7a0a13f9d5
10400 changed files with 46966 additions and 17223 deletions

View File

@@ -0,0 +1,127 @@
// @ts-nocheck
import t from '@/store/types';
export function dashboardPageTitle(pageTitle) {
return {
type: t.CHANGE_DASHBOARD_PAGE_TITLE,
pageTitle,
};
}
export function dashboardPageHint(pageHint) {
return {
type: t.CHANGE_DASHBOARD_PAGE_HINT,
pageHint,
};
}
export function openDialog(name, payload) {
return {
type: t.OPEN_DIALOG,
name: name,
payload: payload,
};
}
export function closeDialog(name, payload) {
return {
type: t.CLOSE_DIALOG,
name: name,
payload: payload,
};
}
export function openAlert(name, payload) {
return {
type: t.OPEN_ALERT,
name,
payload,
};
}
export function closeAlert(name, payload) {
return {
type: t.CLOSE_ALERT,
name,
payload,
};
}
export function openDrawer(name, payload) {
return {
type: t.OPEN_DRAWER,
name,
payload,
};
}
export function closeDrawer(name, payload) {
return {
type: t.CLOSE_DRAWER,
name,
payload,
};
}
/**
* Toggles the sidebar expend.
*/
export function toggleExpendSidebar(toggle) {
return {
type: t.SIDEBAR_EXPEND_TOGGLE,
payload: { toggle },
};
}
export function appIsLoading(toggle) {
return {
type: t.APP_IS_LOADING,
payload: { isLoading: toggle },
};
}
export function appIntlIsLoading(toggle) {
return {
type: t.APP_INTL_IS_LOADING,
payload: { isLoading: toggle },
};
}
/**
* Splash start loading.
*/
export function splashStartLoading() {
return {
type: t.SPLASH_START_LOADING,
};
}
/**
* Splash stop loading.
*/
export function splashStopLoading() {
return {
type: t.SPLASH_STOP_LOADING,
};
}
export const setFeatureDashboardMeta = ({ features }) => {
return {
type: t.SET_FEATURE_DASHBOARD_META,
payload: {
features,
},
};
};
export function openSidebarSubmenu({ submenuId }) {
return {
type: t.SIDEBAR_SUBMENU_OPEN,
payload: { submenuId },
};
}
export function closeSidebarSubmenu() {
return {
type: t.SIDEBAR_SUBMENU_CLOSE,
};
}

View File

@@ -0,0 +1,158 @@
// @ts-nocheck
import { createReducer } from '@reduxjs/toolkit';
import { isUndefined, isNumber } from 'lodash';
import t from '@/store/types';
import { persistReducer, purgeStoredState } from 'redux-persist';
import storage from 'redux-persist/lib/storage';
const initialState = {
pageTitle: '',
pageSubtitle: '',
pageHint: '',
preferencesPageTitle: '',
sidebarExpended: true,
dialogs: {},
alerts: {},
drawers: {},
topbarEditViewId: null,
requestsLoading: 0,
backLink: false,
splashScreenLoading: null,
appIsLoading: true,
appIntlIsLoading: true,
sidebarSubmenu: { isOpen: false, submenuId: null },
features: {},
};
const STORAGE_KEY = 'bigcapital:dashboard';
const CONFIG = {
key: STORAGE_KEY,
whitelist: [],
storage,
};
const reducerInstance = createReducer(initialState, {
[t.CHANGE_DASHBOARD_PAGE_TITLE]: (state, action) => {
state.pageTitle = action.pageTitle;
},
[t.ALTER_DASHBOARD_PAGE_SUBTITLE]: (state, action) => {
state.pageSubtitle = action.pageSubtitle;
},
[t.CHANGE_DASHBOARD_PAGE_HINT]: (state, action) => {
state.pageHint = action.payload.pageHint;
},
[t.CHANGE_PREFERENCES_PAGE_TITLE]: (state, action) => {
state.preferencesPageTitle = action.pageTitle;
},
[t.OPEN_DIALOG]: (state, action) => {
state.dialogs[action.name] = {
isOpen: true,
payload: action.payload || {},
};
},
[t.CLOSE_DIALOG]: (state, action) => {
state.dialogs[action.name] = {
...state.dialogs[action.name],
isOpen: false,
};
},
[t.OPEN_ALERT]: (state, action) => {
state.alerts[action.name] = {
isOpen: true,
payload: action.payload || {},
};
},
[t.CLOSE_ALERT]: (state, action) => {
state.alerts[action.name] = {
...state.alerts[action.name],
isOpen: false,
};
},
[t.OPEN_DRAWER]: (state, action) => {
state.drawers[action.name] = {
isOpen: true,
payload: action.payload || {},
};
},
[t.CLOSE_DRAWER]: (state, action) => {
state.drawers[action.name] = {
...state.drawers[action.name],
isOpen: false,
};
},
[t.CLOSE_ALL_DIALOGS]: (state, action) => {},
[t.SET_TOPBAR_EDIT_VIEW]: (state, action) => {
state.topbarEditViewId = action.id;
},
[t.SIDEBAR_EXPEND_TOGGLE]: (state, action) => {
const { toggle } = action.payload;
state.sidebarExpended = isUndefined(toggle)
? !state.sidebarExpended
: !!toggle;
},
[t.SET_DASHBOARD_BACK_LINK]: (state, action) => {
const { backLink } = action.payload;
state.backLink = backLink;
},
[t.SPLASH_START_LOADING]: (state) => {
if (isNumber(state.splashScreenLoading)) {
state.splashScreenLoading += 1;
} else {
state.splashScreenLoading = 1;
}
},
[t.SET_FEATURE_DASHBOARD_META]: (state, action) => {
const { features } = action.payload;
const _data = {};
features.forEach((feature) => {
_data[feature.name] = feature.is_accessible;
});
state.features = _data;
},
[t.SPLASH_STOP_LOADING]: (state) => {
state.splashScreenLoading -= 1;
state.splashScreenLoading = Math.max(state.splashScreenLoading, 0);
},
[t.SIDEBAR_SUBMENU_OPEN]: (state, action) => {
state.sidebarSubmenu.isOpen = true;
state.sidebarSubmenu.submenuId = action.payload.submenuId;
},
[t.SIDEBAR_SUBMENU_CLOSE]: (state, action) => {
state.sidebarSubmenu.isOpen = false;
state.sidebarSubmenu.submenuId = null;
},
[t.RESET]: () => {
purgeStoredState(CONFIG);
},
});
export default persistReducer(CONFIG, reducerInstance);
export const getDialogPayload = (state, dialogName) => {
return typeof state.dashboard.dialogs[dialogName] !== 'undefined'
? state.dashboard.dialogs[dialogName].payload
: {};
};
export const getDialogActiveStatus = (state, dialogName) => {
return true;
};

View File

@@ -0,0 +1,50 @@
// @ts-nocheck
import { createSelector } from '@reduxjs/toolkit';
const dialogByNameSelector = (state, props) =>
state.dashboard.dialogs?.[props.dialogName];
export const isDialogOpenFactory = () =>
createSelector(dialogByNameSelector, (dialog) => {
return dialog && dialog.isOpen;
});
export const getDialogPayloadFactory = () =>
createSelector(dialogByNameSelector, (dialog) => {
return { ...dialog?.payload };
});
const alertByNameSelector = (state, props) =>
state.dashboard.alerts?.[props.name];
export const isAlertOpenFactory = () =>
createSelector(alertByNameSelector, (alert) => {
return alert && alert.isOpen;
});
export const getAlertPayloadFactory = () =>
createSelector(alertByNameSelector, (alert) => {
return { ...alert?.payload };
});
const drawerByNameSelector = (state, props) =>
state.dashboard.drawers?.[props.name];
export const isDrawerOpenFactory = () =>
createSelector(drawerByNameSelector, (drawer) => {
return drawer && drawer.isOpen;
});
export const getDrawerPayloadFactory = () =>
createSelector(drawerByNameSelector, (drawer) => {
return { ...drawer?.payload };
});
const featuresSelector = (state, props) => {
return state.dashboard.features;
};
export const getDashboardFeaturesSelector = () =>
createSelector(featuresSelector, (features) => {
return features;
});

View File

@@ -0,0 +1,24 @@
// @ts-nocheck
export default {
OPEN_DIALOG: 'OPEN_DIALOG',
CLOSE_DIALOG: 'CLOSE_DIALOG',
OPEN_ALERT: 'OPEN_ALERT',
CLOSE_ALERT: 'CLOSE_ALERT',
CLOSE_ALL_DIALOGS: 'CLOSE_ALL_DIALOGS',
CLOSE_ALL_ALERTS: 'CLOSE_ALL_ALERTS',
OPEN_DRAWER: 'OPEN_DRAWER',
CLOSE_DRAWER: 'CLOSE_DRAWER',
CHANGE_DASHBOARD_PAGE_TITLE: 'CHANGE_DASHBOARD_PAGE_TITLE',
CHANGE_DASHBOARD_PAGE_HINT: 'CHANGE_DASHBOARD_PAGE_HINT',
CHANGE_PREFERENCES_PAGE_TITLE: 'CHANGE_PREFERENCES_PAGE_TITLE',
ALTER_DASHBOARD_PAGE_SUBTITLE: 'ALTER_DASHBOARD_PAGE_SUBTITLE',
SET_TOPBAR_EDIT_VIEW: 'SET_TOPBAR_EDIT_VIEW',
SIDEBAR_EXPEND_TOGGLE: 'SIDEBAR_EXPEND_TOGGLE',
SIDEBAR_SUBMENU_OPEN: 'SIDEBAR_SUBMENU_OPEN',
SIDEBAR_SUBMENU_CLOSE: 'SIDEBAR_SUBMENU_CLOSE',
SIDEBAR_SUBMENU_TOGGLE: 'SIDEBAR_SUBMENU_TOGGLE',
SET_DASHBOARD_BACK_LINK: 'SET_DASHBOARD_BACK_LINK',
SPLASH_START_LOADING: 'SPLASH_START_LOADING',
SPLASH_STOP_LOADING: 'SPLASH_STOP_LOADING',
SET_FEATURE_DASHBOARD_META: 'SET_FEATURE_DASHBOARD_META',
};