mirror of
https://github.com/muerwre/orchidmap-front.git
synced 2025-04-25 02:56:41 +07:00
41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
import React, { createElement } from 'react';
|
|
import { MODES } from '~/constants/modes';
|
|
|
|
import { RouterDialog } from '~/components/dialogs/RouterDialog';
|
|
import { PolylineDialog } from '~/components/dialogs/PolylineDialog';
|
|
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 { connect } from 'react-redux';
|
|
|
|
import { ProviderDialog } from '~/components/dialogs/ProviderDialog';
|
|
import { ShotPrefetchDialog } from '~/components/dialogs/ShotPrefetchDialog';
|
|
import { selectEditorMode } from '~/redux/editor/selectors';
|
|
|
|
const mapStateToProps = state => ({ mode: selectEditorMode(state) });
|
|
|
|
type Props = ReturnType<typeof mapStateToProps> & {
|
|
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,
|
|
[MODES.POLY]: PolylineDialog,
|
|
};
|
|
|
|
const EditorDialogUnconnected = (props: Props) =>
|
|
props.mode && DIALOG_CONTENTS[props.mode] ? createElement(DIALOG_CONTENTS[props.mode]) : null;
|
|
|
|
const EditorDialog = connect(mapStateToProps)(EditorDialogUnconnected);
|
|
|
|
export { EditorDialog };
|