From 14d3439a428fb4c20b020731617478ab5e8e51b7 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sun, 27 Apr 2025 17:38:48 +0900 Subject: enhance(frontend): タイムラインをスワイプで切り替えられるように MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolve #15722 --- .../src/components/global/PageWithHeader.vue | 19 +++++-- packages/frontend/src/pages/timeline.vue | 61 +++++++++------------- 2 files changed, 38 insertions(+), 42 deletions(-) (limited to 'packages/frontend/src') diff --git a/packages/frontend/src/components/global/PageWithHeader.vue b/packages/frontend/src/components/global/PageWithHeader.vue index 2cc7979ce4..94010fc437 100644 --- a/packages/frontend/src/components/global/PageWithHeader.vue +++ b/packages/frontend/src/components/global/PageWithHeader.vue @@ -8,7 +8,7 @@ SPDX-License-Identifier: AGPL-3.0-only
- + @@ -24,6 +24,7 @@ import { scrollInContainer } from '@@/js/scroll.js'; import type { PageHeaderProps } from './MkPageHeader.vue'; import { useScrollPositionKeeper } from '@/use/use-scroll-position-keeper.js'; import MkSwiper from '@/components/MkSwiper.vue'; +import { useRouter } from '@/router.js'; const props = defineProps { + scrollToTop(); +}); + +function scrollToTop() { + if (rootEl.value) scrollInContainer(rootEl.value, { top: 0, behavior: 'smooth' }); +} + defineExpose({ - scrollToTop: () => { - if (rootEl.value) scrollInContainer(rootEl.value, { top: 0, behavior: 'smooth' }); - }, + scrollToTop, }); @@ -52,7 +61,7 @@ defineExpose({ } -.body { +.body, .swiper { min-height: calc(100cqh - (var(--MI-stickyTop, 0px) + var(--MI-stickyBottom, 0px))); } diff --git a/packages/frontend/src/pages/timeline.vue b/packages/frontend/src/pages/timeline.vue index d2bf162ce5..af28d3decd 100644 --- a/packages/frontend/src/pages/timeline.vue +++ b/packages/frontend/src/pages/timeline.vue @@ -4,36 +4,32 @@ SPDX-License-Identifier: AGPL-3.0-only -->