mirror of
https://github.com/muerwre/orchidmap-front.git
synced 2025-04-25 02:56:41 +07:00
76 lines
1.9 KiB
TypeScript
76 lines
1.9 KiB
TypeScript
import * as React from 'react';
|
|
import { MODES } from '$constants/modes';
|
|
|
|
import { RouterDialog } from '$components/dialogs/RouterDialog';
|
|
import { StickersDialog } from '$components/dialogs/StickersDialog';
|
|
import { TrashDialog } from '$components/dialogs/TrashDialog';
|
|
import { LogoDialog } from '$components/dialogs/LogoDialog';
|
|
import { SaveDialog } from '$components/dialogs/SaveDialog';
|
|
import { CancelDialog } from '$components/dialogs/CancelDialog';
|
|
|
|
import { bindActionCreators } from 'redux';
|
|
import { connect } from 'react-redux';
|
|
|
|
import {
|
|
setMode,
|
|
setLogo,
|
|
routerCancel,
|
|
routerSubmit,
|
|
setActiveSticker,
|
|
clearStickers,
|
|
clearPoly,
|
|
clearAll,
|
|
clearCancel,
|
|
stopEditing,
|
|
setEditing,
|
|
sendSaveRequest,
|
|
changeProvider,
|
|
} from '$redux/user/actions';
|
|
import { ProviderDialog } from '$components/dialogs/ProviderDialog';
|
|
import { ShotPrefetchDialog } from '$components/dialogs/ShotPrefetchDialog';
|
|
import { IRootState } from "$redux/user";
|
|
|
|
interface Props extends IRootState {
|
|
width: number,
|
|
}
|
|
|
|
const DIALOG_CONTENTS: { [x: string]: any } = {
|
|
[MODES.ROUTER]: RouterDialog,
|
|
[MODES.STICKERS_SELECT]: StickersDialog,
|
|
[MODES.TRASH]: TrashDialog,
|
|
[MODES.LOGO]: LogoDialog,
|
|
[MODES.SAVE]: SaveDialog,
|
|
[MODES.CONFIRM_CANCEL]: CancelDialog,
|
|
[MODES.PROVIDER]: ProviderDialog,
|
|
[MODES.SHOT_PREFETCH]: ShotPrefetchDialog,
|
|
};
|
|
|
|
export const Component = (props: Props) => (
|
|
props.mode && DIALOG_CONTENTS[props.mode]
|
|
? React.createElement(DIALOG_CONTENTS[props.mode], { ...props })
|
|
: null
|
|
);
|
|
|
|
const mapStateToProps = ({ user }) => ({ ...user });
|
|
|
|
const mapDispatchToProps = dispatch => bindActionCreators({
|
|
routerCancel,
|
|
routerSubmit,
|
|
setLogo,
|
|
setActiveSticker,
|
|
clearStickers,
|
|
clearPoly,
|
|
clearAll,
|
|
clearCancel,
|
|
stopEditing,
|
|
setEditing,
|
|
setMode,
|
|
sendSaveRequest,
|
|
changeProvider,
|
|
}, dispatch);
|
|
|
|
export const EditorDialog = connect(
|
|
mapStateToProps,
|
|
mapDispatchToProps
|
|
)(Component);
|
|
|