mirror of
https://github.com/muerwre/orchidmap-front.git
synced 2025-04-25 11:06:40 +07:00
providers: initial
This commit is contained in:
parent
b85141046d
commit
552e3effb8
16 changed files with 133 additions and 49 deletions
|
@ -9,7 +9,7 @@ import { userSaga } from '$redux/user/sagas';
|
|||
|
||||
const userPersistConfig = {
|
||||
key: 'user',
|
||||
whitelist: ['user', 'logo'],
|
||||
whitelist: ['user', 'logo', 'provider'],
|
||||
storage,
|
||||
};
|
||||
|
||||
|
|
|
@ -38,3 +38,4 @@ export const setRenderer = payload => ({ type: ACTIONS.SET_RENDERER, payload });
|
|||
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 });
|
||||
|
|
|
@ -36,4 +36,6 @@ export const ACTIONS = {
|
|||
SET_RENDERER: 'SET_RENDERER',
|
||||
TAKE_A_SHOT: 'TAKE_A_SHOT',
|
||||
CROP_A_SHOT: 'CROP_A_SHOT',
|
||||
|
||||
SET_PROVIDER: 'SET_PROVIDER',
|
||||
};
|
||||
|
|
|
@ -4,6 +4,7 @@ import { DEFAULT_USER } from '$constants/auth';
|
|||
import { MODES } from '$constants/modes';
|
||||
import { DEFAULT_LOGO } from '$constants/logos';
|
||||
import { TIPS } from '$constants/tips';
|
||||
import { DEFAULT_PROVIDER } from '$constants/providers';
|
||||
|
||||
const getEstimated = distance => {
|
||||
const time = (distance && (distance / 15)) || 0;
|
||||
|
@ -70,6 +71,8 @@ const setRenderer = (state, { payload }) => ({
|
|||
renderer: { ...state.renderer, ...payload }
|
||||
});
|
||||
|
||||
const setProvider = (state, { provider }) => ({ ...state, provider });
|
||||
|
||||
const HANDLERS = {
|
||||
[ACTIONS.SET_USER]: setUser,
|
||||
[ACTIONS.SET_EDITING]: setEditing,
|
||||
|
@ -91,6 +94,8 @@ const HANDLERS = {
|
|||
[ACTIONS.SHOW_RENDERER]: showRenderer,
|
||||
[ACTIONS.HIDE_RENDERER]: hideRenderer,
|
||||
[ACTIONS.SET_RENDERER]: setRenderer,
|
||||
|
||||
[ACTIONS.SET_PROVIDER]: setProvider,
|
||||
};
|
||||
|
||||
export const INITIAL_STATE = {
|
||||
|
@ -105,6 +110,7 @@ export const INITIAL_STATE = {
|
|||
title: '',
|
||||
address: '',
|
||||
changed: false,
|
||||
provider: DEFAULT_PROVIDER,
|
||||
|
||||
save_error: '',
|
||||
save_finished: false,
|
||||
|
|
|
@ -27,6 +27,7 @@ import {
|
|||
imageFetcher
|
||||
} from '$utils/renderer';
|
||||
import { LOGOS } from '$constants/logos';
|
||||
import { DEFAULT_PROVIDER } from '$constants/providers';
|
||||
|
||||
const getUser = state => (state.user.user);
|
||||
const getState = state => (state.user);
|
||||
|
@ -46,11 +47,12 @@ function* generateGuestSaga() {
|
|||
}
|
||||
|
||||
function* startEmptyEditorSaga() {
|
||||
const { id, random_url } = yield select(getUser);
|
||||
const { id, random_url, provider = DEFAULT_PROVIDER } = yield select(getUser);
|
||||
|
||||
pushPath(`/${random_url}/edit`);
|
||||
|
||||
editor.owner = id;
|
||||
editor.setProvider(provider);
|
||||
editor.startEditing();
|
||||
|
||||
yield put(setChanged(false));
|
||||
|
@ -78,7 +80,7 @@ function* stopEditingSaga() {
|
|||
|
||||
yield put(setChanged(false));
|
||||
|
||||
yield put(setEditing(editor.hasEmptyHistory())); // don't close editor if no previous map
|
||||
yield put(setEditing(editor.hasEmptyHistory)); // don't close editor if no previous map
|
||||
}
|
||||
|
||||
function* mapInitSaga() {
|
||||
|
@ -193,9 +195,7 @@ function* clearSaga({ type }) {
|
|||
}
|
||||
|
||||
function* sendSaveRequestSaga({ title, address, force }) {
|
||||
if (editor.isEmpty()) {
|
||||
return yield put(setSaveError(TIPS.SAVE_EMPTY));
|
||||
}
|
||||
if (editor.isEmpty) return yield put(setSaveError(TIPS.SAVE_EMPTY));
|
||||
|
||||
const { route, stickers } = editor.dumpData();
|
||||
const { id, token } = yield select(getUser);
|
||||
|
@ -239,6 +239,7 @@ function* getRenderData() {
|
|||
|
||||
const images = yield fetchImages(ctx, geometry);
|
||||
yield composeImages({ geometry, images, ctx });
|
||||
|
||||
yield composePoly({ points, ctx });
|
||||
|
||||
return yield canvas.toDataURL('image/jpeg');
|
||||
|
@ -254,7 +255,6 @@ function* takeAShotSaga() {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
function* getCropData({
|
||||
x, y, width, height
|
||||
}) {
|
||||
|
@ -285,6 +285,10 @@ function* cropAShotSaga(params) {
|
|||
return yield put(hideRenderer());
|
||||
}
|
||||
|
||||
function setProviderSaga({ provider }) {
|
||||
editor.setProvider(provider);
|
||||
}
|
||||
|
||||
export function* userSaga() {
|
||||
// ASYNCHRONOUS!!! :-)
|
||||
|
||||
|
@ -311,4 +315,6 @@ export function* userSaga() {
|
|||
yield takeLatest(ACTIONS.SET_SAVE_SUCCESS, setSaveSuccessSaga);
|
||||
yield takeLatest(ACTIONS.TAKE_A_SHOT, takeAShotSaga);
|
||||
yield takeLatest(ACTIONS.CROP_A_SHOT, cropAShotSaga);
|
||||
|
||||
yield takeEvery(ACTIONS.SET_PROVIDER, setProviderSaga);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue