From a751c1a15039b8a2e33091f1adb4d7c97a51e700 Mon Sep 17 00:00:00 2001 From: Pihkaal Date: Thu, 12 Feb 2026 15:31:37 +0100 Subject: [PATCH] fix(settings): synchronize button animation with arrows of number input --- app/components/Common/Buttons.vue | 10 +++++ .../BottomScreen/Menus/Clock/Achievements.vue | 15 +++++++- .../BottomScreen/Menus/Clock/Date.vue | 16 +++++++- .../BottomScreen/Menus/Clock/Time.vue | 17 +++++++-- .../BottomScreen/Menus/Options/2048.vue | 28 +++++++++++--- .../BottomScreen/Menus/Options/Language.vue | 28 +++++++++++--- .../Menus/Options/RenderingMode.vue | 15 +++++++- .../BottomScreen/Menus/TouchScreen/TapTap.vue | 37 ++++++++++++++++--- .../BottomScreen/Menus/User/Birthday.vue | 16 +++++++- .../BottomScreen/Menus/User/Color.vue | 16 +++++++- .../BottomScreen/Menus/User/Snake.vue | 35 +++++++++++++++--- .../BottomScreen/Menus/User/UserName.vue | 28 +++++++++++--- app/stores/settings.ts | 19 ++-------- 13 files changed, 226 insertions(+), 54 deletions(-) diff --git a/app/components/Common/Buttons.vue b/app/components/Common/Buttons.vue index 0f11bd5..e519779 100644 --- a/app/components/Common/Buttons.vue +++ b/app/components/Common/Buttons.vue @@ -77,6 +77,16 @@ watch( ), ); +const forceAnimateBLabel = () => { + animateLabelChange( + (v) => (bButtonOffsetY = v), + (l) => (displayedBLabel = l), + props.bLabel, + ); +}; + +defineExpose({ forceAnimateBLabel }); + onRender((ctx) => { ctx.globalAlpha = props.opacity ?? 1; ctx.font = "10px NDS10"; diff --git a/app/components/Settings/BottomScreen/Menus/Clock/Achievements.vue b/app/components/Settings/BottomScreen/Menus/Clock/Achievements.vue index ff48fe8..c3a027c 100644 --- a/app/components/Settings/BottomScreen/Menus/Clock/Achievements.vue +++ b/app/components/Settings/BottomScreen/Menus/Clock/Achievements.vue @@ -35,6 +35,9 @@ const confirmationModal = useConfirmationModal(); const isAnimating = ref(true); +const bLabel = ref($t("common.goBack")); +const aLabel = ref($t("common.select")); + const SLIDE_OFFSET = 96; const SLIDE_DURATION = 0.25; const ARROW_SLIDE_DELAY = 0.15; @@ -60,6 +63,14 @@ const animateIntro = async () => { .timeline() .to(animation, { offsetY: 0, duration: SLIDE_DURATION, ease: "none" }, 0) .to(animation, { opacity: 1, duration: SLIDE_DURATION, ease: "none" }, 0) + .call( + () => { + bLabel.value = $t("common.cancel"); + aLabel.value = $t("common.reset"); + }, + [], + SUBMENU_LABEL_CHANGE_DELAY, + ) .to( animation, { viewAllOffsetY: 0, duration: ARROW_SLIDE_DURATION, ease: "none" }, @@ -197,8 +208,8 @@ onRender((ctx) => { diff --git a/app/components/Settings/BottomScreen/Menus/Clock/Date.vue b/app/components/Settings/BottomScreen/Menus/Clock/Date.vue index 123f1a9..5b74b86 100644 --- a/app/components/Settings/BottomScreen/Menus/Clock/Date.vue +++ b/app/components/Settings/BottomScreen/Menus/Clock/Date.vue @@ -1,6 +1,7 @@