From e78a60f7714fb675e78c3c4e4d3d5b364773fc88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Pons?= Date: Wed, 18 Jun 2025 17:41:19 +0200 Subject: [PATCH] Rework Training Viewer rendering as vertical --- app.vue | 2 +- components/TrainingViewer.vue | 101 +++++++-------------------- db.sqlite-shm | Bin 32768 -> 32768 bytes db.sqlite-wal | Bin 2851072 -> 3675072 bytes layouts/default.vue | 2 +- pages/character/[id]/edit.client.vue | 31 +++----- pages/character/manage.client.vue | 14 ++-- 7 files changed, 44 insertions(+), 106 deletions(-) diff --git a/app.vue b/app.vue index a37687e..3140f21 100644 --- a/app.vue +++ b/app.vue @@ -4,7 +4,7 @@ -
+
diff --git a/components/TrainingViewer.vue b/components/TrainingViewer.vue index 3c0e588..c253adf 100644 --- a/components/TrainingViewer.vue +++ b/components/TrainingViewer.vue @@ -2,11 +2,12 @@ import { clamp } from '#shared/general.util'; import { MAIN_STATS, mainStatTexts, type CharacterConfig } from '~/types/character'; -const { config } = defineProps<{ +const { config, progress = false } = defineProps<{ config: CharacterConfig, + progress?: boolean, }>(); -const dragger = useTemplateRef('dragger'), items = useTemplateRef('items'); +const dragger = useTemplateRef('dragger'); const position = ref(0), id = ref(0); const dragging = ref(false), offset = ref(0); @@ -18,8 +19,8 @@ const dragend = () => { }; const dragmove = (e: MouseEvent) => { const box = dragger.value!.getBoundingClientRect(); - offset.value = clamp(offset.value - e.movementX, 0, (320+32+2) * 16); - if(dragger.value) dragger.value.scrollLeft = offset.value; + offset.value = clamp(offset.value - e.movementY, 0, 100); + if(dragger.value) dragger.value.scrollTop = offset.value; }; const dragstart = () => { window.addEventListener('mousemove', dragmove); @@ -27,88 +28,36 @@ const dragstart = () => { dragging.value = true; }; -const wheel = (e: WheelEvent) => { - if(dragging.value) return; - - const box = dragger.value!.getBoundingClientRect(); - offset.value = clamp(offset.value + e.deltaY, 0, (320+32+2) * 16); - if(dragger.value) dragger.value.scrollLeft = offset.value; -} onMounted(() => { - dragger.value?.addEventListener('mousedown', dragstart); - dragger.value?.addEventListener('wheel', wheel); - - transition(1, 0); }); onUnmounted(() => { dragger.value?.removeEventListener('mousedown', dragstart); - dragger.value?.removeEventListener('wheel', wheel); }); -function transition(from: number, to: number) -{ - if(!items.value || from === to) - return; - - position.value = to; - items.value![to].style.visibility = 'visible'; - items.value![from].style.opacity = '0'; - items.value![to].style.opacity = '1'; - - for(let i = 0; i < MAIN_STATS.length; i++) - { - if(i < to) - items.value![i].style.top = `-25%`; - else - items.value![i].style.top = `25%`; - } - items.value![to].style.top = `0%`; - - clearTimeout(id.value); - //@ts-ignore - id.value = setTimeout(() => { - items.value![from].style.visibility = 'hidden'; - }, 200); -} - - -
-
+
diff --git a/pages/character/[id]/edit.client.vue b/pages/character/[id]/edit.client.vue index c18702f..23944bd 100644 --- a/pages/character/[id]/edit.client.vue +++ b/pages/character/[id]/edit.client.vue @@ -251,8 +251,8 @@ useShortcuts({
- - + + Peuples Entrainement @@ -260,14 +260,14 @@ useShortcuts({ Sorts Notes - +
- - + + - +
Points d'entrainement restants: {{ (abilityPoints ?? 0) - abilitySpent }} @@ -321,7 +310,7 @@ useShortcuts({
- +
Sorts: {{ data.spells?.length ?? 0 }}/{{ spellsPoints }} @@ -352,7 +341,7 @@ useShortcuts({
- +
diff --git a/pages/character/manage.client.vue b/pages/character/manage.client.vue index 0b13734..a12e38e 100644 --- a/pages/character/manage.client.vue +++ b/pages/character/manage.client.vue @@ -18,7 +18,7 @@ function copy() d[any] - Edition de données - + Peuples @@ -27,21 +27,21 @@ function copy() Sorts - + - - + + - + - +