All checks were successful
Queue Release Build / prepare (push) Successful in 23s
Deploy Web Apps / deploy (push) Successful in 7m36s
Queue Release Build / build-windows (push) Successful in 28m3s
Queue Release Build / build-linux (push) Successful in 44m14s
Queue Release Build / finalize (push) Successful in 39s
95 lines
3.2 KiB
HTML
95 lines
3.2 KiB
HTML
<div
|
|
appThemeNode="chatSurface"
|
|
class="chat-layout relative h-full"
|
|
>
|
|
<app-chat-message-list
|
|
[allMessages]="allMessages()"
|
|
[channelMessages]="channelMessages()"
|
|
[loading]="loading()"
|
|
[syncing]="syncing()"
|
|
[currentUserId]="currentUser()?.id ?? null"
|
|
[isAdmin]="isAdmin()"
|
|
[bottomPadding]="composerBottomPadding()"
|
|
[conversationKey]="conversationKey()"
|
|
[loadingOlder]="loadingOlder()"
|
|
[conversationExhausted]="conversationExhausted()"
|
|
(replyRequested)="setReplyTo($event)"
|
|
(deleteRequested)="handleDeleteRequested($event)"
|
|
(editSaved)="handleEditSaved($event)"
|
|
(reactionAdded)="handleReactionAdded($event)"
|
|
(reactionToggled)="handleReactionToggled($event)"
|
|
(downloadRequested)="downloadAttachment($event)"
|
|
(imageOpened)="openLightbox($event)"
|
|
(imageContextMenuRequested)="openImageContextMenu($event)"
|
|
(embedRemoved)="handleEmbedRemoved($event)"
|
|
(loadOlderRequested)="handleLoadOlderRequested($event)"
|
|
/>
|
|
|
|
<div
|
|
appThemeNode="chatComposerBar"
|
|
class="chat-bottom-bar absolute bottom-0 left-0 right-0 z-10"
|
|
>
|
|
<app-chat-message-composer
|
|
[replyTo]="replyTo()"
|
|
[showKlipyGifPicker]="showKlipyGifPicker()"
|
|
[klipyEnabled]="klipyEnabled()"
|
|
[klipySignalSource]="currentRoom()"
|
|
(messageSubmitted)="handleMessageSubmitted($event)"
|
|
(typingStarted)="handleTypingStarted()"
|
|
(replyCleared)="clearReply()"
|
|
(heightChanged)="handleComposerHeightChanged($event)"
|
|
(klipyGifPickerToggleRequested)="toggleKlipyGifPicker()"
|
|
/>
|
|
</div>
|
|
|
|
@if (showKlipyGifPicker()) {
|
|
@if (isMobile()) {
|
|
<app-bottom-sheet (dismissed)="closeKlipyGifPicker()">
|
|
<div appThemeNode="chatGifPickerSurface">
|
|
<app-klipy-gif-picker
|
|
[signalSource]="currentRoom()"
|
|
(gifSelected)="handleKlipyGifSelected($event)"
|
|
(closed)="closeKlipyGifPicker()"
|
|
/>
|
|
</div>
|
|
</app-bottom-sheet>
|
|
} @else {
|
|
<div
|
|
class="fixed inset-0 z-[89]"
|
|
(click)="closeKlipyGifPicker()"
|
|
(keydown.enter)="closeKlipyGifPicker()"
|
|
(keydown.space)="closeKlipyGifPicker()"
|
|
tabindex="0"
|
|
role="button"
|
|
aria-label="Close GIF picker"
|
|
style="-webkit-app-region: no-drag"
|
|
></div>
|
|
|
|
<div class="pointer-events-none fixed inset-0 z-[90]">
|
|
<div
|
|
appThemeNode="chatGifPickerSurface"
|
|
class="pointer-events-auto absolute w-[calc(100vw-2rem)] max-w-5xl sm:w-[34rem] md:w-[42rem] xl:w-[52rem]"
|
|
[style.bottom.px]="composerBottomPadding() + 8"
|
|
[style.right.px]="klipyGifPickerAnchorRight()"
|
|
>
|
|
<app-klipy-gif-picker
|
|
[signalSource]="currentRoom()"
|
|
(gifSelected)="handleKlipyGifSelected($event)"
|
|
(closed)="closeKlipyGifPicker()"
|
|
/>
|
|
</div>
|
|
</div>
|
|
}
|
|
}
|
|
|
|
<app-chat-message-overlays
|
|
[lightboxAttachment]="lightboxAttachment()"
|
|
[imageContextMenu]="imageContextMenu()"
|
|
(lightboxClosed)="closeLightbox()"
|
|
(contextMenuClosed)="closeImageContextMenu()"
|
|
(downloadRequested)="downloadAttachment($event)"
|
|
(copyRequested)="copyImageToClipboard($event)"
|
|
(imageContextMenuRequested)="openImageContextMenu($event)"
|
|
/>
|
|
</div>
|