diff --git a/projects/pazznetwork/ngx-chat/src/lib/components/chat-filedrop/file-drop.component.html b/projects/pazznetwork/ngx-chat/src/lib/components/chat-filedrop/file-drop.component.html
new file mode 100644
index 00000000..76dd2d21
--- /dev/null
+++ b/projects/pazznetwork/ngx-chat/src/lib/components/chat-filedrop/file-drop.component.html
@@ -0,0 +1,9 @@
+
+
+ {{dropMessage}}
+
+
+
+
+
diff --git a/projects/pazznetwork/ngx-chat/src/lib/components/chat-filedrop/file-drop.component.less b/projects/pazznetwork/ngx-chat/src/lib/components/chat-filedrop/file-drop.component.less
new file mode 100644
index 00000000..ede3db60
--- /dev/null
+++ b/projects/pazznetwork/ngx-chat/src/lib/components/chat-filedrop/file-drop.component.less
@@ -0,0 +1,23 @@
+.drop-message {
+ pointer-events: none;
+ display: none;
+}
+
+.drop-message--visible {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ flex-direction: column;
+
+ text-align: center;
+ font-size: 1.5em;
+ z-index: 999;
+ background-color: rgba(255, 255, 255, 0.6);
+ padding: 1em;
+}
diff --git a/projects/pazznetwork/ngx-chat/src/lib/components/chat-filedrop/file-drop.component.ts b/projects/pazznetwork/ngx-chat/src/lib/components/chat-filedrop/file-drop.component.ts
new file mode 100644
index 00000000..57466e8c
--- /dev/null
+++ b/projects/pazznetwork/ngx-chat/src/lib/components/chat-filedrop/file-drop.component.ts
@@ -0,0 +1,54 @@
+import { Component, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';
+
+@Component({
+ selector: 'ngx-chat-filedrop',
+ templateUrl: './file-drop.component.html',
+ styleUrls: ['./file-drop.component.less']
+})
+export class FileDropComponent implements OnInit {
+
+ @Output()
+ public fileUpload = new EventEmitter();
+
+ @Input()
+ dropMessage: string;
+
+ isDropTarget = false;
+
+ constructor() { }
+
+ ngOnInit() {
+ }
+
+ @HostListener('dragover', ['$event'])
+ @HostListener('dragenter', ['$event'])
+ onDragOver(event: DragEvent) {
+ event.preventDefault();
+ event.stopPropagation();
+ this.isDropTarget = true;
+ }
+
+ @HostListener('dragleave', ['$event'])
+ @HostListener('dragexit', ['$event'])
+ onDragLeave(event: DragEvent) {
+ event.preventDefault();
+ event.stopPropagation();
+ this.isDropTarget = false;
+ }
+
+ @HostListener('drop', ['$event'])
+ async onDrop(event: DragEvent) {
+ event.preventDefault();
+ event.stopPropagation();
+
+ this.isDropTarget = false;
+
+ for (let i = 0; i < event.dataTransfer.items.length; i++) {
+ const dataTransferItem = event.dataTransfer.items[i];
+ if (dataTransferItem.kind === 'file') {
+ this.fileUpload.emit(dataTransferItem.getAsFile());
+ }
+ }
+ }
+
+}
diff --git a/projects/pazznetwork/ngx-chat/src/lib/components/chat-message-list/chat-message-list.component.less b/projects/pazznetwork/ngx-chat/src/lib/components/chat-message-list/chat-message-list.component.less
index 3eb2d9bc..515aab4a 100644
--- a/projects/pazznetwork/ngx-chat/src/lib/components/chat-message-list/chat-message-list.component.less
+++ b/projects/pazznetwork/ngx-chat/src/lib/components/chat-message-list/chat-message-list.component.less
@@ -5,6 +5,7 @@
min-height: 10em;
max-height: 20em;
overflow: scroll;
+ word-break: break-all;
}
.chat-messages-empty {
diff --git a/projects/pazznetwork/ngx-chat/src/lib/components/chat-message/chat-message.component.html b/projects/pazznetwork/ngx-chat/src/lib/components/chat-message/chat-message.component.html
index e92992a0..c7c8a538 100644
--- a/projects/pazznetwork/ngx-chat/src/lib/components/chat-message/chat-message.component.html
+++ b/projects/pazznetwork/ngx-chat/src/lib/components/chat-message/chat-message.component.html
@@ -5,6 +5,9 @@
+
+
![]()
+