Skip to content

Commit 6947ad4

Browse files
Normalize editor demo component name
1 parent 0d9c9c4 commit 6947ad4

File tree

8 files changed

+50
-28
lines changed

8 files changed

+50
-28
lines changed

apps/codelab/src/app/admin/content/presentation-editor/preview/slide-preview/dynamic-renderer/dynamic-renderer.component.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
import { ContentSlide, CustomBlock, SlideViewType } from '../../../types';
99
import { CodelabTitleSlideEditorComponent } from '../../../wrappers/custom-component-editors/codelab-title-slide-editor/codelab-title-slide-editor.component';
1010
import { CodelabCodeDemoFilePathEditorComponent } from '../../../wrappers/custom-component-editors/codelab-code-demo-file-path-editor/codelab-code-demo-file-path-editor.component';
11-
import { CodelabCodeDemoConsoleComponent } from '../../../wrappers/custom-component-editors/codelab-code-demo-console/codelab-code-demo-console.component';
11+
import { CodelabCodeDemoConsoleEditorComponent } from '../../../wrappers/custom-component-editors/codelab-code-demo-console-editor/codelab-code-demo-console-editor.component';
1212
import { CodeDemoEditorEditorComponent } from '../../../wrappers/custom-component-editors/codelab-code-demo-editor-editor/code-demo-editor.component';
1313
import { CodelabImageEditorComponent } from '../../../wrappers/custom-component-editors/codelab-image-editor/codelab-image-editor.component';
1414
import { BlankComponent } from '../blank/blank.component';
@@ -24,7 +24,7 @@ export class PreviewDynamicComponentResolver extends NgxdResolver<string, any> {
2424
super([
2525
{ type: 'codelab-title-slide', component: TitleSlideComponent },
2626
{
27-
type: 'codelab-code-demo-console',
27+
type: 'codelab-code-demo-console-editor',
2828
component: CodelabCodeDemoPreviewComponent
2929
},
3030
{
@@ -65,8 +65,8 @@ export class EditDynamicComponentResolver extends NgxdResolver<string, any> {
6565
component: CodelabTitleSlideEditorComponent
6666
},
6767
{
68-
type: 'codelab-code-demo-console',
69-
component: CodelabCodeDemoConsoleComponent
68+
type: 'codelab-code-demo-console-editor',
69+
component: CodelabCodeDemoConsoleEditorComponent
7070
},
7171
{
7272
type: 'codelab-exercise-preview',
@@ -132,7 +132,7 @@ export class DynamicRendererComponent implements OnChanges {
132132
// const componentMap = {
133133
// preview: {
134134
// 'codelab-title-slide': TitleSlideComponent,
135-
// 'codelab-code-demo-console': CodelabCodeDemoPreviewComponent,
135+
// 'codelab-code-demo-console-editor': CodelabCodeDemoPreviewComponent,
136136
// 'codelab-exercise-preview': CodelabCodeDemoPreviewComponent,
137137
// 'codelab-exercise': CodelabCodeDemoPreviewComponent,
138138
// 'codelab-closing-slide': CodelabTitleSlideEditorComponent,
@@ -145,7 +145,7 @@ export class DynamicRendererComponent implements OnChanges {
145145
// },
146146
// edit: {
147147
// 'codelab-title-slide': CodelabTitleSlideEditorComponent,
148-
// 'codelab-code-demo-console': CodelabCodeDemoConsoleComponent,
148+
// 'codelab-code-demo-console-editor': CodelabCodeDemoConsoleEditorComponent,
149149
// 'codelab-exercise-preview': CodelabExerciseComponent,
150150
// 'codelab-exercise': CodelabExerciseComponent,
151151
// 'codelab-closing-slide': CodelabTitleSlideEditorComponent,

apps/codelab/src/app/admin/content/presentation-editor/slide-editor/action-bar/action-bar.component.html

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
</button>
1313
<button
1414
mat-icon-button
15-
(click)="addCustom('codelab-code-demo-console', templates.simpleApp)"
15+
(click)="addCustom('codelab-code-demo-console-editor', templates.simpleApp)"
1616
>
1717
<mat-icon>web</mat-icon>
1818
</button>
@@ -23,13 +23,17 @@
2323
<mat-menu #templatesMenu="matMenu">
2424
<button
2525
mat-menu-item
26-
(click)="addCustom('codelab-code-demo-console', templates.simpleApp)"
26+
(click)="
27+
addCustom('codelab-code-demo-console-editor', templates.simpleApp)
28+
"
2729
>
2830
Simple / One File
2931
</button>
3032
<button
3133
mat-menu-item
32-
(click)="addCustom('codelab-code-demo-console', templates.angularApp)"
34+
(click)="
35+
addCustom('codelab-code-demo-console-editor', templates.angularApp)
36+
"
3337
>
3438
Angular App
3539
</button>
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
22

3-
import { CodelabCodeDemoConsoleComponent } from './codelab-code-demo-console.component';
3+
import { CodelabCodeDemoConsoleEditorComponent } from './codelab-code-demo-console-editor.component';
44

55
describe('CodelabCodeDemoConsoleComponent', () => {
6-
let component: CodelabCodeDemoConsoleComponent;
7-
let fixture: ComponentFixture<CodelabCodeDemoConsoleComponent>;
6+
let component: CodelabCodeDemoConsoleEditorComponent;
7+
let fixture: ComponentFixture<CodelabCodeDemoConsoleEditorComponent>;
88

99
beforeEach(async(() => {
1010
TestBed.configureTestingModule({
11-
declarations: [CodelabCodeDemoConsoleComponent]
11+
declarations: [CodelabCodeDemoConsoleEditorComponent]
1212
}).compileComponents();
1313
}));
1414

1515
beforeEach(() => {
16-
fixture = TestBed.createComponent(CodelabCodeDemoConsoleComponent);
16+
fixture = TestBed.createComponent(CodelabCodeDemoConsoleEditorComponent);
1717
component = fixture.componentInstance;
1818
fixture.detectChanges();
1919
});
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ interface SelectableFiles {
99

1010
@Component({
1111
selector: 'codelab-code-demo-console-editor',
12-
templateUrl: './codelab-code-demo-console.component.html',
13-
styleUrls: ['./codelab-code-demo-console.component.css']
12+
templateUrl: './codelab-code-demo-console-editor.component.html',
13+
styleUrls: ['./codelab-code-demo-console-editor.component.css']
1414
})
15-
export class CodelabCodeDemoConsoleComponent {
15+
export class CodelabCodeDemoConsoleEditorComponent {
1616
files = ['app.ts'];
1717
@Input() code = {};
1818
@Input() ui = 'browser';

apps/codelab/src/app/admin/content/presentation-editor/wrappers/custom-component-editors/custom-component-editors.module.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { MatIconModule } from '@angular/material/icon';
99
import { CodelabTitleSlideEditorComponent } from './codelab-title-slide-editor/codelab-title-slide-editor.component';
1010
import { CodelabCodeDemoFilePathEditorComponent } from './codelab-code-demo-file-path-editor/codelab-code-demo-file-path-editor.component';
1111
import { CodelabPresetComponent } from './codelab-preset/codelab-preset.component';
12-
import { CodelabCodeDemoConsoleComponent } from './codelab-code-demo-console/codelab-code-demo-console.component';
12+
import { CodelabCodeDemoConsoleEditorComponent } from './codelab-code-demo-console-editor/codelab-code-demo-console-editor.component';
1313
import { CodelabImageEditorComponent } from './codelab-image-editor/codelab-image-editor.component';
1414
import { NgxFileDropModule } from 'ngx-file-drop';
1515
import { AngularFireStorageModule } from '@angular/fire/storage';
@@ -25,7 +25,7 @@ import { MatButtonModule } from '@angular/material/button';
2525
CodelabTitleSlideEditorComponent,
2626
CodelabCodeDemoFilePathEditorComponent,
2727
CodelabPresetComponent,
28-
CodelabCodeDemoConsoleComponent,
28+
CodelabCodeDemoConsoleEditorComponent,
2929
CodelabImageEditorComponent,
3030
CodelabExerciseEditorComponent
3131
],

libs/code-demos/src/lib/code-demo/code-demo.component.ts

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import {
55
map,
66
publishReplay,
77
refCount,
8-
startWith
8+
startWith,
9+
takeWhile
910
} from 'rxjs/operators';
1011
import {
1112
BehaviorSubject,
@@ -16,13 +17,16 @@ import {
1617
import { compileTsFilesWatch } from '../runner/compile-ts-files';
1718
import { Code } from '../shared/types';
1819

19-
function filterByFileType(type: string, files: Record<string, string>) {
20-
return Object.entries(files).reduce((changedFiles, [path, code]) => {
21-
if (path.match(new RegExp(`\\\.${type}$`))) {
20+
function filterByFileType(
21+
type: string,
22+
files: Record<string, string>
23+
): Record<string, string> {
24+
return Object.entries(files)
25+
.filter(([path, code]) => path.endsWith(type))
26+
.reduce((changedFiles, [path, code]) => {
2227
changedFiles[path] = code;
23-
}
24-
return changedFiles;
25-
}, {});
28+
return changedFiles;
29+
}, {});
2630
}
2731

2832
export function getChanges(current, previous) {
@@ -62,6 +66,7 @@ export class CodeDemoComponent implements ControlValueAccessor, OnDestroy {
6266
@Input() allowSwitchingFiles = true;
6367
@Input() enableAutoFolding = true;
6468
@Input() fontSize = '18';
69+
@Input() showPreview = true;
6570

6671
openFileIndex = 0;
6772
code: Code = {};
@@ -94,6 +99,7 @@ export class CodeDemoComponent implements ControlValueAccessor, OnDestroy {
9499
);
95100

96101
this.files$ = combineLatest([ts, staticFiles]).pipe(
102+
takeWhile(() => this.showPreview),
97103
map(([js, staticFiles]) => ({ ...staticFiles, ...js })),
98104
map(files => ({ ...this.code, ...files })),
99105
filter(value => Object.keys(value).length > 0),
@@ -126,19 +132,31 @@ export class CodeDemoComponent implements ControlValueAccessor, OnDestroy {
126132
}
127133

128134
update(code: Record<string, string>) {
135+
if (this.showPreview === false) {
136+
return;
137+
}
138+
129139
if (this.onChange) {
130140
this.onChange(code);
131141
}
132142
const changesTs = getChanges(
133143
filterByFileType('ts', code),
134144
filterByFileType('ts', this.codeCache)
135145
);
146+
136147
const changesStatic = getChanges(
137-
filterByFileType('html|css', code),
138-
filterByFileType('html|css', this.codeCache)
148+
{
149+
...filterByFileType('html', code),
150+
...filterByFileType('css', code)
151+
},
152+
{
153+
...filterByFileType('html', this.codeCache),
154+
...filterByFileType('css', this.codeCache)
155+
}
139156
);
140157

141158
this.codeCache = { ...code };
159+
142160
this.changedTsFilesSubject.next(changesTs);
143161
this.changedStaticFilesSubject.next(changesStatic);
144162
}

0 commit comments

Comments
 (0)