From a717d02133195a3ddc5ee1d44aaf9254b2e6b86e Mon Sep 17 00:00:00 2001 From: ArneBo Date: Sat, 25 Jan 2025 23:22:21 +0100 Subject: [PATCH] [WIP] refactor(front): channel detail page --- .../components/channels/SubscribeButton.vue | 18 +- front/src/components/common/ActorLink.vue | 2 +- front/src/components/tags/List.vue | 21 +- front/src/views/channels/DetailBase.vue | 540 +++++++++--------- 4 files changed, 296 insertions(+), 285 deletions(-) diff --git a/front/src/components/channels/SubscribeButton.vue b/front/src/components/channels/SubscribeButton.vue index 436e6930f..c52702cdf 100644 --- a/front/src/components/channels/SubscribeButton.vue +++ b/front/src/components/channels/SubscribeButton.vue @@ -9,6 +9,7 @@ import { useRoute } from 'vue-router' const route = useRoute() import LoginModal from '~/components/common/LoginModal.vue' +import Button from '~/components/ui/Button.vue' interface Events { (e: 'unsubscribed'): void @@ -46,20 +47,21 @@ const loginModal = ref() diff --git a/front/src/components/common/ActorLink.vue b/front/src/components/common/ActorLink.vue index 002145b05..18560bf71 100644 --- a/front/src/components/common/ActorLink.vue +++ b/front/src/components/common/ActorLink.vue @@ -67,7 +67,7 @@ const url = computed(() => { v-if="avatar" :actor="actor" /> - {{ repr }} + @{{ repr }} diff --git a/front/src/components/tags/List.vue b/front/src/components/tags/List.vue index b2bdde144..2b4b0b7fc 100644 --- a/front/src/components/tags/List.vue +++ b/front/src/components/tags/List.vue @@ -3,7 +3,8 @@ import { truncate } from '~/utils/filters' import { computed, ref } from 'vue' import { useI18n } from 'vue-i18n' -import TagsList from '~/components/tags/List.vue' +import Layout from '~/components/ui/Layout.vue' +import Pill from '~/components/ui/Pill.vue' interface Props { tags: string[] @@ -35,23 +36,23 @@ const tags = computed(() => { diff --git a/front/src/views/channels/DetailBase.vue b/front/src/views/channels/DetailBase.vue index e8f9ea03a..6ad655928 100644 --- a/front/src/views/channels/DetailBase.vue +++ b/front/src/views/channels/DetailBase.vue @@ -11,9 +11,21 @@ import axios from 'axios' import SubscribeButton from '~/components/channels/SubscribeButton.vue' import ChannelForm from '~/components/audio/ChannelForm.vue' import EmbedWizard from '~/components/audio/EmbedWizard.vue' -import SemanticModal from '~/components/semantic/Modal.vue' +import HumanDuration from '~/components/common/HumanDuration.vue' import PlayButton from '~/components/audio/PlayButton.vue' import TagsList from '~/components/tags/List.vue' +import SemanticModal from '~/components/semantic/Modal.vue' +import RadioButton from '~/components/radios/Button.vue' +import Loader from '~/components/ui/Loader.vue' +import Button from '~/components/ui/Button.vue' +import Tabs from '~/components/ui/Tabs.vue' +import Tab from '~/components/ui/Tab.vue' +import OptionsButton from '~/components/ui/button/Options.vue' +import Popover from '~/components/ui/Popover.vue' +import PopoverItem from '~/components/ui/popover/PopoverItem.vue' +import Layout from '~/components/ui/Layout.vue' +import Modal from '~/components/ui/Modal.vue' +import Spacer from '~/components/ui/Spacer.vue' import useErrorHandler from '~/composables/useErrorHandler' import useReport from '~/composables/moderation/useReport' @@ -92,6 +104,7 @@ const fetchData = async () => { watch(() => props.id, fetchData, { immediate: true }) + const uuid = computed(() => store.state.channels.latestPublication?.channel.uuid) watch([uuid, object], ([uuid, object], [lastUuid, lastObject]) => { if (object?.uuid && object.uuid === lastObject?.uuid) return @@ -128,49 +141,36 @@ const updateSubscriptionCount = (delta: number) => { + +