From 0669dc5f51aa0fc009b67262bc0d53b59ad937f1 Mon Sep 17 00:00:00 2001 From: Sanborn Date: Wed, 16 Aug 2017 12:19:40 +0530 Subject: [PATCH] fix(markdown): Fixed markdown component with undefined values. OSIO issue #1443 --- .../examples/markdown-example.component.html | 30 ++++++--- .../examples/markdown-example.component.ts | 7 ++- src/app/markdown/markdown.component.ts | 62 ++++++++++++++++--- 3 files changed, 81 insertions(+), 18 deletions(-) diff --git a/src/app/markdown/examples/markdown-example.component.html b/src/app/markdown/examples/markdown-example.component.html index 77049d0..590f537 100644 --- a/src/app/markdown/examples/markdown-example.component.html +++ b/src/app/markdown/examples/markdown-example.component.html @@ -11,8 +11,8 @@ + (onSaveClick)="onSaveOrPreview($event)" + (showPreview)="onSaveOrPreview($event)"> @@ -24,23 +24,37 @@ [rawText]="''" [renderedText]="''" [placeholder]="'This is placeholder text'" - (onSaveClick)="onSave($event)" - (showPreview)="showPreview($event)"> + (onSaveClick)="onSaveOrPreview($event)" + (showPreview)="onSaveOrPreview($event)">
-
+
+ (onSaveClick)="onSaveOrPreview($event)" + (showPreview)="onSaveOrPreview($event)"> + +
+
+ +
+
+ + +
+
+
-
diff --git a/src/app/markdown/examples/markdown-example.component.ts b/src/app/markdown/examples/markdown-example.component.ts index 8264f0c..36ac202 100644 --- a/src/app/markdown/examples/markdown-example.component.ts +++ b/src/app/markdown/examples/markdown-example.component.ts @@ -17,7 +17,7 @@ export class MarkdownExampleComponent { private rawText: string = '#hello, markdown!'; private allowEdit = false; - onSave(value: any) { + onSaveOrPreview(value: any) { const rawText = value.rawText; const callBack = value.callBack; setTimeout(() => { @@ -25,11 +25,12 @@ export class MarkdownExampleComponent { }, 2000); } - showPreview(value: any) { + onSaveOrPreviewUndefined(value: any) { const rawText = value.rawText; const callBack = value.callBack; setTimeout(() => { - callBack(rawText, markdown.toHTML(rawText)); + callBack(undefined, undefined); }, 2000); } + } diff --git a/src/app/markdown/markdown.component.ts b/src/app/markdown/markdown.component.ts index 92b3d55..c7a807b 100644 --- a/src/app/markdown/markdown.component.ts +++ b/src/app/markdown/markdown.component.ts @@ -5,6 +5,7 @@ import { Input, Output, OnChanges, + OnInit, ViewChild, EventEmitter, SimpleChanges @@ -18,11 +19,11 @@ import { templateUrl: './markdown.component.html' }) -export class MarkdownComponent implements OnChanges { +export class MarkdownComponent implements OnChanges, OnInit { @Input() fieldName: string = 'Description'; - @Input() renderedText: string = ''; - @Input() rawText: string = ''; + @Input('renderedText') inpRenderedText: string = ''; + @Input('rawText') inpRawText: string = ''; @Input() rendering: boolean = false; @Input() saving: boolean = false; @Input() placeholder: string = 'This is place holder'; @@ -38,6 +39,8 @@ export class MarkdownComponent implements OnChanges { private tabBarVisible: boolean = true; private viewType: string = 'preview'; // markdown private editorActive: boolean = false; + private renderedText = ''; + private rawText = ''; private showMore = false; private previousRawText = ''; @@ -49,6 +52,31 @@ export class MarkdownComponent implements OnChanges { !changes.editAllow.isFirstChange) { this.closeClick(); } + if (Object.keys(changes).indexOf('inpRenderedText') > -1 + && typeof(this.inpRenderedText) === 'undefined') { + console.warn('Markdown component change :: renderedText is passed undefined'); + this.renderedText = ''; + } else { + this.renderedText = this.inpRenderedText; + } + if (Object.keys(changes).indexOf('inpRawText') > -1 + && typeof(this.inpRawText) === 'undefined') { + console.warn('Markdown component change :: rawText is passed undefined'); + this.rawText = ''; + } else { + this.rawText = this.inpRawText; + } + } + + ngOnInit() { + if (typeof(this.renderedText) === 'undefined') { + console.warn('Markdown component init :: renderedText is passed undefined'); + this.renderedText = ''; + } + if (typeof(this.rawText) === 'undefined') { + console.warn('Markdown component init :: rawText is passed undefined'); + this.rawText = ''; + } } onClickMarkdownTab() { @@ -126,15 +154,35 @@ export class MarkdownComponent implements OnChanges { renderPreview(rawText: string, renderedText: string) { this.rendering = false; - this.rawText = rawText; - this.renderedText = renderedText; + if (typeof(rawText) === 'undefined') { + console.warn('Markdown component preview callback :: rawText is passed undefined'); + this.rawText = ''; + } else { + this.rawText = rawText; + } + if (typeof(renderedText) === 'undefined') { + console.warn('Markdown component preview callback :: renderedText is passed undefined'); + this.renderedText = ''; + } else { + this.renderedText = renderedText; + } this.viewType = 'preview'; } saveUpdate(rawText: string, renderedText: string) { this.saving = false; - this.rawText = rawText; - this.renderedText = renderedText; + if (typeof(rawText) === 'undefined') { + console.warn('Markdown component save callback :: rawText is passed undefined'); + this.rawText = ''; + } else { + this.rawText = rawText; + } + if (typeof(renderedText) === 'undefined') { + console.warn('Markdown component save callback :: renderedText is passed undefined'); + this.renderedText = ''; + } else { + this.renderedText = renderedText; + } this.deactivateEditor(); }