fix(web): prevent date parsing sort drop to top of history for real-time messages
This commit is contained in:
@@ -3,10 +3,10 @@ import { api } from "../lib/api.ts";
|
|||||||
import { type Reaction } from "./message.ts";
|
import { type Reaction } from "./message.ts";
|
||||||
|
|
||||||
function parseDate(iso: string): number {
|
function parseDate(iso: string): number {
|
||||||
if (!iso) return 0;
|
if (!iso) return Date.now();
|
||||||
const normalized = iso.includes("T") ? iso : iso.replace(" ", "T");
|
const normalized = iso.includes("T") ? iso : iso.replace(" ", "T");
|
||||||
const t = new Date(normalized).getTime();
|
const t = new Date(normalized).getTime();
|
||||||
return isNaN(t) ? 0 : t;
|
return isNaN(t) ? Date.now() : t;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ConversationMember {
|
export interface ConversationMember {
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ import { create } from "zustand";
|
|||||||
import { api } from "../lib/api.ts";
|
import { api } from "../lib/api.ts";
|
||||||
|
|
||||||
function parseDate(iso: string): number {
|
function parseDate(iso: string): number {
|
||||||
if (!iso) return 0;
|
if (!iso) return Date.now();
|
||||||
const normalized = iso.includes("T") ? iso : iso.replace(" ", "T");
|
const normalized = iso.includes("T") ? iso : iso.replace(" ", "T");
|
||||||
const t = new Date(normalized).getTime();
|
const t = new Date(normalized).getTime();
|
||||||
return isNaN(t) ? 0 : t;
|
return isNaN(t) ? Date.now() : t;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MessageEmbed {
|
export interface MessageEmbed {
|
||||||
|
|||||||
@@ -128,7 +128,6 @@ export const useWebSocketStore = create<WebSocketState>((set, get) => ({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const addMessage = useMessageStore.getState().addMessage;
|
|
||||||
const updateMessage = useMessageStore.getState().updateMessage;
|
const updateMessage = useMessageStore.getState().updateMessage;
|
||||||
const removeMessage = useMessageStore.getState().removeMessage;
|
const removeMessage = useMessageStore.getState().removeMessage;
|
||||||
const addReaction = useMessageStore.getState().addReaction;
|
const addReaction = useMessageStore.getState().addReaction;
|
||||||
@@ -155,7 +154,7 @@ export const useWebSocketStore = create<WebSocketState>((set, get) => ({
|
|||||||
} else {
|
} else {
|
||||||
const msg = payload as unknown as Message;
|
const msg = payload as unknown as Message;
|
||||||
const normalizedMsg = { ...msg, channel_id: (msg.channel_id || '').toLowerCase() };
|
const normalizedMsg = { ...msg, channel_id: (msg.channel_id || '').toLowerCase() };
|
||||||
addMessage(normalizedMsg);
|
useMessageStore.getState().addMessage(normalizedMsg);
|
||||||
|
|
||||||
// Desktop notification
|
// Desktop notification
|
||||||
const currentUserId = useAuthStore.getState().user?.id;
|
const currentUserId = useAuthStore.getState().user?.id;
|
||||||
|
|||||||
Reference in New Issue
Block a user