fix(front): errors in user profile
This commit is contained in:
parent
48c9ffd2f8
commit
0bf0609bc5
|
@ -1,22 +1,27 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { Actor } from '~/types'
|
import type { Actor } from '~/types'
|
||||||
|
|
||||||
import { ref } from 'vue'
|
import { ref, computed } from 'vue'
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
import { useStore } from '~/store'
|
||||||
|
|
||||||
import PlaylistWidget from '~/components/playlists/Widget.vue'
|
import PlaylistWidget from '~/components/playlists/Widget.vue'
|
||||||
import TrackWidget from '~/components/audio/track/Widget.vue'
|
import TrackWidget from '~/components/audio/track/Widget.vue'
|
||||||
import AlbumWidget from '~/components/album/Widget.vue'
|
import AlbumWidget from '~/components/album/Widget.vue'
|
||||||
import RadioButton from '~/components/radios/Button.vue'
|
import RadioButton from '~/components/radios/Button.vue'
|
||||||
|
import Layout from '~/components/ui/Layout.vue'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
object: Actor
|
object?: Actor
|
||||||
}
|
}
|
||||||
|
|
||||||
defineProps<Props>()
|
defineProps<Props>()
|
||||||
|
|
||||||
const recentActivity = ref(0)
|
const recentActivity = ref(0)
|
||||||
|
|
||||||
|
const store = useStore()
|
||||||
|
const qualityFilters = computed(() => store.getters['instance/qualityFilters'])
|
||||||
|
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -26,7 +31,7 @@ const { t } = useI18n()
|
||||||
v-if="recentActivity > 0"
|
v-if="recentActivity > 0"
|
||||||
class="right floated"
|
class="right floated"
|
||||||
type="account"
|
type="account"
|
||||||
:object-id="{username: object.preferred_username, fullUsername: object.full_username}"
|
:object?-id="{username: object?.preferred_username, fullUsername: object?.full_username}"
|
||||||
:client-only="true"
|
:client-only="true"
|
||||||
/>
|
/>
|
||||||
<track-widget
|
<track-widget
|
||||||
|
@ -42,7 +47,7 @@ const { t } = useI18n()
|
||||||
|
|
||||||
<track-widget
|
<track-widget
|
||||||
:url="'favorites/tracks/'"
|
:url="'favorites/tracks/'"
|
||||||
:filters="{scope: 'actor:${object.full_username}', ordering: '-creation_date'}"
|
:filters="{scope: 'actor:${object?.full_username}', ordering: '-creation_date'}"
|
||||||
>
|
>
|
||||||
<template #title>
|
<template #title>
|
||||||
{{ t('components.library.Home.header.recentlyFavorited') }}
|
{{ t('components.library.Home.header.recentlyFavorited') }}
|
||||||
|
@ -51,7 +56,7 @@ const { t } = useI18n()
|
||||||
|
|
||||||
<playlist-widget
|
<playlist-widget
|
||||||
:url="'playlists/'"
|
:url="'playlists/'"
|
||||||
:filters="{scope: `actor:${object.full_username}`, playable: true, ordering: '-modification_date'}"
|
:filters="{scope: `actor:${object?.full_username}`, playable: true, ordering: '-modification_date'}"
|
||||||
>
|
>
|
||||||
<template #title>
|
<template #title>
|
||||||
{{ t('views.auth.ProfileActivity.header.playlists') }}
|
{{ t('views.auth.ProfileActivity.header.playlists') }}
|
||||||
|
|
|
@ -17,7 +17,7 @@ interface Events {
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
object: Actor
|
object: Actor | null
|
||||||
}
|
}
|
||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
@ -41,10 +41,10 @@ const createForm = ref()
|
||||||
<section>
|
<section>
|
||||||
<div v-if="store.getters['ui/layoutVersion'] === 'small'">
|
<div v-if="store.getters['ui/layoutVersion'] === 'small'">
|
||||||
<rendered-description
|
<rendered-description
|
||||||
:content="object.summary"
|
:content="object?.summary"
|
||||||
:field-name="'summary'"
|
:field-name="'summary'"
|
||||||
:update-url="`users/${store.state.auth.username}/`"
|
:update-url="`users/${store.state.auth.username}/`"
|
||||||
:can-update="store.state.auth.authenticated && object.full_username === store.state.auth.fullUsername"
|
:can-update="store.state.auth.authenticated && object?.full_username === store.state.auth.fullUsername"
|
||||||
@updated="emit('updated', $event)"
|
@updated="emit('updated', $event)"
|
||||||
/>
|
/>
|
||||||
<div class="ui hidden divider" />
|
<div class="ui hidden divider" />
|
||||||
|
@ -53,7 +53,7 @@ const createForm = ref()
|
||||||
<h2 class="ui with-actions header">
|
<h2 class="ui with-actions header">
|
||||||
{{ t('views.auth.ProfileOverview.header.channels') }}
|
{{ t('views.auth.ProfileOverview.header.channels') }}
|
||||||
<div
|
<div
|
||||||
v-if="store.state.auth.authenticated && object.full_username === store.state.auth.fullUsername"
|
v-if="store.state.auth.authenticated && object?.full_username === store.state.auth.fullUsername"
|
||||||
class="actions"
|
class="actions"
|
||||||
>
|
>
|
||||||
<a
|
<a
|
||||||
|
@ -65,11 +65,11 @@ const createForm = ref()
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</h2>
|
</h2>
|
||||||
<channels-widget :filters="{scope: `actor:${object.full_username}`}" />
|
<channels-widget :filters="{scope: `actor:${object?.full_username}`}" />
|
||||||
<h2 class="ui with-actions header">
|
<h2 class="ui with-actions header">
|
||||||
{{ t('views.auth.ProfileOverview.header.libraries') }}
|
{{ t('views.auth.ProfileOverview.header.libraries') }}
|
||||||
<div
|
<div
|
||||||
v-if="store.state.auth.authenticated && object.full_username === store.state.auth.fullUsername"
|
v-if="store.state.auth.authenticated && object?.full_username === store.state.auth.fullUsername"
|
||||||
class="actions"
|
class="actions"
|
||||||
>
|
>
|
||||||
<router-link :to="{name: 'content.libraries.index'}">
|
<router-link :to="{name: 'content.libraries.index'}">
|
||||||
|
@ -78,7 +78,7 @@ const createForm = ref()
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
</h2>
|
</h2>
|
||||||
<library-widget :url="`federation/actors/${object.full_username}/libraries/`">
|
<library-widget :url="`federation/actors/${object?.full_username}/libraries/`">
|
||||||
<template #title>
|
<template #title>
|
||||||
{{ t('views.auth.ProfileOverview.header.sharedLibraries') }}
|
{{ t('views.auth.ProfileOverview.header.sharedLibraries') }}
|
||||||
</template>
|
</template>
|
||||||
|
|
Loading…
Reference in New Issue