Example saga files
/*** @type: saga* name: updatedVideo*/import { LocalAction, viewItem } from "@metafox/framework";import { takeEvery } from "redux-saga/effects";function* updatedVideo({ payload: { id } }: LocalAction<{ id: string }>) {yield* viewItem("video", "video", id);}const sagas = [takeEvery("@updatedItem/video", updatedVideo)];export default sagas;
metafox build/start command collect all sagas file using annotation @type: saga
saga root pattern
Whenever a new saga file be added or removed, run yarn metafox reload
to bundle saga file again.
All sagas bundled at file ./app/src/bundle/produce.tsx
, example files
import coreSagaHandleActionFeedbackSaga from'@metafox/framework/sagas/handleActionFeedback';import CoreRequestSaga from'@metafox/framework/sagas/handleRequest';import sagaReloadEntitySaga from'@metafox/core/reducers/reloadEntity';import abortControllerSaga from'@metafox/core/sagas/abortController';import coreChooseThemeSaga from'@metafox/core/sagas/chooseTheme';import sagaCoreCloseDialogSaga from'@metafox/core/sagas/closeDialog';const sagas = [coreSagaHandleActionFeedbackSaga,CoreRequestSaga,sagaReloadEntitySaga,abortControllerSaga,coreChooseThemeSaga,sagaCoreCloseDialogSaga]export default function injector(config: any) {config.sagas=sagas;}