PromucFlow_constructor/app/client/src/sagas/ActionExecution/ResetWidgetActionSaga.ts

40 lines
1.2 KiB
TypeScript
Raw Normal View History

import { put, select } from "redux-saga/effects";
import { getWidgetByName } from "sagas/selectors";
import {
resetChildrenMetaProperty,
resetWidgetMetaProperty,
} from "actions/metaActions";
import AppsmithConsole from "utils/AppsmithConsole";
import { ResetWidgetDescription } from "entities/DataTree/actionTriggers";
import { TriggerMeta } from "sagas/ActionExecution/ActionExecutionSagas";
import { TriggerFailureError } from "sagas/ActionExecution/errorUtils";
export default function* resetWidgetActionSaga(
payload: ResetWidgetDescription["payload"],
triggerMeta: TriggerMeta,
) {
if (typeof payload.widgetName !== "string") {
throw new TriggerFailureError(
"widgetName needs to be a string",
triggerMeta,
);
}
const widget = yield select(getWidgetByName, payload.widgetName);
if (!widget) {
throw new TriggerFailureError(
`widget ${payload.widgetName} not found`,
triggerMeta,
);
}
yield put(resetWidgetMetaProperty(widget.widgetId));
if (payload.resetChildren) {
yield put(resetChildrenMetaProperty(widget.widgetId));
}
AppsmithConsole.info({
text: `resetWidget('${payload.widgetName}', ${payload.resetChildren}) was triggered`,
});
}