Version 1.0.0 - Finalisation de Account et de GuildHeader

This commit is contained in:
2025-08-06 23:07:34 +02:00
parent 93379b0042
commit 4ab23f7c52
48 changed files with 1949 additions and 175 deletions

View File

@@ -14,6 +14,7 @@ export default {
},
emit(eventName, data) {
if(Events.has(eventName)) {
console.log(`Event emitted: ${eventName}`, data)
Events.get(eventName).forEach(fn => fn(data))
}
},

View File

@@ -1,5 +1,5 @@
<script setup>
import DefaultSplash from '@/components/Layout/DefaultSplash.vue';
import DefaultSplash from '@/components/UI/DefaultSplash.vue';
const defaultMessage = "On s'accorde et on prépare le concert !";
const connectMsg = "Erreur de connexion au serveur : xhr poll error"
@@ -16,11 +16,11 @@ const props = defineProps({
<template>
<DefaultSplash>
<h1 v-if="!interuptionMessage" class="separate"><Icon spin-pulse icon="fa-solid fa-spinner"/> Chargement de l'interface</h1>
<h1 v-else-if="interuptionMessage == connectMsg">Echec de connexion</h1>
<h1 v-else-if="interuptionMessage == connectMsg"><Icon icon="fa-solid fa-circle-exclamation"/> Echec de connexion</h1>
<h1 v-else><Icon icon="fa-solid fa-warning"/> Connexion interrompue</h1>
<div class="separate-col">
<p v-if="interuptionMessage" class="retry"><Icon spin-pulse icon="fa-solid fa-spinner"/> Tentative de reconnexion en cours</p>
<p v-if="interuptionMessage" class="second">Contactez Raphix (raphixscrap) en cas de problème prolongé.</p>
<p v-if="interuptionMessage" class="second">Si vous rencontrez des problèmes, contactez le support.</p>
</div>
<p v-if="interuptionMessage" class="error"><Icon icon="fa-solid fa-circle-xmark"/> {{ interuptionMessage }}</p>
<p v-else>{{ defaultMessage }}</p>

36
src/utils/Mouse.js Normal file
View File

@@ -0,0 +1,36 @@
import { ref, onMounted, onUnmounted } from 'vue';
export default function useMouse() {
const position = ref({
x: 0,
y: 0,
isDown: false,
});
function updateMousePosition(event) {
position.value.x = event.clientX;
position.value.y = event.clientY;
}
function setMouseDown() {
position.value.isDown = true;
}
function setMouseUp() {
position.value.isDown = false;
}
onMounted(() => {
window.addEventListener('mousemove', updateMousePosition);
window.addEventListener('mousedown', setMouseDown);
window.addEventListener('mouseup', setMouseUp);
});
onUnmounted(() => {
window.removeEventListener('mousemove', updateMousePosition);
window.removeEventListener('mousedown', setMouseDown);
window.removeEventListener('mouseup', setMouseUp);
});
return position;
};

View File

@@ -12,7 +12,7 @@
</DefaultSplash>
</template>
<script setup>
import DefaultSplash from '@/components/Layout/DefaultSplash.vue';
import DefaultSplash from '@/components/UI/DefaultSplash.vue';
import { useLoginStore } from '@/stores/loginStore';
import { useRoute, useRouter } from 'vue-router';
import {socket} from '@/socket.js';

View File

@@ -0,0 +1,44 @@
export function getReadableDuration(duration) {
var max = ""
duration *= 1000;
const maxhours = Math.floor(duration / 3600000);
var maxmin = Math.trunc(duration / 60000) - (Math.floor(duration / 60000 / 60) * 60);
var maxsec = Math.floor(duration / 1000) - (Math.floor(duration / 1000 / 60) * 60);
if (maxsec < 10) {
maxsec = `0${maxsec}`;
}
if(maxhours != 0) {
if (maxmin < 10) {
maxmin = `0${maxmin}`;
}
max = maxhours + "h" + maxmin + "m" + maxsec
} else {
max = maxmin + "m" + maxsec + "s"
}
return max
}
export function getSecondsDuration(duration) {
// Duration is in format hh:mm:ss and can be just m:ss or mm:ss
var durationArray = duration.split(":");
var seconds = 0;
if(durationArray.length == 3) {
seconds = parseInt(durationArray[0]) * 3600 + parseInt(durationArray[1]) * 60 + parseInt(durationArray[2]);
} else if(durationArray.length == 2) {
seconds = parseInt(durationArray[0]) * 60 + parseInt(durationArray[1]);
} else {
seconds = parseInt(durationArray[0]);
}
return seconds;
}