moment(props.object.artist?.modification_date)
class="discrete link"
:to="{name: 'channels.detail', params: {id: urlId}}"
>
- {{ object.artist.name }}
+ {{ object.artist?.name }}
moment(props.object.artist?.modification_date)
%{ count } track
@@ -87,7 +88,7 @@ const updatedAgo = computed(() => moment(props.object.artist?.modification_date)
:truncate-size="20"
:limit="2"
:show-more="false"
- :tags="object.artist.tags ?? []"
+ :tags="object.artist?.tags ?? []"
/>
@@ -96,7 +97,7 @@ const updatedAgo = computed(() => moment(props.object.artist?.modification_date)
v-translate="{ updatedAgo }"
:translate-params="{ updatedAgo }"
class="meta ellipsis"
- :datetime="object.artist.modification_date"
+ :datetime="object.artist?.modification_date"
:title="updatedTitle"
>
%{ updatedAgo }
diff --git a/front/src/components/audio/ChannelEntries.vue b/front/src/components/audio/ChannelEntries.vue
index 18ae198c3..ae2967f3c 100644
--- a/front/src/components/audio/ChannelEntries.vue
+++ b/front/src/components/audio/ChannelEntries.vue
@@ -1,5 +1,5 @@
diff --git a/front/src/components/common/ContentForm.vue b/front/src/components/common/ContentForm.vue
index 10641054f..998da5600 100644
--- a/front/src/components/common/ContentForm.vue
+++ b/front/src/components/common/ContentForm.vue
@@ -4,7 +4,7 @@ import { useVModel, watchDebounced, useTextareaAutosize, syncRef } from '@vueuse
import { ref, computed, watchEffect, onMounted, nextTick } from 'vue'
import { useGettext } from 'vue3-gettext'
-interface Emits {
+interface Events {
(e: 'update:modelValue', value: string): void
}
@@ -17,7 +17,7 @@ interface Props {
charLimit?: number
}
-const emit = defineEmits
()
+const emit = defineEmits()
const props = withDefaults(defineProps(), {
placeholder: undefined,
autofocus: false,
diff --git a/front/src/components/common/DangerousButton.vue b/front/src/components/common/DangerousButton.vue
index a2a3d0709..ab3316ed4 100644
--- a/front/src/components/common/DangerousButton.vue
+++ b/front/src/components/common/DangerousButton.vue
@@ -2,16 +2,17 @@
import SemanticModal from '~/components/semantic/Modal.vue'
import { ref } from 'vue'
+interface Events {
+ (e: 'confirm'): void
+}
+
interface Props {
action?: () => void
disabled?: boolean
- // TODO (wvffle): Find correct type
- confirmColor?: 'danger'
+ confirmColor?: 'danger' | 'success'
}
-// TODO (wvffle): MOVE ALL defineEmits ABOVE defineProps
-const emit = defineEmits()
-
+const emit = defineEmits()
const props = withDefaults(defineProps(), {
action: () => {},
disabled: false,
@@ -30,7 +31,7 @@ const confirm = () => {