mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-17 05:10:31 +00:00
feat: fix accounts issue.
This commit is contained in:
@@ -1,10 +1,19 @@
|
||||
import { createSelector } from 'reselect';
|
||||
import { pickItemsFromIds } from 'store/selectors';
|
||||
|
||||
export const getAccountsItems = (state, viewId) => {
|
||||
const accountsView = state.accounts.views[viewId || -1];
|
||||
const accountsItems = state.accounts.items;
|
||||
const accountsViewsSelector = (state) => state.accounts.views;
|
||||
const accountsDataSelector = (state) => state.accounts.items;
|
||||
const accountsCurrentViewSelector = (state) => state.accounts.currentViewId;
|
||||
|
||||
return typeof accountsView === 'object'
|
||||
? pickItemsFromIds(accountsItems, accountsView.ids) || []
|
||||
: [];
|
||||
};
|
||||
export const getAccountsItems = createSelector(
|
||||
accountsViewsSelector,
|
||||
accountsDataSelector,
|
||||
accountsCurrentViewSelector,
|
||||
(accountsViews, accountsItems, viewId) => {
|
||||
const accountsView = accountsViews[viewId || -1];
|
||||
|
||||
return typeof accountsView === 'object'
|
||||
? pickItemsFromIds(accountsItems, accountsView.ids) || []
|
||||
: [];
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,4 +1,14 @@
|
||||
// @flow
|
||||
import { createSelector } from 'reselect';
|
||||
|
||||
const currenciesItemsSelector = state => state.currencies.data;
|
||||
|
||||
export const getCurrenciesList = createSelector(
|
||||
currenciesItemsSelector,
|
||||
(currencies) => {
|
||||
return Object.values(currencies);
|
||||
}
|
||||
);
|
||||
|
||||
export const getCurrencyById = (currencies: Object, id: Integer) => {
|
||||
return Object.values(currencies).find(c => c.id == id) || null;
|
||||
|
||||
@@ -1,14 +1,24 @@
|
||||
import {pickItemsFromIds} from 'store/selectors';
|
||||
import {getResourceColumn } from 'store/resources/resources.reducer';
|
||||
import { createSelector } from 'reselect';
|
||||
import { pickItemsFromIds } from 'store/selectors';
|
||||
import { getResourceColumn } from 'store/resources/resources.reducer';
|
||||
|
||||
export const getResourceViews = (state, resourceName) => {
|
||||
const resourceViewsIds = state.views.resourceViews[resourceName] || [];
|
||||
return pickItemsFromIds(state.views.views, resourceViewsIds);
|
||||
};
|
||||
const resourceViewsIdsSelector = (state, props, resourceName) =>
|
||||
state.views.resourceViews[resourceName] || [];
|
||||
|
||||
const viewsSelector = (state) => state.views.views;
|
||||
const viewByIdSelector = (state, props) => state.views.viewsMeta[props.viewId] || {};
|
||||
|
||||
export const getResourceViews = createSelector(
|
||||
resourceViewsIdsSelector,
|
||||
viewsSelector,
|
||||
(resourceViewsIds, views) => {
|
||||
return pickItemsFromIds(views, resourceViewsIds);
|
||||
},
|
||||
);
|
||||
|
||||
export const getViewMeta = (state, viewId) => {
|
||||
const view = { ...state.views.viewsMeta[viewId] } || {};
|
||||
|
||||
|
||||
if (view.columns) {
|
||||
view.columns = view.columns.map((column) => {
|
||||
return {
|
||||
@@ -24,6 +34,7 @@ export const getViewItem = (state, viewId) => {
|
||||
};
|
||||
|
||||
export const getViewPages = (resourceViews, viewId) => {
|
||||
return (typeof resourceViews[viewId] === 'undefined') ?
|
||||
{} : resourceViews[viewId].pages;
|
||||
};
|
||||
return typeof resourceViews[viewId] === 'undefined'
|
||||
? {}
|
||||
: resourceViews[viewId].pages;
|
||||
};
|
||||
|
||||
@@ -1,10 +1,19 @@
|
||||
import { createSelector } from 'reselect';
|
||||
import { pickItemsFromIds } from 'store/selectors';
|
||||
export const getCustomersItems = (state, viewId) => {
|
||||
|
||||
const customersView = state.customers.views[viewId || -1];
|
||||
const customersItems = state.customers.items;
|
||||
const customersViewsSelector = state => state.customers.views;
|
||||
const customersItemsSelector = state => state.customers.items;
|
||||
const customersCurrentViewSelector = state => state.customers.currentViewId;
|
||||
|
||||
return typeof customersView === 'object'
|
||||
? pickItemsFromIds(customersItems, customersView.ids) || []
|
||||
: [];
|
||||
};
|
||||
export const getCustomersItems = createSelector(
|
||||
customersViewsSelector,
|
||||
customersItemsSelector,
|
||||
customersCurrentViewSelector,
|
||||
(customersViews, customersItems, currentViewId) => {
|
||||
const customersView = customersViews[currentViewId || -1];
|
||||
|
||||
return (typeof customersView === 'object')
|
||||
? pickItemsFromIds(customersItems, customersView.ids) || []
|
||||
: [];
|
||||
},
|
||||
);
|
||||
18
client/src/store/dashboard/dashboard.selectors.js
Normal file
18
client/src/store/dashboard/dashboard.selectors.js
Normal file
@@ -0,0 +1,18 @@
|
||||
import { createSelector } from "@reduxjs/toolkit";
|
||||
|
||||
|
||||
const dialogByNameSelector = (state, props) => state.dashboard.dialogs[props.name];
|
||||
|
||||
export const isDialogOpen = createSelector(
|
||||
dialogByNameSelector,
|
||||
(dialog) => {
|
||||
return dialog && dialog.isOpen;
|
||||
},
|
||||
);
|
||||
|
||||
export const getDialogPayload = createSelector(
|
||||
dialogByNameSelector,
|
||||
(dialog) => {
|
||||
return dialog?.payload;
|
||||
},
|
||||
);
|
||||
@@ -1,10 +1,19 @@
|
||||
import { createSelector } from '@reduxjs/toolkit';
|
||||
import { pickItemsFromIds } from 'store/selectors';
|
||||
|
||||
export const getExpensesItems = (state, viewId) => {
|
||||
const accountsView = state.expenses.views[viewId || -1];
|
||||
const accountsItems = state.expenses.items;
|
||||
const expensesViewsSelector = state => state.expenses.views;
|
||||
const expensesItemsSelector = state => state.expenses.items;
|
||||
const expensesCurrentViewSelector = state => state.expenses.currentViewId;
|
||||
|
||||
return typeof accountsView === 'object'
|
||||
? pickItemsFromIds(accountsItems, accountsView.ids) || []
|
||||
: [];
|
||||
};
|
||||
export const getExpensesItems = createSelector(
|
||||
expensesViewsSelector,
|
||||
expensesItemsSelector,
|
||||
expensesCurrentViewSelector,
|
||||
(expensesViews, expensesItems, currentViewId) => {
|
||||
const expensesView = expensesViews[currentViewId || -1];
|
||||
|
||||
return (typeof expensesView === 'object')
|
||||
? (pickItemsFromIds(expensesItems, expensesView.ids) || [])
|
||||
: [];
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { createReducer } from "@reduxjs/toolkit";
|
||||
import { createSelector } from 'reselect';
|
||||
import t from 'store/types';
|
||||
import { pickItemsFromIds } from 'store/selectors'
|
||||
|
||||
@@ -61,17 +62,23 @@ export default createReducer(initialState, {
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
const resourceFieldsIdsSelector = (state, props) => state.resources.resourceFields[props.resourceName];
|
||||
const resourceFieldsItemsSelector = (state) => state.resources.fields;
|
||||
|
||||
/**
|
||||
* Retrieve resource fields of the given resource slug.
|
||||
* @param {Object} state
|
||||
* @param {String} resourceSlug
|
||||
* @return {Array}
|
||||
*/
|
||||
export const getResourceFields = (state, resourceSlug) => {
|
||||
const resourceIds = state.resources.resourceFields[resourceSlug];
|
||||
const items = state.resources.fields;
|
||||
return pickItemsFromIds(items, resourceIds);
|
||||
};
|
||||
export const getResourceFields = createSelector(
|
||||
resourceFieldsIdsSelector,
|
||||
resourceFieldsItemsSelector,
|
||||
(fieldsIds, fieldsItems) => {
|
||||
return pickItemsFromIds(fieldsItems, fieldsIds);
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* Retrieve resource columns of the given resource slug.
|
||||
|
||||
Reference in New Issue
Block a user