<ul class="compose-autosuggest-list"> {#each items as item, i} <li class="compose-autosuggest-list-item"> <button class="compose-autosuggest-list-button {i === selected ? 'selected' : ''}" tabindex="0" on:click="onClick(event, item)"> <div class="compose-autosuggest-list-grid"> {#if type === 'account'} <Avatar className="compose-autosuggest-list-item-avatar" size="small" account={item} /> <span class="compose-autosuggest-list-display-name"> {item.display_name || item.acct} </span> <span class="compose-autosuggest-list-username"> {'@' + item.acct} </span> {:else} <img src={$autoplayGifs ? item.url : item.static_url} class="compose-autosuggest-list-item-icon" alt="{':' + item.shortcode + ':'}" /> <span class="compose-autosuggest-list-display-name"> {':' + item.shortcode + ':'} </span> {/if} </div> </button> </li> {/each} </ul> <style> .compose-autosuggest-list { list-style: none; width: 100%; border-radius: 2px; box-sizing: border-box; border: 1px solid var(--compose-autosuggest-outline); } .compose-autosuggest-list-item { border-bottom: 1px solid var(--compose-autosuggest-outline); display: flex; } .compose-autosuggest-list-item:last-child { border-bottom: none; } .compose-autosuggest-list-button { padding: 10px; background: var(--settings-list-item-bg); border: none; margin: 0; flex: 1; } .compose-autosuggest-list-grid { display: grid; width: 100%; grid-template-areas: "icon display-name" "icon username"; grid-template-columns: min-content 1fr; grid-column-gap: 10px; grid-row-gap: 5px; } :global(.compose-autosuggest-list-item-avatar) { grid-area: icon; } .compose-autosuggest-list-item-icon { grid-area: icon; width: 48px; height: 48px; object-fit: contain; } .compose-autosuggest-list-display-name { grid-area: display-name; font-size: 1.1em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; text-align: left; } .compose-autosuggest-list-username { grid-area: username; font-size: 1em; color: var(--deemphasized-text-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: left; } .compose-autosuggest-list-button:hover, .compose-autosuggest-list-button.selected { background: var(--compose-autosuggest-item-hover); } .compose-autosuggest-list-button:active { background: var(--compose-autosuggest-item-active); } </style> <script> import Avatar from '../Avatar.html' import { store } from '../../_store/store' export default { store: () => store, methods: { onClick (event, item) { event.preventDefault() event.stopPropagation() this.fire('click', item) } }, components: { Avatar } } </script>