@curvenote/cli
Version:
CLI Client library for Curvenote
89 lines (88 loc) • 2.29 kB
JavaScript
import { createSlice } from '@reduxjs/toolkit';
import { combineReducers } from 'redux';
import { blockIdToString, versionIdToString, draftIdToString } from '@curvenote/blocks';
export const users = createSlice({
name: 'usersApi',
initialState: {},
reducers: {
receive(state, action) {
state[action.payload.id] = action.payload;
},
},
});
export const teams = createSlice({
name: 'teamsApi',
initialState: {},
reducers: {
receive(state, action) {
state[action.payload.id] = action.payload;
},
},
});
export const projects = createSlice({
name: 'projectsApi',
initialState: {},
reducers: {
receive(state, action) {
state[action.payload.id] = action.payload;
},
},
});
export const siteconfigs = createSlice({
name: 'siteconfigsApi',
initialState: {},
reducers: {
receive(state, action) {
state[action.payload.id] = action.payload;
},
},
});
export const blocks = createSlice({
name: 'blocksApi',
initialState: {},
reducers: {
receive(state, action) {
const key = blockIdToString(action.payload.id);
state[key] = action.payload;
},
},
});
export const versions = createSlice({
name: 'versionsApi',
initialState: {},
reducers: {
receive(state, action) {
const key = versionIdToString(action.payload.id);
state[key] = action.payload;
},
},
});
export const drafts = createSlice({
name: 'draftsApi',
initialState: {},
reducers: {
receive(state, action) {
const key = draftIdToString(action.payload.id);
state[key] = action.payload;
},
},
});
export const templates = createSlice({
name: 'templatesApi',
initialState: {},
reducers: {
receive(state, action) {
state[action.payload.id] = action.payload;
},
},
});
export const apiReducer = combineReducers({
users: users.reducer,
teams: teams.reducer,
projects: projects.reducer,
siteconfigs: siteconfigs.reducer,
blocks: blocks.reducer,
versions: versions.reducer,
drafts: drafts.reducer,
templates: templates.reducer,
});