diff --git a/src/composables/useMainStatus.js b/src/composables/useMainStatus.js new file mode 100644 index 000000000..be9e58225 --- /dev/null +++ b/src/composables/useMainStatus.js @@ -0,0 +1,24 @@ +import { computed, toValue } from 'vue' + +import { useStatusesStore } from 'src/stores/statuses.js' + +export function useMainStatus(statusId) { + const getStatusObject = (id) => useStatusesStore().allStatuses.get(id) + + const status = computed(() => getStatusObject(toValue(statusId))) + + const mainStatus = computed(() => { + if (!status.value) return + const retweetedStatusId = status.value.retweeted_status?.id + if (retweetedStatusId) { + return getStatusObject(retweetedStatusId) + } else { + return status.value + } + }) + + return { + status, + mainStatus, + } +}