<ModalDialog :id :label :title background="var(--main-bg)" > <GenericDialogList :items on:click="onClick(event)"/> </ModalDialog> <script> import ModalDialog from './ModalDialog.html' import { store } from '../../../_store/store' import GenericDialogList from './GenericDialogList.html' import { importDialogs } from '../../../_utils/asyncModules' import { createDialogId } from '../helpers/createDialogId' import { show } from '../helpers/showDialog' import { close } from '../helpers/closeDialog' import { oncreate } from '../helpers/onCreateDialog' import { setAccountBlocked } from '../../../_actions/block' export default { oncreate, store: () => store, data: () => ({ id: createDialogId() }), computed: { blocking: (relationship) => relationship && relationship.blocking, items: (account, blocking) => ( [ { key: 'mention', label: `Mention @${account.acct}`, icon: '#fa-comments' }, { key: 'block', label: blocking ? `Unblock @${account.acct}` : `Block @${account.acct}`, icon: blocking ? '#fa-unlock' : '#fa-ban' } ] ) }, methods: { show, close, onClick(item) { switch (item.key) { case 'mention': return this.onMentionClicked() case 'block': return this.onBlockClicked() } }, async onMentionClicked() { let account = this.get('account') this.store.setComposeData('dialog', { text: `@${account.acct} ` }) let dialogs = await importDialogs() dialogs.showComposeDialog() this.close() }, async onBlockClicked() { let account = this.get('account') let blocking = this.get('blocking') let accountId = account.id this.close() await setAccountBlocked(accountId, !blocking, true) } }, components: { ModalDialog, GenericDialogList }, } </script>