Compare commits

..

No commits in common. "51416aec01fd1ebbc91ad923b037d0ca1ad44bdc" and "d61f2ed9388a69aaf89a406b1c74f67c457e0979" have entirely different histories.

6 changed files with 19 additions and 55 deletions

View File

@ -27,7 +27,6 @@
min-width: 0; min-width: 0;
padding: 0 5px 0 5px; padding: 0 5px 0 5px;
min-height: 0; min-height: 0;
box-sizing: border-box;
} }
} }
} }

View File

@ -1,16 +1,6 @@
.full-width {
display: flex;
align-items: center;
padding-top: 15px;
padding-bottom: 15px;
border-radius: 8px;
margin-bottom: 10px;
}
.server { .server {
font-size: 20px;
font-family: minecraft-text, 'opensans-bold', sans-serif;
letter-spacing: 1px;
font-weight: bold;
padding-left: 10px; padding-left: 10px;
font-size: 25px;
font-family: minecraft-text, 'opensans-bold', sans-serif;
letter-spacing: 2px;
} }

View File

@ -1,10 +1,8 @@
<div class="message-container"> @for (message of messages(); track message.timestamp) {
@for (message of messages(); track message.timestamp) { <p>
<p class="message">
<span class="date-time" [class.blocked]="!message.notBlocked"> <span class="date-time" [class.blocked]="!message.notBlocked">
[{{ message.timestamp * 1000 | date: 'mediumTime' }}] [{{ message.timestamp * 1000 | date: 'mediumTime' }}]
</span> </span>
<mini-message [node]="message.messageJson"></mini-message> <mini-message [node]="message.messageJson"></mini-message>
</p> </p>
} }
</div>

View File

@ -1,20 +1,3 @@
:host {
display: block;
height: 100%;
}
.message-container {
display: flex;
flex-direction: column-reverse;
height: 100%;
overflow-y: auto;
box-sizing: border-box;
}
.message {
margin: 5px 0;
}
.blocked { .blocked {
color: red; color: red;
} }

View File

@ -5,25 +5,19 @@
.server { .server {
position: relative; position: relative;
display: flex; display: flex;
align-items: center; padding: 2px 2px 2px 10px;
padding: 10px 20px;
border-bottom: 1px solid #222; border-bottom: 1px solid #222;
cursor: pointer;
transition: background-color 0.2s;
&:hover {
background-color: #202c42;
}
.server-name { .server-name {
color: white; color: white
font-weight: bold;
} }
.notification { .notification {
position: absolute; position: absolute;
right: 15px; right: 10px;
color: #3b82f6; top: 50%;
transform: translateY(-50%);
color: blue;
} }
} }
} }

View File

@ -20,7 +20,7 @@ export class ChatService implements OnDestroy {
private eventSource?: EventSourcePolyfill; private eventSource?: EventSourcePolyfill;
private readonly authService: AuthService = inject(AuthService) private readonly authService: AuthService = inject(AuthService)
private readonly _messages = signal<ChatMessage[]>([]) private readonly _messages = signal<ChatMessage[]>([])
public readonly messages = computed(() => this._messages().filter((message) => message.server === this._selectedServer()).sort((a, b) => a.timestamp - b.timestamp)); public readonly messages = computed(() => this._messages().filter((message) => message.server === this._selectedServer()));
private readonly _servers = signal<ChatServer[]>([]) private readonly _servers = signal<ChatServer[]>([])
public readonly servers = computed(() => this._servers().sort((a, b) => a.server.localeCompare(b.server))); public readonly servers = computed(() => this._servers().sort((a, b) => a.server.localeCompare(b.server)));
private readonly _selectedServer = signal<string>(''); private readonly _selectedServer = signal<string>('');
@ -53,7 +53,7 @@ export class ChatService implements OnDestroy {
this.on(source, 'chat', (event) => { this.on(source, 'chat', (event) => {
const chatMessages = this.processChatMessages(event); const chatMessages = this.processChatMessages(event);
chatMessages.forEach((message) => { chatMessages.forEach((message) => {
const find = this.servers().find(server => message.server === server.server && message.server !== this._selectedServer()); const find = this.servers().find(server => message.server === server.server);
if (find) { if (find) {
find.unreadMessages++; find.unreadMessages++;
} }