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,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); });
});
}

View File

@@ -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 };
},
})

View File

@@ -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;
};

View File

@@ -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',
};