fixed some provider issues

This commit is contained in:
muerwre 2019-02-07 16:17:32 +07:00
parent d46236672d
commit 8a90c50352
6 changed files with 30 additions and 23 deletions

View file

@ -5,7 +5,7 @@ import classnames from 'classnames';
import { MODES } from '$constants/modes';
type Props = {
setProvider: Function,
changeProvider: Function,
setMode: Function,
provider: String,
};
@ -14,7 +14,7 @@ export class ProviderDialog extends React.Component<Props, void> {
closeDialog = () => this.props.setMode(MODES.NONE);
render() {
const { provider, setProvider } = this.props;
const { provider, changeProvider } = this.props;
return (
<div className="control-dialog top right control-dialog-provider">
@ -26,7 +26,7 @@ export class ProviderDialog extends React.Component<Props, void> {
style={{
backgroundImage: `url(${replaceProviderUrl(item, { x: 5980, y: 2589, zoom: 13 })})`,
}}
onClick={() => setProvider(item)}
onClick={() => changeProvider(item)}
key={PROVIDERS[item].name}
>
{

View file

@ -24,7 +24,7 @@ import {
stopEditing,
setEditing,
sendSaveRequest,
setProvider,
changeProvider,
} from '$redux/user/actions';
import { ProviderDialog } from '$components/dialogs/ProviderDialog';
import { ShotPrefetchDialog } from '$components/dialogs/ShotPrefetchDialog';
@ -70,7 +70,7 @@ const mapDispatchToProps = dispatch => bindActionCreators({
setEditing,
setMode,
sendSaveRequest,
setProvider,
changeProvider,
}, dispatch);
export const EditorDialog = connect(

View file

@ -9,6 +9,7 @@ import { DEFAULT_LOGO, LOGOS } from '$constants/logos';
import { getUrlData } from '$utils/history';
import { store } from '$redux/store';
import {
changeProvider,
resetSaveDialog,
setActiveSticker,
setAddress,
@ -16,7 +17,7 @@ import {
setDistance,
setLogo,
setMode,
setProvider, setPublic,
setPublic,
setRouterPoints,
setTitle,
} from '$redux/user/actions';
@ -99,6 +100,7 @@ export class Editor {
getUser = () => store.getState().user.user;
getMode = () => store.getState().user.mode;
getProvider = () => store.getState().user.provider;
getTitle = () => store.getState().user.title;
getEditing = () => store.getState().user.editing;
getChanged = () => store.getState().user.changed;
@ -316,10 +318,10 @@ export class Editor {
dumpData = () => ({
route: this.poly.dumpData(),
stickers: this.stickers.dumpData(),
provider: this.provider,
provider: this.getProvider(),
});
setProvider = provider => store.dispatch(setProvider(provider));
setProvider = provider => store.dispatch(changeProvider(provider));
get isEmpty() {
const { route, stickers } = this.dumpData();

View file

@ -41,6 +41,7 @@ export const takeAShot = () => ({ type: ACTIONS.TAKE_A_SHOT });
export const cropAShot = payload => ({ type: ACTIONS.CROP_A_SHOT, ...payload });
export const setProvider = provider => ({ type: ACTIONS.SET_PROVIDER, provider });
export const changeProvider = provider => ({ type: ACTIONS.CHANGE_PROVIDER, provider });
export const setDialog = dialog => ({ type: ACTIONS.SET_DIALOG, dialog });
export const setDialogActive = dialog_active => ({ type: ACTIONS.SET_DIALOG_ACTIVE, dialog_active });

View file

@ -42,6 +42,7 @@ export const ACTIONS = ({
CROP_A_SHOT: 'CROP_A_SHOT',
SET_PROVIDER: 'SET_PROVIDER',
CHANGE_PROVIDER: 'CHANGE_PROVIDER',
SET_DIALOG: 'SET_DIALOG',
SET_DIALOG_ACTIVE: 'SET_DIALOG_ACTIVE',

View file

@ -17,7 +17,7 @@ import {
setSaveError,
setSaveOverwrite, setSaveSuccess, setTitle,
searchSetTab,
setUser, setDialog, setPublic, setAddressOrigin,
setUser, setDialog, setPublic, setAddressOrigin, setProvider, changeProvider,
} from '$redux/user/actions';
import { getUrlData, parseQuery, pushLoaderState, pushNetworkInitError, pushPath, replacePath } from '$utils/history';
import { editor } from '$modules/Editor';
@ -34,7 +34,7 @@ import {
imageFetcher
} from '$utils/renderer';
import { LOGOS } from '$constants/logos';
import { DEFAULT_PROVIDER } from '$constants/providers';
import { DEFAULT_PROVIDER, PROVIDERS } from '$constants/providers';
import { DIALOGS } from '$constants/dialogs';
const getUser = state => (state.user.user);
@ -55,7 +55,7 @@ function* generateGuestSaga() {
}
function* startEmptyEditorSaga() {
const { id, random_url, provider = DEFAULT_PROVIDER } = yield select(getUser);
const { user: { id, random_url }, provider = DEFAULT_PROVIDER } = yield select(getState);
pushPath(`/${random_url}/edit`);
@ -111,11 +111,6 @@ function* loadMapSaga(path) {
return map;
}
function* iframeLoginVkSaga({ viewer_id, access_token, auth_key }) {
return yield console.log('GOT', { viewer_id, access_token, auth_key });
}
function* replaceAddressIfItsBusy(destination, original) {
if (original) {
yield put(setAddressOrigin(original));
@ -128,7 +123,10 @@ function* mapInitSaga() {
pushLoaderState(90);
const { path, mode, hash } = getUrlData();
const { user: { id } } = yield select(getState);
const { provider, user: { id } } = yield select(getState);
editor.map.setProvider(provider);
yield put(changeProvider(provider));
if (hash && /^#map/.test(hash)) {
const [, newUrl] = hash.match(/^#map[:/?!](.*)$/);
@ -382,13 +380,18 @@ function* cropAShotSaga(params) {
return yield put(hideRenderer());
}
function* setProviderSaga({ provider }) {
// editor.setProvider(provider);
editor.provider = provider;
editor.map.setProvider(provider);
function* changeProviderSaga({ provider }) {
const { provider: current_provider } = yield select(getState);
yield put(setProvider(provider));
if (current_provider === provider) return;
yield put(setChanged(true));
editor.provider = provider;
editor.map.setProvider(provider);
return put(setMode(MODES.NONE));
}
@ -559,13 +562,13 @@ export function* userSaga() {
yield takeLatest(ACTIONS.TAKE_A_SHOT, takeAShotSaga);
yield takeLatest(ACTIONS.CROP_A_SHOT, cropAShotSaga);
yield takeEvery(ACTIONS.SET_PROVIDER, setProviderSaga);
yield takeEvery(ACTIONS.CHANGE_PROVIDER, changeProviderSaga);
yield takeLatest(ACTIONS.LOCATION_CHANGED, locationChangeSaga);
yield takeLatest(ACTIONS.GOT_VK_USER, gotVkUserSaga);
yield takeLatest(ACTIONS.KEY_PRESSED, keyPressedSaga);
yield takeLatest(ACTIONS.IFRAME_LOGIN_VK, iframeLoginVkSaga);
// yield takeLatest(ACTIONS.IFRAME_LOGIN_VK, iframeLoginVkSaga);
yield takeLatest([
ACTIONS.SEARCH_SET_TITLE,