delete dialog

This commit is contained in:
muerwre 2018-08-24 17:48:42 +07:00
parent 21532ba240
commit cb3fabaf74
9 changed files with 85 additions and 29 deletions

View file

@ -3,11 +3,15 @@ import { MODES } from '$constants/modes';
import { RouterHelper } from '$components/router/RouterHelper'; import { RouterHelper } from '$components/router/RouterHelper';
import { StickersHelper } from '$components/stickers/StickersHelper'; import { StickersHelper } from '$components/stickers/StickersHelper';
import { TrashHelper } from '$components/trash/TrashHelper';
export const EditorDialog = ({ mode, routerPoints, editor, activeSticker }) => { export const EditorDialog = ({
mode, routerPoints, editor, activeSticker
}) => {
const showDialog = ( const showDialog = (
mode === MODES.ROUTER mode === MODES.ROUTER
|| (mode === MODES.STICKERS && !activeSticker) || (mode === MODES.STICKERS && !activeSticker)
|| mode === MODES.TRASH
); );
return ( return (
@ -15,6 +19,7 @@ export const EditorDialog = ({ mode, routerPoints, editor, activeSticker }) => {
<div id="control-dialog"> <div id="control-dialog">
{ mode === MODES.ROUTER && <RouterHelper routerPoints={routerPoints} editor={editor} /> } { mode === MODES.ROUTER && <RouterHelper routerPoints={routerPoints} editor={editor} /> }
{ mode === MODES.STICKERS && <StickersHelper editor={editor} /> } { mode === MODES.STICKERS && <StickersHelper editor={editor} /> }
{ mode === MODES.TRASH && <TrashHelper editor={editor} /> }
</div> </div>
); );
}; };

View file

@ -16,7 +16,7 @@ export class EditorPanel extends React.PureComponent {
startShotterMode = () => this.props.editor.changeMode(MODES.SHOTTER); startShotterMode = () => this.props.editor.changeMode(MODES.SHOTTER);
clearAll = () => this.props.editor.clearAll(); startTrashMode = () => this.props.editor.changeMode(MODES.TRASH);
render() { render() {
const { const {
@ -92,7 +92,7 @@ export class EditorPanel extends React.PureComponent {
<button <button
className={classnames({ active: mode === MODES.TRASH })} className={classnames({ active: mode === MODES.TRASH })}
onClick={this.clearAll} onClick={this.startTrashMode}
> >
<Icon icon="icon-trash" /> <Icon icon="icon-trash" />
</button> </button>

View file

@ -1,12 +1,12 @@
import React from 'react'; import React from 'react';
const noPoints = ({ cancelDrawing }) => ( const noPoints = ({ cancelDrawing }) => (
<div className="router-helper"> <div className="helper router-helper">
<div className="router-helper__text"> <div className="helper__text">
<div className="big white">Укажите на карте первую точку маршрута</div> <div className="big white">Укажите на карте первую точку маршрута</div>
<div className="small gray">Путь прокладывается по улицам, тротуарам и тропинкам</div> <div className="small gray">Путь прокладывается по улицам, тротуарам и тропинкам</div>
</div> </div>
<div className="router-helper__buttons"> <div className="helper__buttons">
<div className="button router-helper__button" onClick={cancelDrawing}> <div className="button router-helper__button" onClick={cancelDrawing}>
Отмена Отмена
</div> </div>
@ -15,12 +15,12 @@ const noPoints = ({ cancelDrawing }) => (
); );
const firstPoint = ({ cancelDrawing }) => ( const firstPoint = ({ cancelDrawing }) => (
<div className="router-helper"> <div className="helper router-helper">
<div className="router-helper__text"> <div className="helper__text">
<div className="big white">Укажите на карте конечную точку маршрута</div> <div className="big white">Укажите на карте конечную точку маршрута</div>
<div className="small gray"> Вы сможете добавить уточняющие точки</div> <div className="small gray"> Вы сможете добавить уточняющие точки</div>
</div> </div>
<div className="router-helper__buttons"> <div className="helper__buttons">
<div className="button router-helper__button" onClick={cancelDrawing}> <div className="button router-helper__button" onClick={cancelDrawing}>
Отмена Отмена
</div> </div>
@ -29,12 +29,12 @@ const firstPoint = ({ cancelDrawing }) => (
); );
const draggablePoints = ({ cancelDrawing, submitDrawing }) => ( const draggablePoints = ({ cancelDrawing, submitDrawing }) => (
<div className="router-helper"> <div className="helper router-helper">
<div className="router-helper__text"> <div className="helper__text">
<div className="big white">Продолжите маршрут, щелкая по карте</div> <div className="big white">Продолжите маршрут, щелкая по карте</div>
<div className="small gray">Потяните линию, чтобы указать промежуточные точки</div> <div className="small gray">Потяните линию, чтобы указать промежуточные точки</div>
</div> </div>
<div className="router-helper__buttons button-group"> <div className="helper__buttons button-group">
<div className="button button_red router-helper__button" onClick={cancelDrawing}> <div className="button button_red router-helper__button" onClick={cancelDrawing}>
Отмена Отмена
</div> </div>

View file

@ -6,7 +6,7 @@ import sprite from '$sprites/stickers.svg';
export class StickersHelper extends React.Component { export class StickersHelper extends React.Component {
render() { render() {
return ( return (
<div className="stickers-helper"> <div className="helper stickers-helper">
{ {
stickers.map(sticker => ( stickers.map(sticker => (
<div className="sticker-preview" key={sticker}> <div className="sticker-preview" key={sticker}>

View file

@ -0,0 +1,48 @@
import React from 'react';
import { MODES } from '$constants/modes';
export class TrashHelper extends React.Component {
clearPoly = () => {
this.props.editor.poly.clearAll();
this.props.editor.changeMode(MODES.NONE);
};
clearStickers = () => {
this.props.editor.stickers.clearAll();
this.props.editor.changeMode(MODES.NONE);
};
clearAll = () => {
this.props.editor.clearAll();
};
cancel = () => {
this.props.editor.changeMode(MODES.NONE);
};
render() {
return (
<div className="helper trash-helper">
<div className="helper__text">
<div className="big white">Уверены?</div>
<div className="small gray">Мы все удалим</div>
</div>
<div className="helper__buttons button-group">
<div className="button router-helper__button" onClick={this.clearStickers}>
Стикеры
</div>
<div className="button router-helper__button" onClick={this.clearPoly}>
Маршрут
</div>
<div className="button danger router-helper__button" onClick={this.clearAll}>
Очистить
</div>
<div className="button primary router-helper__button" onClick={this.cancel}>
Отмена
</div>
</div>
</div>
);
}
}

View file

@ -10,6 +10,7 @@
align-items: center; align-items: center;
cursor: pointer; cursor: pointer;
user-select: none; user-select: none;
box-shadow: inset rgba(100,100,100, 0.3) 1px 0, inset rgba(0,0,0, 0.1) -1px 0;
&.primary { &.primary {
background: #3c78db; background: #3c78db;

View file

@ -113,3 +113,21 @@
padding-bottom: 48px; padding-bottom: 48px;
box-shadow: inset rgba(255, 255, 255, 0.05) 1px 1px; box-shadow: inset rgba(255, 255, 255, 0.05) 1px 1px;
} }
.helper {
width: 500px;
padding: 10px;
font-weight: 200;
font-size: 14px;
display: flex;
}
.helper__text {
width: 100%;
}
.helper__buttons {
display: flex;
align-items: center;
}

View file

@ -19,18 +19,4 @@
} }
.router-helper { .router-helper {
width: 500px;
padding: 10px;
font-weight: 200;
font-size: 14px;
display: flex;
}
.router-helper__text {
width: 100%;
}
.router-helper__buttons {
display: flex;
align-items: center;
} }

View file

@ -101,8 +101,6 @@
} }
.stickers-helper { .stickers-helper {
width: 500px;
padding: 10px;
} }
.sticker-preview { .sticker-preview {