From 017e905072ec388ed76a9a16b48b204a95be00f1 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Thu, 29 May 2025 12:39:37 -0400 Subject: [PATCH 01/12] implement SkTransitionGroup to dynamically switch between TransitionGroup or a native element based on the user's animation preference --- .../src/components/SkTransitionGroup.vue | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 packages/frontend/src/components/SkTransitionGroup.vue diff --git a/packages/frontend/src/components/SkTransitionGroup.vue b/packages/frontend/src/components/SkTransitionGroup.vue new file mode 100644 index 0000000000..1c07186501 --- /dev/null +++ b/packages/frontend/src/components/SkTransitionGroup.vue @@ -0,0 +1,43 @@ + + + + + From 8028c4e8c25b06daa92b759e807545d3ebd1e21b Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Thu, 29 May 2025 12:41:36 -0400 Subject: [PATCH 02/12] use SkTransitionGroup for all dynamic TransitionGroup components --- packages/frontend/src/components/MkDateSeparatedList.vue | 5 ++--- packages/frontend/src/components/MkReactionsViewer.vue | 6 +++--- packages/frontend/src/ui/_common_/common.vue | 8 ++++---- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/packages/frontend/src/components/MkDateSeparatedList.vue b/packages/frontend/src/components/MkDateSeparatedList.vue index 82561055bc..274f206ab6 100644 --- a/packages/frontend/src/components/MkDateSeparatedList.vue +++ b/packages/frontend/src/components/MkDateSeparatedList.vue @@ -13,6 +13,7 @@ import * as os from '@/os.js'; import { instance } from '@/instance.js'; import { prefer } from '@/preferences.js'; import { getDateText } from '@/utility/timeline-date-separate.js'; +import SkTransitionGroup from '@/components/SkTransitionGroup.vue'; export default defineComponent({ props: { @@ -141,14 +142,12 @@ export default defineComponent({ [$style['direction-up']]: props.direction === 'up', }; - return () => prefer.s.animation ? h(TransitionGroup, { + return () => h(SkTransitionGroup, { class: classes, name: 'list', tag: 'div', onBeforeLeave, onLeaveCancelled, - }, { default: renderChildren }) : h('div', { - class: classes, }, { default: renderChildren }); }, }); diff --git a/packages/frontend/src/components/MkReactionsViewer.vue b/packages/frontend/src/components/MkReactionsViewer.vue index 725978179e..980eeaba7c 100644 --- a/packages/frontend/src/components/MkReactionsViewer.vue +++ b/packages/frontend/src/components/MkReactionsViewer.vue @@ -4,8 +4,7 @@ SPDX-License-Identifier: AGPL-3.0-only -->