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