UNPKG

@curvenote/cli

Version:
89 lines (88 loc) 2.29 kB
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, });