From 65032337eab93eecb1abb2840f47c7c9b71c0979 Mon Sep 17 00:00:00 2001 From: sunil Date: Tue, 7 Jul 2026 07:16:57 +0530 Subject: [PATCH] fix(local): satisfy strictTemplates for keyboard and chat handlers Widen keyboard event parameters to Event with runtime narrowing and allow openEditMessagePopup to accept a Message or index so v3 builds cleanly under Angular strict template checking in the local Docker dev server. Co-authored-by: Cursor --- .../review-list/review-list.component.ts | 14 ++++++----- .../badges-certificates.page.ts | 14 ++++------- .../chat/chat-room/chat-room.component.ts | 24 ++++++++++++------- 3 files changed, 28 insertions(+), 24 deletions(-) diff --git a/projects/v3/src/app/components/review-list/review-list.component.ts b/projects/v3/src/app/components/review-list/review-list.component.ts index 5633ae0aac..594ad01469 100644 --- a/projects/v3/src/app/components/review-list/review-list.component.ts +++ b/projects/v3/src/app/components/review-list/review-list.component.ts @@ -62,17 +62,19 @@ export class ReviewListComponent implements OnInit, OnChanges, AfterViewInit { } // go to the review - goto(review: Review, keyboardEvent?: KeyboardEvent) { - if (keyboardEvent && (keyboardEvent?.code === 'Space' || keyboardEvent?.code === 'Enter')) { - keyboardEvent.preventDefault(); - } else if (keyboardEvent) { - return; + goto(review: Review, keyboardEvent?: Event) { + if (keyboardEvent instanceof KeyboardEvent) { + if (keyboardEvent.code === 'Space' || keyboardEvent.code === 'Enter') { + keyboardEvent.preventDefault(); + } else { + return; + } } this.navigate.emit(review); } - switchStatus(event: CustomEvent) { + switchStatus(event?: CustomEvent) { if (!event) { return; } diff --git a/projects/v3/src/app/pages/badges-certificates/badges-certificates.page.ts b/projects/v3/src/app/pages/badges-certificates/badges-certificates.page.ts index b41f364355..9e33d82988 100644 --- a/projects/v3/src/app/pages/badges-certificates/badges-certificates.page.ts +++ b/projects/v3/src/app/pages/badges-certificates/badges-certificates.page.ts @@ -93,15 +93,11 @@ export class BadgesCertificatesPage implements OnInit, OnDestroy { this._updatePage(); } - async openBadgeDetail(achievement: Achievement, keyboardEvent?: KeyboardEvent) { - if ( - keyboardEvent && - keyboardEvent.key !== 'Enter' && - keyboardEvent.key !== ' ' - ) { - return; - } - if (keyboardEvent) { + async openBadgeDetail(achievement: Achievement, keyboardEvent?: Event) { + if (keyboardEvent instanceof KeyboardEvent) { + if (keyboardEvent.key !== 'Enter' && keyboardEvent.key !== ' ') { + return; + } keyboardEvent.preventDefault(); } const modal = await this.modalController.create({ diff --git a/projects/v3/src/app/pages/chat/chat-room/chat-room.component.ts b/projects/v3/src/app/pages/chat/chat-room/chat-room.component.ts index d11caa8d2c..9fb187ff5a 100644 --- a/projects/v3/src/app/pages/chat/chat-room/chat-room.component.ts +++ b/projects/v3/src/app/pages/chat/chat-room/chat-room.component.ts @@ -1024,14 +1024,13 @@ export class ChatRoomComponent implements OnInit, OnDestroy, AfterViewInit { return result; } - async preview(file, keyboardEvent?: KeyboardEvent) { - if ( - keyboardEvent && - (keyboardEvent?.code === "Space" || keyboardEvent?.code === "Enter") - ) { - keyboardEvent.preventDefault(); - } else if (keyboardEvent) { - return; + async preview(file, keyboardEvent?: Event) { + if (keyboardEvent instanceof KeyboardEvent) { + if (keyboardEvent.code === "Space" || keyboardEvent.code === "Enter") { + keyboardEvent.preventDefault(); + } else { + return; + } } const modal = await this.modalController.create({ @@ -1169,7 +1168,14 @@ export class ChatRoomComponent implements OnInit, OnDestroy, AfterViewInit { /** * open edit modal for a sent message. */ - async openEditMessagePopup(index: number) { + async openEditMessagePopup(messageOrIndex: Message | number) { + const index = + typeof messageOrIndex === 'number' + ? messageOrIndex + : this.messageList.findIndex((message) => message.uuid === messageOrIndex.uuid); + if (index < 0) { + return; + } const modal = await this.modalController.create({ component: EditMessagePopupComponent, cssClass: 'chat-edit-message-popup',