diff --git a/packages/devextreme-angular/src/server/render.ts b/packages/devextreme-angular/src/server/render.ts index 272acefd5cc9..1ea7b55f70ce 100644 --- a/packages/devextreme-angular/src/server/render.ts +++ b/packages/devextreme-angular/src/server/render.ts @@ -25,6 +25,9 @@ export class DxServerModule { temp.innerHTML = renderToString(el); const mainElement = temp.childNodes[0]; + if (!mainElement) { + return; + } const childString = mainElement.innerHTML; for (let i = 0; i < mainElement.attributes.length; i++) { diff --git a/packages/devextreme/js/__internal/__tests__/draggable_dispose.test.ts b/packages/devextreme/js/__internal/__tests__/draggable_dispose.test.ts new file mode 100644 index 000000000000..e80ee4015270 --- /dev/null +++ b/packages/devextreme/js/__internal/__tests__/draggable_dispose.test.ts @@ -0,0 +1,19 @@ +import $ from '@js/core/renderer'; +import Sortable from '@js/ui/sortable'; + +describe('Draggable dispose safety', () => { + beforeEach(() => { + document.body.innerHTML = ''; + }); + + it('should not crash on _stopAnimator when _scrollAnimator is not initialized', () => { + const $container = $('