From aab22e6dca50543dc26ec451705c244834f39a13 Mon Sep 17 00:00:00 2001 From: jjreina Date: Tue, 26 Sep 2017 16:22:13 +0200 Subject: [PATCH 1/3] Version to be reviewed --- src/common/actionEnums/trainer/index.ts | 1 + .../training/edit/actions/insertMarkdownDelivey.ts | 7 +++++++ .../edit/components/panels/delivery/deliveryForm.tsx | 6 ++++++ .../components/panels/delivery/deliveryPanelComponent.tsx | 8 +++++++- .../components/panels/delivery/deliveryPanelContainer.ts | 7 +++++++ .../components/toolbar/groups/commandsGroupComponent.tsx | 6 +++--- 6 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 src/pages/trainer/training/edit/actions/insertMarkdownDelivey.ts diff --git a/src/common/actionEnums/trainer/index.ts b/src/common/actionEnums/trainer/index.ts index 03946c3..fecc1c4 100644 --- a/src/common/actionEnums/trainer/index.ts +++ b/src/common/actionEnums/trainer/index.ts @@ -7,4 +7,5 @@ export const trainerActionEnums = { TOGGLE_EDITOR_PREVIEW: `${prefix}/TOGGLE_EDITOR_PREVIEW`, SET_ACTIVE_PANEL: `${prefix}/SET_ACTIVE_PANEL`, GET_SUMMARY_TRAINING_REQUEST_COMPLETED: `${prefix}/GET_SUMMARY_TRAINING_REQUEST_COMPLETED`, + INSERT_MARKDOWN_DELIVERY: `${prefix}/INSERT_MARKDOWN_DELIVERY`, }; diff --git a/src/pages/trainer/training/edit/actions/insertMarkdownDelivey.ts b/src/pages/trainer/training/edit/actions/insertMarkdownDelivey.ts new file mode 100644 index 0000000..d6f8e4d --- /dev/null +++ b/src/pages/trainer/training/edit/actions/insertMarkdownDelivey.ts @@ -0,0 +1,7 @@ +import {trainerActionEnums} from '../../../../../common/actionEnums/trainer'; +import {IMarkdownEntry} from '../../../../../model/trainer/markdownEntry'; + +export const insertMarkdownDelivey = (markdownEntry: IMarkdownEntry) => ({ + type: trainerActionEnums.INSERT_MARKDOWN_DELIVERY, + payload: markdownEntry, +}); diff --git a/src/pages/trainer/training/edit/components/panels/delivery/deliveryForm.tsx b/src/pages/trainer/training/edit/components/panels/delivery/deliveryForm.tsx index 166fabf..da148fe 100644 --- a/src/pages/trainer/training/edit/components/panels/delivery/deliveryForm.tsx +++ b/src/pages/trainer/training/edit/components/panels/delivery/deliveryForm.tsx @@ -3,10 +3,14 @@ import { InputComponent, TextAreaComponent, } from '../../../../../../../common/components/form'; +import {IMarkdownEntry} from '../../../../../../../model/trainer/markdownEntry'; +import {markdownEntryConstants} from '../../markdownEntryConstants'; + const styles: any = require('./styles.scss'); interface Props { togglePanel(): void; + insertMarkdownEntry(): void; } interface State { @@ -80,5 +84,7 @@ export class DeliveryFormComponent extends React.Component { private onSubmit(event: React.FormEvent) { event.preventDefault(); this.props.togglePanel(); + this.props.insertMarkdownEntry(); + // console.log('clincking save...' + this.state.title); } } diff --git a/src/pages/trainer/training/edit/components/panels/delivery/deliveryPanelComponent.tsx b/src/pages/trainer/training/edit/components/panels/delivery/deliveryPanelComponent.tsx index 257f582..db2cb2f 100644 --- a/src/pages/trainer/training/edit/components/panels/delivery/deliveryPanelComponent.tsx +++ b/src/pages/trainer/training/edit/components/panels/delivery/deliveryPanelComponent.tsx @@ -1,15 +1,21 @@ import * as React from 'react'; import { DeliveryFormComponent } from './deliveryForm'; +import {IMarkdownEntry} from '../../../../../../../model/trainer/markdownEntry'; +import {markdownEntryConstants} from '../../markdownEntryConstants'; interface Props { togglePanel(): void; + insertMarkdownEntry: () => void; } export const DeliveryPanelComponent: React.StatelessComponent = (props) => { return (

Add delivery

- +
); }; diff --git a/src/pages/trainer/training/edit/components/panels/delivery/deliveryPanelContainer.ts b/src/pages/trainer/training/edit/components/panels/delivery/deliveryPanelContainer.ts index 284e00d..994d83c 100644 --- a/src/pages/trainer/training/edit/components/panels/delivery/deliveryPanelContainer.ts +++ b/src/pages/trainer/training/edit/components/panels/delivery/deliveryPanelContainer.ts @@ -2,9 +2,16 @@ import { connect } from 'react-redux'; import { DeliveryPanelComponent } from './deliveryPanelComponent'; import { IAppState } from '../../../../../../../reducers/index'; import { setActivePanelAction } from '../../../actions/setActivePanel'; +import { insertMarkdownDelivey } from '../../../actions/insertMarkdownDelivey'; +import {IMarkdownEntry} from '../../../../../../../model/trainer/markdownEntry'; +import {markdownEntryConstants} from '../../markdownEntryConstants'; const mapDispatchToProps = (dispatch) => ({ togglePanel: () => { dispatch(setActivePanelAction('')); }, + insertMarkdownEntry: (markdownEntry: IMarkdownEntry) => { dispatch(insertMarkdownDelivey({ + mdCaret: markdownEntryConstants.link.mdCaret, + caretCursorPosition: markdownEntryConstants.link.cursorPosition, + })); }, }); export const DeliveryPanelContainer = connect(null, mapDispatchToProps)(DeliveryPanelComponent); diff --git a/src/pages/trainer/training/edit/components/toolbar/groups/commandsGroupComponent.tsx b/src/pages/trainer/training/edit/components/toolbar/groups/commandsGroupComponent.tsx index 93ca683..f6b6628 100644 --- a/src/pages/trainer/training/edit/components/toolbar/groups/commandsGroupComponent.tsx +++ b/src/pages/trainer/training/edit/components/toolbar/groups/commandsGroupComponent.tsx @@ -38,11 +38,11 @@ export const CommandGroupComponent = (props: IProps) => {
From 11abd6249d818c1f3e1436eb036ec878c304c92f Mon Sep 17 00:00:00 2001 From: jjreina Date: Tue, 7 Nov 2017 14:26:59 +0100 Subject: [PATCH 2/3] Done: Insert the filled delivery title link into current markdown editor. --- .../trainer/training/edit/actions/insertMarkdownDelivey.ts | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 src/pages/trainer/training/edit/actions/insertMarkdownDelivey.ts diff --git a/src/pages/trainer/training/edit/actions/insertMarkdownDelivey.ts b/src/pages/trainer/training/edit/actions/insertMarkdownDelivey.ts deleted file mode 100644 index d6f8e4d..0000000 --- a/src/pages/trainer/training/edit/actions/insertMarkdownDelivey.ts +++ /dev/null @@ -1,7 +0,0 @@ -import {trainerActionEnums} from '../../../../../common/actionEnums/trainer'; -import {IMarkdownEntry} from '../../../../../model/trainer/markdownEntry'; - -export const insertMarkdownDelivey = (markdownEntry: IMarkdownEntry) => ({ - type: trainerActionEnums.INSERT_MARKDOWN_DELIVERY, - payload: markdownEntry, -}); From 7a888361ae24580e24df56df7bbc2ce5dfd39910 Mon Sep 17 00:00:00 2001 From: jjreina Date: Tue, 7 Nov 2017 14:33:38 +0100 Subject: [PATCH 3/3] Done: Insert the filled delivery title link into current markdown editor. --- src/common/actionEnums/trainer/index.ts | 1 - src/common/components/panel/panel.tsx | 6 ++++-- src/common/components/panel/spec/panel.spec.tsx | 6 +++++- src/pages/trainer/training/edit/components/editor.tsx | 6 +++++- .../edit/components/panels/delivery/deliveryForm.tsx | 10 +++++++--- .../panels/delivery/deliveryPanelComponent.tsx | 2 +- .../panels/delivery/deliveryPanelContainer.ts | 7 ------- .../toolbar/groups/commandsGroupComponent.tsx | 2 +- src/reducers/trainer/spec/training.spec.ts | 1 + src/reducers/trainer/training.ts | 1 + 10 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/common/actionEnums/trainer/index.ts b/src/common/actionEnums/trainer/index.ts index fecc1c4..03946c3 100644 --- a/src/common/actionEnums/trainer/index.ts +++ b/src/common/actionEnums/trainer/index.ts @@ -7,5 +7,4 @@ export const trainerActionEnums = { TOGGLE_EDITOR_PREVIEW: `${prefix}/TOGGLE_EDITOR_PREVIEW`, SET_ACTIVE_PANEL: `${prefix}/SET_ACTIVE_PANEL`, GET_SUMMARY_TRAINING_REQUEST_COMPLETED: `${prefix}/GET_SUMMARY_TRAINING_REQUEST_COMPLETED`, - INSERT_MARKDOWN_DELIVERY: `${prefix}/INSERT_MARKDOWN_DELIVERY`, }; diff --git a/src/common/components/panel/panel.tsx b/src/common/components/panel/panel.tsx index 23ce0c0..42e52c9 100644 --- a/src/common/components/panel/panel.tsx +++ b/src/common/components/panel/panel.tsx @@ -1,5 +1,6 @@ import * as React from 'react'; import * as CSSTransitionReplace from 'react-css-transition-replace'; +import {IMarkdownEntry} from '../../../model/trainer/markdownEntry'; export class PanelItem { public panelId: string; @@ -9,16 +10,17 @@ export class PanelItem { interface Props { activePanelId: string; panelList: PanelItem[]; + insertMarkdownEntry?: (markdownEntry: IMarkdownEntry) => void; } -const renderSelectedComponent = ({ activePanelId, panelList }: Props) => { +const renderSelectedComponent = ({ activePanelId, panelList, insertMarkdownEntry }: Props) => { let panelItem =
; const panel = panelList.find((currentPanel) => currentPanel.panelId === activePanelId); if (panel) { const Component = panel.component; if (Component) { - panelItem = ; + panelItem = ; } } diff --git a/src/common/components/panel/spec/panel.spec.tsx b/src/common/components/panel/spec/panel.spec.tsx index e02f974..ac3c71f 100644 --- a/src/common/components/panel/spec/panel.spec.tsx +++ b/src/common/components/panel/spec/panel.spec.tsx @@ -36,14 +36,18 @@ describe('PanelComponent', () => { { panelId: 'panel A', component: innerComponentA }, { panelId: 'panel B', component: innerComponentB }, ]; + const insertMarkdownEntry = sinon.spy(); // Act const panelComponent = shallow( - , + , ); // Assert expect(panelComponent.html()).to.contain('
Inner Component B
'); expect(panelComponent.html()).to.not.contain('
Inner Component A
'); + expect(panelComponent.instance().props.insertMarkdownEntry).not.to.be.undefined; }); }); diff --git a/src/pages/trainer/training/edit/components/editor.tsx b/src/pages/trainer/training/edit/components/editor.tsx index 87be7c9..be6022a 100644 --- a/src/pages/trainer/training/edit/components/editor.tsx +++ b/src/pages/trainer/training/edit/components/editor.tsx @@ -83,7 +83,11 @@ export class EditorComponent extends React.Component { togglePreviewMode={this.props.togglePreviewMode} />
- + { !this.props.showPreview ?