Version 1.0.0 - Finalisation du composant Servers
This commit is contained in:
@@ -21,8 +21,8 @@ import { watch } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { useGlobalStore } from '@/stores/globalStore';
|
||||
import { useUserStore } from '@/stores/userStore';
|
||||
import { IOListener } from '@/utils/IORequest';
|
||||
import { onMounted } from 'vue';
|
||||
import { IOListener, IORequest } from '@/utils/IORequest';
|
||||
import { onMounted, ref } from 'vue';
|
||||
|
||||
const props = defineProps({
|
||||
guildId: {
|
||||
@@ -40,9 +40,10 @@ if (!guildId) {
|
||||
const globalStore = useGlobalStore();
|
||||
const userStore = useUserStore();
|
||||
const router = useRouter();
|
||||
const alreadyLoaded = ref(false);
|
||||
|
||||
watch(() => globalStore.isLoading, (value) => {
|
||||
if(!value) {
|
||||
watch(() => globalStore.isLoading, (value, oldValue) => {
|
||||
if(!value && oldValue != value) {
|
||||
loadInteface();
|
||||
}
|
||||
})
|
||||
@@ -53,19 +54,42 @@ onMounted(() => {
|
||||
}
|
||||
});
|
||||
|
||||
watch(() => userStore.userInfo, (newValue, oldValue) => {
|
||||
if(userStore.userInfo) {
|
||||
checkGuildAvailability();
|
||||
}
|
||||
}, { immediate: true });
|
||||
|
||||
function loadInteface() {
|
||||
if(alreadyLoaded.value) return;
|
||||
console.log("Loading interface")
|
||||
console.log("Guild ID:", guildId);
|
||||
checkGuildAvailability();
|
||||
|
||||
IORequest("/USERS/LIST", (data) => {
|
||||
console.log("User list received:", data);
|
||||
})
|
||||
|
||||
alreadyLoaded.value = true;
|
||||
}
|
||||
|
||||
function checkGuildAvailability() {
|
||||
console.log("Checking guild availability for ID:", guildId);
|
||||
if(userStore.userInfo.guilds.filter(guild => guild.id === guildId).length === 0) {
|
||||
globalStore.setLastGuild(null);
|
||||
console.warn("Guild not found, redirecting to servers list.");
|
||||
router.push('/servers');
|
||||
} else {
|
||||
globalStore.setLastGuild(guildId);
|
||||
IORequest("/GUILD/JOIN", (response) => {
|
||||
if(response === true) {
|
||||
console.log("Successfully joined guild:", guildId);
|
||||
} else {
|
||||
console.error("Failed to join guild:", response);
|
||||
globalStore.setLastGuild(null);
|
||||
router.push('/servers');
|
||||
}
|
||||
}, guildId);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<script setup>
|
||||
import ReturnHomeButton from '@/components/Actions/ReturnHomeButton.vue';
|
||||
import ReturnHomeButton from '@/components/Widget/ReturnHomeButton.vue';
|
||||
import DefaultSplash from '@/components/Layout/DefaultSplash.vue';
|
||||
import Box from '@/components/UI/Box.vue';
|
||||
import Button from '@/components/UI/Button.vue';
|
||||
|
@@ -7,9 +7,10 @@ import { useRouter } from 'vue-router';
|
||||
import { useGlobalStore } from '@/stores/globalStore';
|
||||
import { useUserStore } from '@/stores/userStore';
|
||||
import Button from '@/components/UI/Button.vue';
|
||||
import ReturnHomeButton from '@/components/Actions/ReturnHomeButton.vue';
|
||||
import ReturnHomeButton from '@/components/Widget/ReturnHomeButton.vue';
|
||||
import { ref } from 'vue';
|
||||
import ServerListItem from '@/components/Features/ServerListItem.vue';
|
||||
import ServerListItem from '@/components/Widget/ServerListItem.vue';
|
||||
import Info from '@/components/UI/Info.vue';
|
||||
|
||||
const globalStore = useGlobalStore();
|
||||
const userStore = useUserStore();
|
||||
@@ -36,6 +37,8 @@ function inviteSubsonics() {
|
||||
window.open(botInviteUrl.value, '_blank');
|
||||
}
|
||||
|
||||
// Vérifier RaphX pourquoi ca plante !
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -47,8 +50,8 @@ function inviteSubsonics() {
|
||||
<div class="servers-content">
|
||||
<div class="servers-container">
|
||||
<div class="servers-list">
|
||||
<ServerListItem v-for="server in userStore.userInfo.guilds" :key="server.id" :server="server" />
|
||||
|
||||
<ServerListItem v-if="userStore.userInfo.guilds.length > 0" v-for="server in userStore.userInfo.guilds" :key="server.id" :server="server" />
|
||||
<Info class="center" v-else>Aucun de tes serveurs n'est référencé dans le bot. Invite le bot sur un serveur pour le voir ici.</Info>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -60,6 +63,8 @@ function inviteSubsonics() {
|
||||
</Splash>
|
||||
</SocketEnvironment>
|
||||
|
||||
|
||||
|
||||
</template>
|
||||
<style scoped>
|
||||
.servers-div {
|
||||
@@ -83,6 +88,12 @@ function inviteSubsonics() {
|
||||
|
||||
}
|
||||
|
||||
.center {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding: 10px;;
|
||||
}
|
||||
|
||||
.server-box {
|
||||
width: 100%;
|
||||
max-width: 800px;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<script setup>
|
||||
import ReturnHomeButton from '@/components/Actions/ReturnHomeButton.vue';
|
||||
import ReturnHomeButton from '@/components/Widget/ReturnHomeButton.vue';
|
||||
import DefaultSplash from '@/components/Layout/DefaultSplash.vue';
|
||||
import Box from '@/components/UI/Box.vue';
|
||||
import Button from '@/components/UI/Button.vue';
|
||||
|
Reference in New Issue
Block a user