import React, { FC } from 'react'; import { Icon } from '~/components/panels/Icon'; import * as EDITOR_ACTIONS from '~/redux/editor/actions'; import classnames from 'classnames'; import { connect } from 'react-redux'; import { selectEditor, selectEditorRouter, selectEditorDirection } from '~/redux/editor/selectors'; import pick from 'ramda/es/pick'; import { IState } from '~/redux/store'; const noPoints = ({ editorRouterCancel, }: { editorRouterCancel: typeof EDITOR_ACTIONS.editorRouterCancel; }) => (
Укажите первую точку на карте
Отмена
); const firstPoint = ({ editorRouterCancel, }: { editorRouterCancel: typeof EDITOR_ACTIONS.editorRouterCancel; }) => (
УКАЖИТЕ СЛЕДУЮЩУЮ ТОЧКУ
Отмена
); const draggablePoints = ({ editorRouterCancel, editorRouterSubmit, }: { editorRouterCancel: typeof EDITOR_ACTIONS.editorRouterCancel; editorRouterSubmit: typeof EDITOR_ACTIONS.editorRouterSubmit; }) => (
Продолжайте маршрут
Отмена
Применить
); const mapStateToProps = (state: IState) => ({ router: selectEditorRouter(state), }); const mapDispatchToProps = { editorRouterCancel: EDITOR_ACTIONS.editorRouterCancel, editorRouterSubmit: EDITOR_ACTIONS.editorRouterSubmit, }; type Props = ReturnType & typeof mapDispatchToProps & {}; const RouterDialogUnconnected: FC = ({ router: { waypoints }, editorRouterCancel, editorRouterSubmit, }) => (
{!waypoints.length && noPoints({ editorRouterCancel })} {waypoints.length === 1 && firstPoint({ editorRouterCancel })} {waypoints.length >= 2 && draggablePoints({ editorRouterCancel, editorRouterSubmit })}
); const RouterDialog = connect(mapStateToProps, mapDispatchToProps)(RouterDialogUnconnected); export { RouterDialog };