hotfix
This commit is contained in:
1 parent
0cb8b068a8
commit
64b0c76120
11 files changed
+453
-5
No files matched your search
@@ -30,7 +30,7 @@ const router = useRouter()
|
||||
const {renderMarkdown} = useMarkdown()
|
||||
|
||||
const messageContainer = ref<HTMLElement | null>(null);
|
||||
const {messages, loading, loadingBefore, loadingAfter, hasMoreAfter, isAtBottom, newestId} = storeToRefs(messageStore);
|
||||
const {messages, loading, loadError, loadingBefore, loadingAfter, hasMoreAfter, isAtBottom, newestId} = storeToRefs(messageStore);
|
||||
const newMessage = ref('');
|
||||
const fileInput = ref<HTMLInputElement | null>(null);
|
||||
type PendingAttachment = {
|
||||
@@ -435,6 +435,18 @@ watch(() => props.serverId, (newServerId) => {
|
||||
indeterminate
|
||||
/>
|
||||
|
||||
<v-alert
|
||||
v-if="loadError && !loading"
|
||||
class="mx-4 mt-4"
|
||||
type="error"
|
||||
variant="tonal"
|
||||
>
|
||||
<div class="d-flex align-center justify-space-between ga-2">
|
||||
<span>Impossible de charger l'historique des messages.</span>
|
||||
<v-btn size="small" variant="text" @click="messageStore.fetchMessages(channelId)">Réessayer</v-btn>
|
||||
</div>
|
||||
</v-alert>
|
||||
|
||||
<v-list bg-color="transparent" lines="three">
|
||||
<v-list-item
|
||||
v-for="msg in messages"
|
||||
|
||||
@@ -124,6 +124,7 @@ export const useMessageStore = defineStore("message", {
|
||||
hasMoreBefore: false,
|
||||
hasMoreAfter: false,
|
||||
loading: false,
|
||||
loadError: null as string | null,
|
||||
loadingBefore: false,
|
||||
loadingAfter: false,
|
||||
isAtBottom: true,
|
||||
@@ -155,6 +156,7 @@ export const useMessageStore = defineStore("message", {
|
||||
this.hasMoreAfter = false;
|
||||
this.isAtBottom = true;
|
||||
this.loading = true;
|
||||
this.loadError = null;
|
||||
|
||||
try {
|
||||
const page = await requestPage(channelId, {limit: MESSAGE_WINDOW_SIZE});
|
||||
@@ -166,6 +168,7 @@ export const useMessageStore = defineStore("message", {
|
||||
} catch (error) {
|
||||
if (requestVersion === this.requestVersion) {
|
||||
console.error("Erreur lors du chargement des messages:", error);
|
||||
this.loadError = error instanceof Error ? error.message : "Message loading failed";
|
||||
}
|
||||
} finally {
|
||||
if (requestVersion === this.requestVersion) {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import {defineStore} from 'pinia'
|
||||
import {useApi} from "@/composables/useApi.ts";
|
||||
import type {User} from "@/types/user";
|
||||
import {onGatewayEvent} from "@/plugins/events.ts";
|
||||
|
||||
export const useUserStore = defineStore('user', {
|
||||
state: () => ({
|
||||
users: [] as User[]
|
||||
users: [] as User[],
|
||||
serverId: null as string | null
|
||||
}),
|
||||
getters: {
|
||||
usersById: (state): Record<string, User> => {
|
||||
@@ -21,11 +23,21 @@ export const useUserStore = defineStore('user', {
|
||||
if (serverId) {
|
||||
url += `?server_id=${serverId}`;
|
||||
}
|
||||
this.serverId = serverId ?? null;
|
||||
const response = await api.get(url);
|
||||
this.users = await response.json();
|
||||
},
|
||||
reset() {
|
||||
this.users = [];
|
||||
this.serverId = null;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
onGatewayEvent("ServerUser", (payload) => {
|
||||
const store = useUserStore();
|
||||
const content = payload.content as { server_id?: string | null };
|
||||
if (content?.server_id && content.server_id === store.serverId) {
|
||||
void store.fetchUsers(content.server_id);
|
||||
}
|
||||
});
|
||||
Reference in new issue
Block a user