save dialog shader

This commit is contained in:
muerwre 2019-02-15 15:42:20 +07:00
parent df15cddb27
commit 492327897d
7 changed files with 66 additions and 3 deletions

View file

@ -17,7 +17,7 @@ import {
setSaveError,
setSaveOverwrite, setSaveSuccess, setTitle,
searchSetTab,
setUser, setDialog, setPublic, setAddressOrigin, setProvider, changeProvider, openMapDialog,
setUser, setDialog, setPublic, setAddressOrigin, setProvider, changeProvider, openMapDialog, setSaveLoading,
} from '$redux/user/actions';
import { getUrlData, parseQuery, pushLoaderState, pushNetworkInitError, pushPath, replacePath } from '$utils/history';
import { editor } from '$modules/Editor';
@ -285,6 +285,8 @@ function* sendSaveRequestSaga({
const { logo, distance } = yield select(getState);
const { id, token } = yield select(getUser);
yield put(setSaveLoading(true));
const { result, timeout, cancel } = yield race({
result: postMap({
id, token, route, stickers, title, force, address, logo, distance, provider, is_public
@ -293,6 +295,8 @@ function* sendSaveRequestSaga({
cancel: take(ACTIONS.RESET_SAVE_DIALOG),
});
yield put(setSaveLoading(false));
if (cancel) return yield put(setMode(MODES.NONE));
if (result && result.mode === 'overwriting') return yield put(setSaveOverwrite());
if (result && result.mode === 'exists') return yield put(setSaveError(TIPS.SAVE_EXISTS));