mirror of
https://github.com/strapi/strapi.git
synced 2025-10-12 08:36:40 +00:00
47 lines
997 B
JavaScript
47 lines
997 B
JavaScript
![]() |
import { takeLatest } from 'redux-saga';
|
||
|
import { fork, put } from 'redux-saga/effects';
|
||
|
import _ from 'lodash';
|
||
|
|
||
|
import {
|
||
|
loadedModels
|
||
|
} from './actions';
|
||
|
|
||
|
import {
|
||
|
LOAD_MODELS,
|
||
|
} from './constants';
|
||
|
|
||
|
export function* getModels() {
|
||
|
try {
|
||
|
const opts = {
|
||
|
method: 'GET',
|
||
|
mode: 'cors',
|
||
|
cache: 'default'
|
||
|
};
|
||
|
const response = yield fetch('http://localhost:1337/admin/api/models', opts);
|
||
|
const data = yield response.json();
|
||
|
|
||
|
yield put(loadedModels(data));
|
||
|
|
||
|
const leftMenuLinks = _.map(data, (model, key) => ({
|
||
|
label: model.globalId,
|
||
|
to: key,
|
||
|
}));
|
||
|
|
||
|
// Update the admin left menu links
|
||
|
window.Strapi.refresh('content-manager').leftMenuLinks(leftMenuLinks);
|
||
|
} catch (err) {
|
||
|
console.error(err);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Individual exports for testing
|
||
|
export function* defaultSaga() {
|
||
|
// yield takeLatest(LOAD_MODELS, getModels);
|
||
|
yield fork(takeLatest, LOAD_MODELS, getModels);
|
||
|
}
|
||
|
|
||
|
// All sagas to be loaded
|
||
|
export default [
|
||
|
defaultSaga,
|
||
|
];
|