From 93379b0042f4f8bae2c190db7f3a9fd0a12b2395 Mon Sep 17 00:00:00 2001 From: Raphix Date: Sat, 26 Jul 2025 22:34:09 +0200 Subject: [PATCH] =?UTF-8?q?Version=201.0.0=20-=20Cr=C3=A9ation=20du=20Head?= =?UTF-8?q?er?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/logo.png | Bin 24142 -> 0 bytes public/logoblack.png | Bin 28088 -> 0 bytes public/logoblack.svg | 54 ----------- src/App.vue | 5 - src/assets/Global.scss | 4 + src/assets/LogoDark.vue | 28 ++++++ public/logo.svg => src/assets/LogoLight.vue | 28 +----- .../assets/LogoWhite.vue | 28 +----- .../Features/{UserAction.vue => Account.vue} | 1 - src/components/Features/HeaderGuild.vue | 87 ++++++++++++++++++ src/components/Layout/Splash.vue | 6 +- src/components/UI/ListenBox.vue | 24 +++++ src/components/UI/SubsonicsLogo.vue | 25 +++++ src/components/Widget/ServerItem.vue | 54 +++++++++++ src/components/Widget/ServerListItem.vue | 40 ++------ src/routes.js | 3 + src/utils/Events.js | 23 +++++ src/utils/SocketEnvironment.vue | 6 +- src/views/Interface.vue | 25 ++--- src/views/Servers.vue | 6 +- 20 files changed, 281 insertions(+), 166 deletions(-) delete mode 100644 public/logo.png delete mode 100644 public/logoblack.png delete mode 100644 public/logoblack.svg create mode 100644 src/assets/LogoDark.vue rename public/logo.svg => src/assets/LogoLight.vue (69%) rename public/logo-white.svg => src/assets/LogoWhite.vue (69%) rename src/components/Features/{UserAction.vue => Account.vue} (97%) create mode 100644 src/components/Features/HeaderGuild.vue create mode 100644 src/components/UI/ListenBox.vue create mode 100644 src/components/UI/SubsonicsLogo.vue create mode 100644 src/components/Widget/ServerItem.vue create mode 100644 src/utils/Events.js diff --git a/public/logo.png b/public/logo.png deleted file mode 100644 index 246b130f3b973f99ee992027da7910366f98f6bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24142 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

SkJre^p6+E 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 - - - - - - - - diff --git a/src/App.vue b/src/App.vue index b5b6726..0f07a0a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -5,10 +5,5 @@ import { onMounted } from 'vue' import { useGlobalStore } from '@/stores/globalStore'; const globalStore = useGlobalStore(); - - onMounted(() => { - - }); console.log("Subsonics Chopin - App Vue Loaded"); - \ No newline at end of file diff --git a/src/assets/Global.scss b/src/assets/Global.scss index 11c104c..f642706 100644 --- a/src/assets/Global.scss +++ b/src/assets/Global.scss @@ -43,6 +43,7 @@ html, body { height: 100%; overflow-x: hidden; background-color: var(--primary); + transition: all 0.5s ease-in-out; } @@ -82,3 +83,6 @@ a { background: #ffffffa8; } +.full { + width: 100%; +} \ No newline at end of file diff --git a/src/assets/LogoDark.vue b/src/assets/LogoDark.vue new file mode 100644 index 0000000..672d8d6 --- /dev/null +++ b/src/assets/LogoDark.vue @@ -0,0 +1,28 @@ + \ No newline at end of file diff --git a/public/logo.svg b/src/assets/LogoLight.vue similarity index 69% rename from public/logo.svg rename to src/assets/LogoLight.vue index bce576b..0487969 100644 --- a/public/logo.svg +++ b/src/assets/LogoLight.vue @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/public/logo-white.svg b/src/assets/LogoWhite.vue similarity index 69% rename from public/logo-white.svg rename to src/assets/LogoWhite.vue index 0782db5..cb28321 100644 --- a/public/logo-white.svg +++ b/src/assets/LogoWhite.vue @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/src/components/Features/UserAction.vue b/src/components/Features/Account.vue similarity index 97% rename from src/components/Features/UserAction.vue rename to src/components/Features/Account.vue index 9aad1f6..5902630 100644 --- a/src/components/Features/UserAction.vue +++ b/src/components/Features/Account.vue @@ -39,7 +39,6 @@ function goToSettings() { justify-content: space-between; flex-direction: row; gap: 30px; - width: 100%; } .user-action { display: flex; diff --git a/src/components/Features/HeaderGuild.vue b/src/components/Features/HeaderGuild.vue new file mode 100644 index 0000000..78507e9 --- /dev/null +++ b/src/components/Features/HeaderGuild.vue @@ -0,0 +1,87 @@ + + + \ No newline at end of file diff --git a/src/components/Layout/Splash.vue b/src/components/Layout/Splash.vue index d74fd21..a392fe4 100644 --- a/src/components/Layout/Splash.vue +++ b/src/components/Layout/Splash.vue @@ -1,7 +1,7 @@ \ No newline at end of file diff --git a/src/components/UI/SubsonicsLogo.vue b/src/components/UI/SubsonicsLogo.vue new file mode 100644 index 0000000..f2416ff --- /dev/null +++ b/src/components/UI/SubsonicsLogo.vue @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/src/components/Widget/ServerItem.vue b/src/components/Widget/ServerItem.vue new file mode 100644 index 0000000..92c2aad --- /dev/null +++ b/src/components/Widget/ServerItem.vue @@ -0,0 +1,54 @@ + + + \ No newline at end of file diff --git a/src/components/Widget/ServerListItem.vue b/src/components/Widget/ServerListItem.vue index c2ec99c..f8d9ab4 100644 --- a/src/components/Widget/ServerListItem.vue +++ b/src/components/Widget/ServerListItem.vue @@ -1,13 +1,7 @@ \ No newline at end of file diff --git a/src/routes.js b/src/routes.js index 109ffe3..a952efa 100644 --- a/src/routes.js +++ b/src/routes.js @@ -10,6 +10,7 @@ import { socket } from "@/socket" import { useLoginStore } from './stores/loginStore' import { useGlobalStore } from './stores/globalStore' import Interface from './views/Interface.vue' +import events from './utils/Events' const router = createRouter({ history: createWebHistory(), @@ -33,6 +34,8 @@ router.beforeEach((to, from, next) => { const loginStore = useLoginStore() const globalStore = useGlobalStore() console.log(from.matched) + events.clear() + console.log("Clearing events") if(from.matched.length == 0) { globalStore.setLastRoute(null) } else { diff --git a/src/utils/Events.js b/src/utils/Events.js new file mode 100644 index 0000000..57b0d44 --- /dev/null +++ b/src/utils/Events.js @@ -0,0 +1,23 @@ +const Events = new Map() + +export default { + on(eventName, fn) { + if(!Events.has(eventName)) { + Events.set(eventName, []) + } + + Events.get(eventName).push(fn) + }, + + off(eventName, fn) { + throw {message:'Not implemented'} + }, + emit(eventName, data) { + if(Events.has(eventName)) { + Events.get(eventName).forEach(fn => fn(data)) + } + }, + clear() { + Events.clear() + }, +} \ No newline at end of file diff --git a/src/utils/SocketEnvironment.vue b/src/utils/SocketEnvironment.vue index dfe89fc..3f9944f 100644 --- a/src/utils/SocketEnvironment.vue +++ b/src/utils/SocketEnvironment.vue @@ -11,6 +11,7 @@ import { useRouter } from 'vue-router'; import { IOListener, IORequest } from '@/utils/IORequest'; import { useUserStore } from '@/stores/userStore'; import { useGlobalStore } from '@/stores/globalStore'; +import events from '@/utils/Events.js'; const router = useRouter(); const interuptionMessage = ref(null); @@ -29,16 +30,15 @@ import { useGlobalStore } from '@/stores/globalStore'; } IOListener("/USER/READY", () => { - IORequest("/USER/INFO", (data) => { + IORequest("/USER/INFO", (data) => { interuptionMessage.value = null; userStore.setUserInfo(data); + events.emit("UPDATE") console.log("User info received:", data); globalStore.setLoading(false); }); - }); - IOListener("AUTH_ERROR", (error) => { console.error("Authentication error:", error); loginStore.setToken(null); diff --git a/src/views/Interface.vue b/src/views/Interface.vue index 07efaa1..a0326a1 100644 --- a/src/views/Interface.vue +++ b/src/views/Interface.vue @@ -1,6 +1,7 @@ @@ -16,13 +17,15 @@ import Box from '@/components/UI/Box.vue'; import Button from '@/components/UI/Button.vue'; import SocketEnvironment from '@/utils/SocketEnvironment.vue'; -import UserAction from '@/components/Features/UserAction.vue'; import { watch } from 'vue'; import { useRouter } from 'vue-router'; import { useGlobalStore } from '@/stores/globalStore'; import { useUserStore } from '@/stores/userStore'; import { IOListener, IORequest } from '@/utils/IORequest'; import { onMounted, ref } from 'vue'; +import Account from '@/components/Features/Account.vue'; +import events from '@/utils/Events.js'; +import HeaderGuild from '@/components/Features/HeaderGuild.vue'; const props = defineProps({ guildId: { @@ -54,11 +57,9 @@ onMounted(() => { } }); -watch(() => userStore.userInfo, (newValue, oldValue) => { - if(userStore.userInfo) { - checkGuildAvailability(); - } -}, { immediate: true }); +events.on("UPDATE", () => { + checkGuildAvailability(); +}); function loadInteface() { if(alreadyLoaded.value) return; @@ -99,18 +100,10 @@ function checkGuildAvailability() {