Skip to content

Commit

Permalink
fix: the value in the component is incorrectly updated when it is pas…
Browse files Browse the repository at this point in the history
…sed as an empty string using formControl
  • Loading branch information
splincode committed Nov 13, 2024
1 parent 35abae0 commit cd7a2b7
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 10 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"prepare": "husky",
"start": "nx serve editor-demo",
"lint": "eslint .",
"cspell": "cspell --relative --dot --gitignore .",
"cspell": "cspell --relative --dot --no-progress --gitignore .",
"prettier": "prettier !package-lock.json !taiga-ui/** . --ignore-path .gitignore",
"stylelint": "stylelint './projects/**/*.{less,css}' --config package.json",
"release": "npx syncer && npx nx publish editor"
Expand Down
23 changes: 23 additions & 0 deletions projects/demo-playwright/tests/reset.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import {expect, test} from '@playwright/test';

import {tuiGoto} from '../utils';

test.describe('Reset', () => {
test('Correct reset value from wysiwyg', async ({page}) => {
await tuiGoto(page, '/starter-kit?placeholder=Hello');

await expect(page.locator('tui-editor')).toHaveScreenshot('Reset-01.png');

await page.locator('button:has-text("Reset")').click();

await expect(page.locator('tui-editor')).toHaveScreenshot('Reset-02.png');

await page.locator('tui-editor [contenteditable]').fill('12345');

await expect(page.locator('tui-editor')).toHaveScreenshot('Reset-03.png');

await page.locator('button:has-text("Reset")').click();

await expect(page.locator('tui-editor')).toHaveScreenshot('Reset-04.png');
});
});
1 change: 0 additions & 1 deletion projects/editor/components/editor/editor.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@
tuiTiptapEditor
class="tui-editor-socket"
[editable]="interactive()"
[value]="firstInitialValue"
(valueChange)="onModelChange($event)"
></div>
</div>
Expand Down
5 changes: 5 additions & 0 deletions projects/editor/components/editor/editor.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ export class TuiEditor extends TuiControl<string> implements OnDestroy {

this.patchContentEditableElement();
this.listenResizeEvents();
this.editorService.setValue(this.firstInitialValue);
this.editorLoaded.set(true);
});

Expand Down Expand Up @@ -235,6 +236,10 @@ export class TuiEditor extends TuiControl<string> implements OnDestroy {
if (!this.focused()) {
this.doc?.getSelection?.()?.removeAllRanges();
}

if (this.editorLoaded()) {
this.editorService.setValue(processed ?? '');
}
}

public ngOnDestroy(): void {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,18 @@ export class TuiTiptapEditor {

protected editorContainer = inject(INITIALIZATION_TIPTAP_CONTAINER);

protected readonly $ = inject(TIPTAP_EDITOR)
.pipe(takeUntilDestroyed())
.subscribe(() =>
this.renderer.appendChild(this.el.nativeElement, this.editorContainer),
);

@Output()
public readonly valueChange = this.editor.valueChange$;

@Output()
public readonly stateChange = this.editor.stateChange$;

constructor() {
inject(TIPTAP_EDITOR)
.pipe(takeUntilDestroyed())
.subscribe(() =>
this.renderer.appendChild(this.el.nativeElement, this.editorContainer),
);
}

@Input()
public set value(value: string) {
this.editor.setValue(value);
Expand Down

0 comments on commit cd7a2b7

Please sign in to comment.