web: optionally allow unique messages
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
parent
638e8d741f
commit
047030f901
|
@ -33,10 +33,13 @@ export class WebsocketClient {
|
|||
this.messageSocket.addEventListener("close", (e) => {
|
||||
console.debug(`authentik/ws: closed ws connection: ${e}`);
|
||||
if (this.retryDelay > 3000) {
|
||||
showMessage({
|
||||
showMessage(
|
||||
{
|
||||
level: MessageLevel.error,
|
||||
message: t`Connection error, reconnecting...`,
|
||||
});
|
||||
},
|
||||
true,
|
||||
);
|
||||
}
|
||||
setTimeout(() => {
|
||||
console.debug(`authentik/ws: reconnecting ws in ${this.retryDelay}ms`);
|
||||
|
|
|
@ -9,12 +9,12 @@ import { EVENT_WS_MESSAGE, WS_MSG_TYPE_MESSAGE } from "../../constants";
|
|||
import "./Message";
|
||||
import { APIMessage } from "./Message";
|
||||
|
||||
export function showMessage(message: APIMessage): void {
|
||||
export function showMessage(message: APIMessage, unique = false): void {
|
||||
const container = document.querySelector<MessageContainer>("ak-message-container");
|
||||
if (!container) {
|
||||
throw new Error("failed to find message container");
|
||||
}
|
||||
container.addMessage(message);
|
||||
container.addMessage(message, unique);
|
||||
container.requestUpdate();
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,13 @@ export class MessageContainer extends LitElement {
|
|||
}) as EventListener);
|
||||
}
|
||||
|
||||
addMessage(message: APIMessage): void {
|
||||
addMessage(message: APIMessage, unique = false): void {
|
||||
if (unique) {
|
||||
const matchingMessages = this.messages.filter((m) => m.message == message.message);
|
||||
if (matchingMessages.length > 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
this.messages.push(message);
|
||||
}
|
||||
|
||||
|
|
Reference in a new issue