Skip to content

Commit 2b661ce

Browse files
marker-daomarker dao ®
andauthored
TextEditorBase: Improve typing && Refactor (#33081)
Co-authored-by: marker dao ® <youdontknow@marker-dao.eth>
1 parent 115022a commit 2b661ce

File tree

12 files changed

+234
-132
lines changed

12 files changed

+234
-132
lines changed

packages/devextreme/js/__internal/ui/chat/message_box/chat_text_area.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,10 @@ class ChatTextArea extends TextArea<Properties> {
432432
}
433433

434434
_renderFileUploader(): void {
435+
if (!this._$textEditorContainer) {
436+
return;
437+
}
438+
435439
this._$fileUploader = $('<div>')
436440
.addClass(CHAT_TEXT_AREA_ATTACHMENTS)
437441
.insertBefore(this._$textEditorContainer);
@@ -584,7 +588,7 @@ class ChatTextArea extends TextArea<Properties> {
584588
return maxHeight;
585589
}
586590

587-
_keyPressHandler(e: InputEvent): void {
591+
_keyPressHandler(e: { originalEvent: InputEvent & KeyboardEvent }): void {
588592
super._keyPressHandler(e);
589593

590594
this._updateButtonsState();

packages/devextreme/js/__internal/ui/color_box/m_color_box.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,10 @@ class ColorBox extends DropDownEditor<ColorBoxProperties> {
317317
this.$element().wrapInner($('<div>').addClass(COLOR_BOX_INPUT_CONTAINER_CLASS));
318318
this._$colorBoxInputContainer = this.$element().children().eq(0);
319319

320+
if (!this._$textEditorInputContainer) {
321+
return;
322+
}
323+
320324
this._$colorResultPreview = $('<div>')
321325
.addClass(COLOR_BOX_COLOR_RESULT_PREVIEW_CLASS)
322326
.appendTo(this._$textEditorInputContainer);

packages/devextreme/js/__internal/ui/date_box/date_box.base.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import type {
2222
import type { ToolbarItem } from '@js/ui/popup';
2323
import type { OptionChanged } from '@ts/core/widget/types';
2424
import DropDownEditor from '@ts/ui/drop_down_editor/m_drop_down_editor';
25+
import type { ValueChangedEvent } from '@ts/ui/editor/editor';
2526

2627
import type { PopupProperties } from '../popup/m_popup';
2728
import uiDateUtils from './date_utils';
@@ -466,7 +467,7 @@ class DateBox extends DropDownEditor<DateBoxBaseProperties> {
466467
}
467468
}
468469

469-
_clearValueHandler(e: DxEvent): void {
470+
_clearValueHandler(e: ValueChangedEvent & DxEvent): void {
470471
this.option('text', '');
471472
super._clearValueHandler(e);
472473
}

packages/devextreme/js/__internal/ui/drop_down_editor/m_drop_down_editor.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -445,21 +445,28 @@ class DropDownEditor<
445445
return promise.always(this._renderField.bind(this));
446446
}
447447

448-
_getButtonsContainer(): dxElementWrapper {
448+
_getButtonsContainer(): dxElementWrapper | null | undefined {
449449
const fieldTemplate = this._getFieldTemplate();
450+
450451
return fieldTemplate ? this._$container : this._$textEditorContainer;
451452
}
452453

453454
_renderBeforeFieldAddon(): void {
454-
if (!this._$beforeFieldAddon) {
455+
if (
456+
!this._$beforeFieldAddon
457+
&& this._$textEditorContainer
458+
) {
455459
this._$beforeFieldAddon = $('<div>')
456460
.addClass(DROP_DOWN_EDITOR_BEFORE_FIELD_ADDON)
457461
.insertBefore(this._$textEditorContainer);
458462
}
459463
}
460464

461465
_renderAfterFieldAddon(): void {
462-
if (!this._$afterFieldAddon) {
466+
if (
467+
!this._$afterFieldAddon
468+
&& this._$textEditorContainer
469+
) {
463470
this._$afterFieldAddon = $('<div>')
464471
.addClass(DROP_DOWN_EDITOR_AFTER_FIELD_ADDON)
465472
.insertAfter(this._$textEditorContainer);
@@ -479,6 +486,7 @@ class DropDownEditor<
479486

480487
_renderTemplateWrapper(): void {
481488
const fieldTemplate = this._getFieldTemplate();
489+
482490
if (!fieldTemplate) {
483491
return;
484492
}
@@ -495,10 +503,10 @@ class DropDownEditor<
495503
this._detachKeyboardEvents();
496504
this._detachFocusEvents();
497505

498-
this._$textEditorContainer.remove();
506+
this._$textEditorContainer?.remove();
499507

500508
const $newTemplateWrapper = createTemplateWrapperElement();
501-
this._$templateWrapper!.replaceWith($newTemplateWrapper);
509+
this._$templateWrapper?.replaceWith($newTemplateWrapper);
502510
this._$templateWrapper = $newTemplateWrapper;
503511

504512
const currentRenderContext = Symbol('renderContext');

packages/devextreme/js/__internal/ui/m_select_box.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -716,7 +716,7 @@ class SelectBox<
716716
return super._isFocused() && $(activeElement).closest(this._input()).length > 0;
717717
}
718718

719-
_getValueChangeEventOptionName(): string {
719+
_getValueChangeEventOptionName(): keyof TProperties {
720720
return 'customItemCreateEvent';
721721
}
722722

packages/devextreme/js/__internal/ui/m_tag_box.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,9 +217,12 @@ class TagBox<
217217
return this._getValue().length === 0;
218218
}
219219

220-
_updateTagsContainer($element): void {
221-
this._$tagsContainer = $element
222-
.addClass(TAGBOX_TAG_CONTAINER_CLASS);
220+
_updateTagsContainer($element: dxElementWrapper | null | undefined): void {
221+
if (!$element) {
222+
return;
223+
}
224+
225+
this._$tagsContainer = $element.addClass(TAGBOX_TAG_CONTAINER_CLASS);
223226
}
224227

225228
// eslint-disable-next-line class-methods-use-this

packages/devextreme/js/__internal/ui/m_text_area.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,11 +160,11 @@ class TextArea<
160160
_getHeightDifference($input: dxElementWrapper): number {
161161
const verticalElementOffset = getVerticalOffsets(this.$element().get(0), false);
162162
const verticalEditorContainerOffset = getVerticalOffsets(
163-
this._$textEditorContainer.get(0),
163+
this._$textEditorContainer?.get(0),
164164
false,
165165
);
166166
const verticalInputContainerOffsets = getVerticalOffsets(
167-
this._$textEditorInputContainer.get(0),
167+
this._$textEditorInputContainer?.get(0),
168168
true,
169169
);
170170
const inputMargin = getElementBoxParams('height', getWindow().getComputedStyle($input.get(0))).margin;

packages/devextreme/js/__internal/ui/popover/m_popover.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ class Popover<
193193
const { visible } = this.option();
194194

195195
const overlayStack = this._overlayStack();
196+
// @ts-ignore this
196197
const isTopOverlay = overlayStack[overlayStack.length - 1] === this;
197198

198199
if (normalizeKeyName(e) === ESC_KEY_NAME && visible && isTopOverlay) {

0 commit comments

Comments
 (0)