fix(ui): generate only one thread composer in PublishWidgetList and provide it to each widget (#2953)

This commit is contained in:
Joaquín Sánchez 2024-09-11 22:37:14 +02:00 committed by GitHub
parent dbf743afd9
commit 4061075dde
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 6 additions and 4 deletions

View file

@ -5,6 +5,7 @@ import type { mastodon } from 'masto'
import type { DraftItem } from '~/types'
const {
threadComposer,
draftKey,
draftItemIndex,
expanded = false,
@ -15,6 +16,7 @@ const {
draftKey: string
draftItemIndex: number
initial?: () => DraftItem
threadComposer?: ReturnType<typeof useThreadComposer>
placeholder?: string
inReplyToId?: string
inReplyToVisibility?: mastodon.v1.StatusVisibility
@ -28,7 +30,7 @@ const emit = defineEmits<{
const { t } = useI18n()
const { threadItems, threadIsActive, publishThread } = useThreadComposer(draftKey)
const { threadItems, threadIsActive, publishThread } = threadComposer ?? useThreadComposer(draftKey)
const draft = computed({
get: () => threadItems.value[draftItemIndex],

View file

@ -20,9 +20,8 @@ const {
dialogLabelledBy?: string
}>()
const threadItems = computed(() =>
useThreadComposer(draftKey, initial).threadItems.value,
)
const threadComposer = useThreadComposer(draftKey, initial)
const threadItems = computed(() => threadComposer.threadItems.value)
onDeactivated(() => {
clearEmptyDrafts()
@ -38,6 +37,7 @@ function isFirstItem(index: number) {
<PublishWidget
v-for="(_, index) in threadItems" :key="`${draftKey}-${index}`"
v-bind="$attrs"
:thread-composer="threadComposer"
:draft-key="draftKey"
:draft-item-index="index"
:expanded="isFirstItem(index) ? expanded : true"