From a4d399cb15c1cec6bd0725dac76ac51fac37231a Mon Sep 17 00:00:00 2001 From: Sebastian Musial Date: Thu, 9 May 2024 15:14:27 +0200 Subject: [PATCH] fix(chatbot): inactivated refresh button and inputs when the message is generated by the assistant --- .../chat/chat-footer/chat-footer.component.html | 16 +++++++++++++--- .../chat/chat-header/chat-header.component.html | 13 +++++++++++-- .../chat/chat-header/chat-header.component.ts | 1 + .../control-item/control-item.component.scss | 5 +++++ .../control-item/control-item.component.ts | 6 ++++-- .../controls/files/files.component.html | 4 +++- .../components/controls/files/files.component.ts | 3 ++- .../controls/input/input.component.html | 3 +-- .../controls/input/input.component.scss | 4 ++++ .../controls/recorder/recorder.component.html | 6 +++++- .../controls/recorder/recorder.component.ts | 3 ++- .../chat-iframe/chat-iframe.component.html | 3 ++- .../chat-iframe/chat-iframe.component.ts | 3 +++ .../src/app/modules/+chat/shared/chat.service.ts | 9 +++++++++ .../src/environments/environment.development.ts | 2 +- apps/spa/src/environments/environment.ts | 2 +- 16 files changed, 67 insertions(+), 16 deletions(-) diff --git a/apps/spa/src/app/components/chat/chat-footer/chat-footer.component.html b/apps/spa/src/app/components/chat/chat-footer/chat-footer.component.html index 61deb64..f4d2c26 100644 --- a/apps/spa/src/app/components/chat/chat-footer/chat-footer.component.html +++ b/apps/spa/src/app/components/chat/chat-footer/chat-footer.component.html @@ -1,11 +1,21 @@ @if (isTranscriptionEnabled) { - + } @if (isAttachmentEnabled) { - + } - + diff --git a/apps/spa/src/app/components/chat/chat-header/chat-header.component.html b/apps/spa/src/app/components/chat/chat-header/chat-header.component.html index 23d8319..3970fe5 100644 --- a/apps/spa/src/app/components/chat/chat-header/chat-header.component.html +++ b/apps/spa/src/app/components/chat/chat-header/chat-header.component.html @@ -4,11 +4,20 @@
@if (isConfigEnabled) { - } @if (isRefreshEnabled) { - } diff --git a/apps/spa/src/app/components/chat/chat-header/chat-header.component.ts b/apps/spa/src/app/components/chat/chat-header/chat-header.component.ts index 7e6f62f..aeff42f 100644 --- a/apps/spa/src/app/components/chat/chat-header/chat-header.component.ts +++ b/apps/spa/src/app/components/chat/chat-header/chat-header.component.ts @@ -14,6 +14,7 @@ export class ChatHeaderComponent { @Output() close$ = new EventEmitter(); @Output() refresh$ = new EventEmitter(); @Output() config$ = new EventEmitter(); + @Input() isResponding = false; @Input() isRefreshEnabled = true; @Input() isConfigEnabled = true; diff --git a/apps/spa/src/app/components/controls/control-item/control-item.component.scss b/apps/spa/src/app/components/controls/control-item/control-item.component.scss index 0fc3a4a..8d664e7 100644 --- a/apps/spa/src/app/components/controls/control-item/control-item.component.scss +++ b/apps/spa/src/app/components/controls/control-item/control-item.component.scss @@ -22,4 +22,9 @@ background-color: var(--color-grey-300); color: var(--color-grey-900); } + + &.is-disabled { + pointer-events: none; + opacity: 0.5; + } } diff --git a/apps/spa/src/app/components/controls/control-item/control-item.component.ts b/apps/spa/src/app/components/controls/control-item/control-item.component.ts index c553f9e..47eb001 100644 --- a/apps/spa/src/app/components/controls/control-item/control-item.component.ts +++ b/apps/spa/src/app/components/controls/control-item/control-item.component.ts @@ -1,4 +1,4 @@ -import { Component } from '@angular/core'; +import { Component, HostBinding, Input } from '@angular/core'; @Component({ selector: 'ai-control-item', @@ -6,4 +6,6 @@ import { Component } from '@angular/core'; templateUrl: './control-item.component.html', styleUrl: './control-item.component.scss', }) -export class ControlItemComponent {} +export class ControlItemComponent { + @HostBinding('class.is-disabled') @Input() isDisabled = false; +} diff --git a/apps/spa/src/app/components/controls/files/files.component.html b/apps/spa/src/app/components/controls/files/files.component.html index d669310..eda0359 100644 --- a/apps/spa/src/app/components/controls/files/files.component.html +++ b/apps/spa/src/app/components/controls/files/files.component.html @@ -2,7 +2,9 @@ aiFiles (click)="input.click()" (drop$)="addFiles($event)" - [files]="files()"> + [files]="files()" + [isDisabled]="isDisabled" +> attach_file @if (files().length) { diff --git a/apps/spa/src/app/components/controls/files/files.component.ts b/apps/spa/src/app/components/controls/files/files.component.ts index c142cbf..41c696d 100644 --- a/apps/spa/src/app/components/controls/files/files.component.ts +++ b/apps/spa/src/app/components/controls/files/files.component.ts @@ -1,4 +1,4 @@ -import { Component, ViewChild } from '@angular/core'; +import { Component, Input, ViewChild } from '@angular/core'; import { MatIcon } from '@angular/material/icon'; import { AiFilesDirective } from './files.directive'; import { toSignal } from '@angular/core/rxjs-interop'; @@ -20,6 +20,7 @@ import { ControlIconComponent } from '../control-icon/control-icon.component'; }) export class FilesComponent { @ViewChild('input') input!: HTMLInputElement; + @Input() isDisabled = false; files = toSignal(this.fileService.files$, { initialValue: [] }); constructor(private readonly fileService: FilesService) {} diff --git a/apps/spa/src/app/components/controls/input/input.component.html b/apps/spa/src/app/components/controls/input/input.component.html index 82fb91d..00c88e1 100644 --- a/apps/spa/src/app/components/controls/input/input.component.html +++ b/apps/spa/src/app/components/controls/input/input.component.html @@ -4,8 +4,7 @@ placeholder="Aa" autocomplete="off" [(ngModel)]="content" - [disabled]="isDisabled" - (keydown.enter)="send(content)" /> + (keydown.enter)="!isDisabled && send(content)" />