import React, { useCallback } from 'react'; import { Icon } from '~/components/panels/Icon'; import { PROVIDERS } from '~/constants/providers'; import { LOGOS } from '~/constants/logos'; import * as EDITOR_ACTIONS from '~/redux/editor/actions'; import { connect } from 'react-redux'; import { MODES } from '~/constants/modes'; import { Tooltip } from '~/components/panels/Tooltip'; import { selectMap } from '~/redux/map/selectors'; import { selectEditor } from '~/redux/editor/selectors'; import { IState } from '~/redux/store'; const mapStateToProps = (state: IState) => { const { provider, logo } = selectMap(state); const { markers_shown, editing } = selectEditor(state); return { provider, logo, markers_shown, editing }; }; const mapDispatchToProps = { editorChangeMode: EDITOR_ACTIONS.editorChangeMode, }; type Props = ReturnType & typeof mapDispatchToProps & {}; const TopRightPanelUnconnected = ({ provider, logo, markers_shown, editing, editorChangeMode, }: Props) => { const startProviderMode = useCallback(() => editorChangeMode(MODES.PROVIDER), [editorChangeMode]); const startLogoMode = useCallback(() => editorChangeMode(MODES.LOGO), [editorChangeMode]); const clearMode = useCallback(() => editorChangeMode(MODES.NONE), [editorChangeMode]); return (
{editing && !markers_shown && (
Приблизьте, чтобы редактировать кривую
)}
Стиль карты
{(provider && PROVIDERS[provider] && PROVIDERS[provider].name) || '...'}
Логотип
{(logo && LOGOS[logo] && LOGOS[logo][0]) || '...'}
); }; const TopRightPanel = connect(mapStateToProps, mapDispatchToProps)(TopRightPanelUnconnected); export { TopRightPanel };