<script setup lang="ts"> import type { Account } from 'masto' const { account } = defineProps<{ account: Account }>() let relationship = $(useRelationship(account)) const isSelf = $computed(() => currentUser.value?.account.id === account.id) const mute = async () => { // TODO: Add confirmation relationship!.muting = true relationship = await masto.accounts.mute(account.id, { // TODO support more options }) } const unmute = async () => { // TODO: Add confirmation relationship!.muting = false relationship = await masto.accounts.unmute(account.id) } const block = async () => { // TODO: Add confirmation relationship!.blocking = true relationship = await masto.accounts.block(account.id) } const unblock = async () => { // TODO: Add confirmation relationship!.blocking = false relationship = await masto.accounts.unblock(account.id) } </script> <template> <CommonDropdown> <button flex gap-1 items-center w-full rounded op75 hover="op100 text-purple" group> <div rounded-5 p2 group-hover="bg-purple/10"> <div i-ri:more-2-fill /> </div> </button> <template #popper> <NuxtLink :to="account.url" target="_blank"> <CommonDropdownItem icon="i-ri:arrow-right-up-line"> Open in original site </CommonDropdownItem> </NuxtLink> <template v-if="!isSelf"> <CommonDropdownItem icon="i-ri:at-line" @click="mentionUser(account)"> Mention @{{ account.acct }} </CommonDropdownItem> <CommonDropdownItem icon="i-ri:message-3-line" @click="directMessageUser(account)"> Direct message @{{ account.acct }} </CommonDropdownItem> <CommonDropdownItem v-if="!relationship?.muting" icon="i-ri:volume-up-fill" @click="mute"> Mute @{{ account.acct }} </CommonDropdownItem> <CommonDropdownItem v-else icon="i-ri:volume-mute-line" @click="unmute"> Unmute @{{ account.acct }} </CommonDropdownItem> <CommonDropdownItem v-if="!relationship?.blocking" icon="i-ri:forbid-2-line" @click="block"> Block @{{ account.acct }} </CommonDropdownItem> <CommonDropdownItem v-else icon="i-ri:checkbox-circle-line" @click="unblock"> Unblock @{{ account.acct }} </CommonDropdownItem> </template> </template> </CommonDropdown> </template>