diff --git a/src/app/main/chat/chat.component.scss b/src/app/main/chat/chat.component.scss
index 4430c1a..dcba106 100644
--- a/src/app/main/chat/chat.component.scss
+++ b/src/app/main/chat/chat.component.scss
@@ -502,16 +502,6 @@
}
-.message-image {
- max-width: 8rem;
- border-radius: 10px;
- border: 1px rgba(0, 0, 0, 0.2) solid;
- position: relative;
- display: inline-block;
- overflow: hidden;
- cursor: pointer;
-}
-
.upload-image {
border: none;
border-radius: 100%;
@@ -535,13 +525,36 @@
}
.loaded-img {
- max-width: 8rem;
- border-radius: 10px;
- border: 1px rgba(0, 0, 0, 0.2) solid;
+ max-width: 20rem;
+ max-height: 20rem;
+ width: auto;
+ height: auto;
+ object-fit: contain;
+ border: 1px solid var(--light-purple-line);
+ border-radius: 1.25rem;
+ position: relative;
+
+ &:hover {
+ cursor: pointer;
+ border-color: var(--purple-2);
+ }
+
+ &:active {
+ border-color: var(--purple-1);
+ }
+}
+
+.preview-image {
position: relative;
display: inline-block;
- overflow: hidden;
+ width: 8rem; // Feste Vorschau-Breite
+ height: 8rem; // Feste Vorschau-Höhe
+ margin-right: 1rem; // Abstand zur Nachricht
cursor: pointer;
+ border-radius: 1.25rem;
+ overflow: hidden;
+ border: 1px solid var(--light-purple-line);
+
&::after {
content: '';
@@ -560,73 +573,26 @@
opacity: 1;
}
- img:last-child {
+ img {
width: 100%;
- height: auto;
+ height: 100%;
+ object-fit: cover; // Das Bild wird in den Container eingepasst, ohne Verzerrung
+ border-radius: 0.5rem;
}
+ .closeButton {
+ position: absolute;
+ top: 0.5rem;
+ right: 0.5rem;
+ z-index: 10; // Sicherstellen, dass es über dem Bild liegt
+ background-color: rgba(236, 238, 254, 0.5);
-}
-
-.delete-preview {
- position: absolute;
- top: 0;
- right: 0;
- z-index: 10;
- cursor: default;
- border-radius: 100%;
-
- &:hover {
- background-color: rgba(45, 8, 225, 0.2);
+ &:hover {
+ background-color: rgba(236, 238, 254, 1);
+ }
}
}
-.modal {
- display: flex;
- justify-content: center;
- align-items: center;
- position: fixed;
- z-index: 1000;
- left: 0;
- top: 0;
- width: 100%;
- height: 100%;
- overflow: auto;
- background-color: rgba(0, 0, 0, 0.8);
-}
-
-.modal-content {
- position: relative;
- background-color: #fefefe;
- padding: 20px;
- border-radius: 10px;
- max-width: 90%;
- max-height: 90%;
- overflow: auto;
-}
-
-.modal-content img {
- width: 100%;
- height: auto;
-}
-
-.close {
- position: absolute;
- top: 10px;
- right: 10px;
- color: #aaa;
- font-size: 28px;
- font-weight: bold;
- cursor: pointer;
-}
-
-.close:hover,
-.close:focus {
- color: #000;
- text-decoration: none;
- cursor: pointer;
-}
-
.input-container {
padding: 0.5rem 1rem 1rem 1rem;
}
diff --git a/src/app/main/chat/chat.component.ts b/src/app/main/chat/chat.component.ts
index d1157df..5f4d789 100644
--- a/src/app/main/chat/chat.component.ts
+++ b/src/app/main/chat/chat.component.ts
@@ -38,6 +38,7 @@ import { HighlightMentionsPipe } from "../../pipes/highlist-mentions.pipe";
import { PofileInfoCardComponent } from "../../pofile-info-card/pofile-info-card.component";
import { EmojiModule } from "@ctrl/ngx-emoji-mart/ngx-emoji";
import { ImageService } from "../../image.service";
+import { DialogImageComponent } from "../../dialog-image/dialog-image.component";
@Component({
selector: "app-chat",
@@ -84,9 +85,6 @@ export class ChatComponent implements AfterViewInit, AfterViewChecked {
public currentChannel!: Channel;
currentInputValue: string = "";
previewUrl: string | ArrayBuffer | null = null;
- showModal: boolean = false;
- showImageModal: "preview" | "chatImage" | string = '';
- modalSrc: string | ArrayBuffer = '';
pickerPosition = { top: '0px', left: '0px' };
editMessageId: string | null = null;
@@ -254,6 +252,13 @@ export class ChatComponent implements AfterViewInit, AfterViewChecked {
}
}
+ openDialogImage(imageUrl: string | ArrayBuffer) {
+ this.dialog.open(DialogImageComponent, {
+ panelClass: "image-dialog",
+ data: imageUrl
+ });
+ }
+
openDialogChannelInfo() {
this.dialog.open(DialogChannelInfoComponent, {
panelClass: "custom-dialog-br",
@@ -310,13 +315,13 @@ export class ChatComponent implements AfterViewInit, AfterViewChecked {
let imageUrl = '';
if (this.previewUrl) {
- const fileInput = document.getElementById('fileUpload') as HTMLInputElement;
+ const fileInput = document.getElementById('fileUploadChat') as HTMLInputElement;
imageUrl = await this.imageService.uploadFile(fileInput);
console.log(imageUrl)
this.clearPreview();
-
}
- if (this.messageText.trim() !== "") {
+
+ if ((this.messageText.trim() !== "") || (imageUrl.trim() !== "")) {
const message: Message = {
id: "",
avatar: this.currentUser.currentUser.avatar || '', // Beispiel für das Hinzufügen eines Avatars
@@ -540,15 +545,6 @@ export class ChatComponent implements AfterViewInit, AfterViewChecked {
this.previewUrl = null;
}
- openModal(modalURL: string | ArrayBuffer) {
- this.modalSrc = modalURL;
- this.showModal = true;
- }
-
- closeModal() {
- this.showModal = false;
- }
-
openDialogEditMessage(channelId: string, messageId: string, currentMessage: string): void {
const dialogRef = this.dialog.open(DialogEditMessageComponent, {
panelClass: 'edit-message-dialog',
diff --git a/src/app/main/chat/chat.service.ts b/src/app/main/chat/chat.service.ts
index 4d4f9ca..ccffbba 100644
--- a/src/app/main/chat/chat.service.ts
+++ b/src/app/main/chat/chat.service.ts
@@ -262,7 +262,6 @@ export class ChatService {
const messagesSnapshot = await getDocs(threadRef);
const messageCount = messagesSnapshot.size;
const newMessageRef = doc(threadRef, this.padNumber(messageCount, 4));
-
const messageData: Message = {
id: this.currentUser.currentUser.id,
avatar: this.currentUser.currentUser.avatar,
diff --git a/src/app/main/chat/direct-message/direct-message.component.html b/src/app/main/chat/direct-message/direct-message.component.html
index 673e9ab..9f1816e 100644
--- a/src/app/main/chat/direct-message/direct-message.component.html
+++ b/src/app/main/chat/direct-message/direct-message.component.html
@@ -79,8 +79,9 @@
{{ dayDate(message.value.time) }}
{{ message.value.name }}
{{ dayTime(message.value.time) }} Uhr