ciyidogan commited on
Commit
e40119d
·
verified ·
1 Parent(s): 63ff2f9

Update flare-ui/src/app/components/chat/chat.component.html

Browse files
flare-ui/src/app/components/chat/chat.component.html CHANGED
@@ -1,61 +1,92 @@
1
- <div *ngIf="!sessionId" class="start-wrapper">
2
- <mat-form-field appearance="outline" class="project-select">
3
- <mat-label>Project</mat-label>
4
- <mat-select [(ngModel)]="selectedProject" required>
5
- <mat-option *ngFor="let p of projects" [value]="p">{{ p }}</mat-option>
6
- </mat-select>
7
- </mat-form-field>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
- <button
10
- mat-raised-button
11
- color="primary"
12
- (click)="startChat()"
13
- [disabled]="!selectedProject"
14
- >
15
- <mat-icon>chat</mat-icon>
16
- Start Chat
17
- </button>
18
- </div>
 
19
 
20
- <!-- Oturum yoksa sadece Start Chat düğmesi -->
21
- <div *ngIf="!sessionId" class="start-wrapper">
22
- <button mat-raised-button color="primary" (click)="startChat()">
23
- <mat-icon>chat</mat-icon>
24
- Start Chat
25
- </button>
26
- </div>
27
 
28
- <!-- Oturum başladığında sohbet paneli -->
29
- <mat-card *ngIf="sessionId" class="chat-card">
30
- <div class="chat-history" #scrollMe>
31
- <div
32
- *ngFor="let msg of messages"
33
- [ngClass]="{
34
- 'msg-row': true,
35
- me: msg.author === 'user',
36
- bot: msg.author === 'assistant'
37
- }"
38
- >
39
- <span class="bubble">{{ msg.text }}</span>
 
 
40
  </div>
41
- </div>
42
 
43
- <form (ngSubmit)="send()" class="input-row">
44
- <mat-form-field appearance="outline" class="flex-1">
45
- <input
46
- matInput
47
- placeholder="Type your message…"
48
- [formControl]="input"
49
- autocomplete="off"/>
50
- </mat-form-field>
51
-
52
- <button
53
- mat-icon-button
54
- color="primary"
55
- type="submit"
56
- [disabled]="input.invalid">
57
- <mat-icon>send</mat-icon>
58
- </button>
59
- </form>
60
 
61
- </mat-card>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="chat-container">
2
+ <!-- Project Selection and Start Chat -->
3
+ <div *ngIf="!sessionId" class="start-wrapper">
4
+ <mat-card>
5
+ <mat-card-header>
6
+ <mat-icon mat-card-avatar>chat_bubble_outline</mat-icon>
7
+ <mat-card-title>Start a Chat Session</mat-card-title>
8
+ <mat-card-subtitle>Select a project to begin testing</mat-card-subtitle>
9
+ </mat-card-header>
10
+
11
+ <mat-card-content>
12
+ <mat-form-field appearance="outline" class="project-select">
13
+ <mat-label>Select Project</mat-label>
14
+ <mat-select [(ngModel)]="selectedProject" required>
15
+ <mat-option *ngFor="let p of projects" [value]="p">{{ p }}</mat-option>
16
+ </mat-select>
17
+ <mat-hint>Choose an enabled project with published version</mat-hint>
18
+ </mat-form-field>
19
+ </mat-card-content>
20
+
21
+ <mat-card-actions align="end">
22
+ <button
23
+ mat-raised-button
24
+ color="primary"
25
+ (click)="startChat()"
26
+ [disabled]="!selectedProject"
27
+ >
28
+ <mat-icon>chat</mat-icon>
29
+ Start Chat
30
+ </button>
31
+ </mat-card-actions>
32
+ </mat-card>
33
+ </div>
34
 
35
+ <!-- Chat Panel -->
36
+ <mat-card *ngIf="sessionId" class="chat-card">
37
+ <mat-card-header>
38
+ <mat-icon mat-card-avatar>smart_toy</mat-icon>
39
+ <mat-card-title>{{ selectedProject }}</mat-card-title>
40
+ <mat-card-subtitle>Session: {{ sessionId.substring(0, 8) }}...</mat-card-subtitle>
41
+ <div class="spacer"></div>
42
+ <button mat-icon-button (click)="endSession()" matTooltip="End Session">
43
+ <mat-icon>close</mat-icon>
44
+ </button>
45
+ </mat-card-header>
46
 
47
+ <mat-divider></mat-divider>
 
 
 
 
 
 
48
 
49
+ <div class="chat-history" #scrollMe>
50
+ <div
51
+ *ngFor="let msg of messages"
52
+ [ngClass]="{
53
+ 'msg-row': true,
54
+ 'me': msg.author === 'user',
55
+ 'bot': msg.author === 'assistant'
56
+ }"
57
+ >
58
+ <mat-icon class="msg-icon">
59
+ {{ msg.author === 'user' ? 'person' : 'smart_toy' }}
60
+ </mat-icon>
61
+ <span class="bubble">{{ msg.text }}</span>
62
+ </div>
63
  </div>
 
64
 
65
+ <mat-divider></mat-divider>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
 
67
+ <form (ngSubmit)="send()" class="input-row">
68
+ <mat-form-field appearance="outline" class="flex-1">
69
+ <mat-label>Type your message</mat-label>
70
+ <input
71
+ matInput
72
+ placeholder="Ask something..."
73
+ [formControl]="input"
74
+ autocomplete="off"
75
+ cdkTextareaAutosize
76
+ #autosize="cdkTextareaAutosize"
77
+ cdkAutosizeMinRows="1"
78
+ cdkAutosizeMaxRows="3"/>
79
+ <mat-hint>Press Enter to send</mat-hint>
80
+ </mat-form-field>
81
+
82
+ <button
83
+ mat-fab
84
+ color="primary"
85
+ type="submit"
86
+ [disabled]="input.invalid || !input.value?.trim()"
87
+ class="send-button">
88
+ <mat-icon>send</mat-icon>
89
+ </button>
90
+ </form>
91
+ </mat-card>
92
+ </div>