summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src/redux/sagas/prefabs.js
blob: 3158a219122a23e193280ad6875d75b423e3dfec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import { call, put, select } from 'redux-saga/effects'
import { addToStore } from '../actions/objects'
import { addPrefab } from '../../api/prefabs'
import { getRackById } from './objects'

export function* onAddPrefab(action) {
    try {
        const currentRackId = yield select((state) => state.objects.tile[state.interactionLevel.tileId].rackId)
        const currentRackJson = yield getRackById(currentRackId, false)
        const prefab = yield call(addPrefab, { name: action.name, rack: currentRackJson })
        yield put(addToStore('prefab', prefab))
    } catch (error) {
        console.error(error)
    }
}