Files
cartodb/lib/assets/javascripts/new-dashboard/store/modules/recent-content/index.js
2020-06-15 10:58:47 +08:00

68 lines
1.8 KiB
JavaScript

import { defaultParams as filtersDefaultParams } from 'new-dashboard/core/configuration/filters';
import toObject from 'new-dashboard/utils/to-object';
import * as VisualizationActions from '../../actions/visualizations';
import * as VisualizationMutations from '../../mutations/visualizations';
const recentContent = {
namespaced: true,
state: {
isFetching: false,
isErrored: false,
error: {},
list: {},
metadata: {
total_entries: 0
}
},
getters: {
hasRecentContent (state) {
return state.metadata.total_entries > 0;
}
},
mutations: {
setFetchingState: VisualizationMutations.setFetchingState,
setRequestError: VisualizationMutations.setRequestError,
updateNumberLikes: VisualizationMutations.updateNumberLikes,
updateVisualization: VisualizationMutations.updateVisualization,
setRecentContent (state, recentContent) {
state.list = toObject(recentContent.visualizations, 'id');
state.metadata = { total_entries: recentContent.total_entries };
state.isFetching = false;
}
},
actions: {
like: VisualizationActions.like,
deleteLike: VisualizationActions.deleteLike,
updateVisualization: VisualizationActions.updateVisualization,
fetch (context) {
context.commit('setFetchingState');
const params = {
...filtersDefaultParams,
order: 'updated_at',
order_direction: 'desc',
types: 'table,derived',
per_page: 3,
page: 1
};
context.rootState.client.getVisualization('',
params,
function (err, _, data) {
if (err) {
context.commit('setRequestError', err);
return;
}
context.commit('setRecentContent', data);
}
);
}
}
};
export default recentContent;