mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-16 04:40:32 +00:00
re-structure to monorepo.
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
// @ts-nocheck
|
||||
import ApiService from "services/ApiService";
|
||||
import t from '@/store/types';
|
||||
|
||||
export const submitView = ({ form }) => {
|
||||
return (dispatch) => ApiService.post('views', form);
|
||||
};
|
||||
|
||||
export const editView = ({ id, form }) => {
|
||||
return (dispatch) => ApiService.post(`views/${id}`, form);
|
||||
};
|
||||
|
||||
export const deleteView = ({ id }) => {
|
||||
return (dispatch) => ApiService.delete(`views/${id}`);
|
||||
};
|
||||
|
||||
export const fetchView = ({ id }) => {
|
||||
return (dispatch) => new Promise((resolve, reject) => {
|
||||
ApiService.get(`views/${id}`).then((response) => {
|
||||
dispatch({
|
||||
type: t.VIEW_META_SET,
|
||||
view: response.data.view,
|
||||
});
|
||||
resolve(response);
|
||||
}).catch(error => { reject(error); });
|
||||
});
|
||||
};
|
||||
|
||||
export const fetchResourceViews = ({ resourceSlug }) => {
|
||||
return (dispatch) => new Promise((resolve, reject) => {
|
||||
ApiService.get(`views/resource/${resourceSlug}`)
|
||||
.then((response) => {
|
||||
dispatch({
|
||||
type: t.RESOURCE_VIEWS_SET,
|
||||
resource: resourceSlug,
|
||||
views: response.data.views,
|
||||
});
|
||||
dispatch({
|
||||
type: t.VIEW_ITEMS_SET,
|
||||
views: response.data.views,
|
||||
});
|
||||
resolve(response);
|
||||
})
|
||||
.catch((error) => { reject(error); });
|
||||
});
|
||||
};
|
||||
|
||||
export const fetchViewResource = ({ id }) => {
|
||||
return (dispatch) => new Promise((resolve, reject) => {
|
||||
ApiService.get(`views/${id}/resource`).then((response) => {
|
||||
dispatch({
|
||||
type: t.RESOURCE_COLUMNS_SET,
|
||||
columns: response.data.resource_columns,
|
||||
resource_slug: response.data.resource_slug
|
||||
});
|
||||
dispatch({
|
||||
type: t.RESOURCE_FIELDS_SET,
|
||||
fields: response.data.resource_fields,
|
||||
resource_slug: response.data.resource_slug,
|
||||
});
|
||||
resolve(response);
|
||||
}).catch((error) => { reject(error); });
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
// @ts-nocheck
|
||||
import { createReducer } from "@reduxjs/toolkit";
|
||||
import t from '@/store/types';
|
||||
|
||||
const initialState = {
|
||||
views: {},
|
||||
resourceViews: {
|
||||
'accounts': [],
|
||||
'expenses': [],
|
||||
},
|
||||
viewsMeta: {},
|
||||
};
|
||||
|
||||
export default createReducer(initialState, {
|
||||
[t.VIEW_META_SET]: (state, action) => {
|
||||
state.viewsMeta[action.view.id] = action.view;
|
||||
},
|
||||
|
||||
[t.RESOURCE_VIEWS_SET]: (state, action) => {
|
||||
state.resourceViews[action.resource] = action.views.map(v => v.id);
|
||||
},
|
||||
|
||||
[t.VIEW_ITEMS_SET]: (state, action) => {
|
||||
const _views = {};
|
||||
|
||||
action.views.forEach((view) => {
|
||||
_views[view.id] = view;
|
||||
});
|
||||
state.views = { ...state.views, ..._views };
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,43 @@
|
||||
// @ts-nocheck
|
||||
import { createSelector } from 'reselect';
|
||||
import { pickItemsFromIds } from '@/store/selectors';
|
||||
import { getResourceColumn } from '@/store/resources/resources.reducer';
|
||||
|
||||
const resourceViewsIdsSelector = (state, props, resourceName) =>
|
||||
state.views.resourceViews[resourceName];
|
||||
|
||||
const viewsSelector = (state) => state.views.views;
|
||||
const viewByIdSelector = (state, props) => state.views.views[props.viewId];
|
||||
|
||||
const viewColumnsSelector = (state, props) => {
|
||||
};
|
||||
|
||||
export const getResourceViews = createSelector(
|
||||
resourceViewsIdsSelector,
|
||||
viewsSelector,
|
||||
(resourceViewsIds, views) => {
|
||||
return pickItemsFromIds(views, resourceViewsIds);
|
||||
},
|
||||
);
|
||||
|
||||
export const getViewMetaFactory = () => createSelector(
|
||||
viewByIdSelector,
|
||||
// viewColumnsSelector,
|
||||
(view, viewColumns) => {
|
||||
return view;
|
||||
}
|
||||
);
|
||||
|
||||
export const getViewItemFactory = () => createSelector(
|
||||
viewByIdSelector,
|
||||
// viewColumnsSelector,
|
||||
(view, viewColumns) => {
|
||||
return view;
|
||||
}
|
||||
);
|
||||
|
||||
export const getViewPages = (resourceViews, viewId) => {
|
||||
return typeof resourceViews[viewId] === 'undefined'
|
||||
? {}
|
||||
: resourceViews[viewId].pages;
|
||||
};
|
||||
@@ -0,0 +1,7 @@
|
||||
// @ts-nocheck
|
||||
|
||||
export default {
|
||||
VIEW_META_SET: 'VIEW_META_SET',
|
||||
VIEW_ITEMS_SET: 'VIEW_ITEMS_SET',
|
||||
RESOURCE_VIEWS_SET: 'RESOURCE_VIEWS_SET',
|
||||
};
|
||||
Reference in New Issue
Block a user