150 lines
3.5 KiB
HTML
150 lines
3.5 KiB
HTML
{#if massagedFields.length}
|
|
<h2 class="sr-only">{intl.fields}</h2>
|
|
<div class="account-profile-meta">
|
|
<div class="account-profile-meta-border"></div>
|
|
{#each massagedFields as field, i}
|
|
<div
|
|
id="account-profile-meta-name-{i}"
|
|
class="account-profile-meta-cell account-profile-meta-name"
|
|
role="term"
|
|
>
|
|
{field.name}
|
|
</div>
|
|
<div
|
|
class="account-profile-meta-cell account-profile-meta-value"
|
|
role="definition"
|
|
aria-labelledby="account-profile-meta-name-{i}"
|
|
>
|
|
{@html field.value}
|
|
</div>
|
|
<div class="account-profile-meta-cell">
|
|
{#if field.verified}
|
|
<span class="account-profile-meta-verified">
|
|
<SvgIcon
|
|
ariaLabel="verified"
|
|
className="account-profile-meta-verified-svg"
|
|
href="#fa-check"
|
|
/>
|
|
{intl.verified}
|
|
</span>
|
|
{/if}
|
|
</div>
|
|
{/each}
|
|
<div class="account-profile-meta-border"></div>
|
|
</div>
|
|
{/if}
|
|
<style>
|
|
.account-profile-meta {
|
|
grid-area: meta;
|
|
display: grid;
|
|
grid-template-columns: auto 1fr max-content;
|
|
grid-row-gap: 5px;
|
|
align-items: center;
|
|
padding: 10px 0;
|
|
}
|
|
|
|
.account-profile-meta-border {
|
|
height: 1px;
|
|
width: 100%;
|
|
grid-column: 1 / 4;
|
|
background: currentColor;
|
|
opacity: 0.2;
|
|
justify-self: center;
|
|
}
|
|
|
|
.account-profile-meta-cell {
|
|
word-wrap: break-word;
|
|
overflow: hidden;
|
|
white-space: pre-wrap;
|
|
text-overflow: ellipsis;
|
|
font-size: 1.1em;
|
|
}
|
|
|
|
.account-profile-meta-name {
|
|
padding: 10px 20px 10px 0;
|
|
color: var(--deemphasized-text-color);
|
|
position: relative;
|
|
max-width: 300px;
|
|
}
|
|
|
|
.account-profile-meta-name:after {
|
|
content: '';
|
|
position: absolute;
|
|
right: 0;
|
|
top: 15%;
|
|
height: 70%;
|
|
border-right: 1px solid;
|
|
opacity: 0.2;
|
|
}
|
|
|
|
.account-profile-meta-value {
|
|
padding: 10px 10px 10px 20px;
|
|
}
|
|
|
|
:global(.underline-links .account-profile-meta a) {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
@media (max-width: 767px) {
|
|
.account-profile-meta {
|
|
padding: 5px 0;
|
|
}
|
|
.account-profile-meta-cell {
|
|
font-size: 1em;
|
|
}
|
|
.account-profile-meta-name {
|
|
padding: 5px 10px 5px 0;
|
|
max-width: 40vw;
|
|
}
|
|
.account-profile-meta-value {
|
|
padding: 5px 10px 5px 10px;
|
|
}
|
|
}
|
|
|
|
.account-profile-meta-verified {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
vertical-align: middle;
|
|
white-space: nowrap;
|
|
gap: 0.2em;
|
|
margin-left: 0.5em;
|
|
padding: 2px 0;
|
|
padding-left: 4px;
|
|
padding-right: 5px;
|
|
font-size: 0.9em;
|
|
color: var(--verified-text-color);
|
|
background: var(--verified-bg-color);
|
|
border: 1px solid var(--verified-border-color, currentColor);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
:global(.account-profile-meta-verified-svg) {
|
|
display: inline-block;
|
|
width: .9em;
|
|
height: .9em;
|
|
fill: currentColor;
|
|
opacity: 0.95;
|
|
}
|
|
</style>
|
|
<script>
|
|
import SvgIcon from '../SvgIcon.html'
|
|
import { emojifyText } from '../../_utils/emojifyText.js'
|
|
import { store } from '../../_store/store.js'
|
|
|
|
export default {
|
|
store: () => store,
|
|
computed: {
|
|
emojis: ({ account }) => account.emojis || [],
|
|
fields: ({ account }) => account.fields || [],
|
|
massagedFields: ({ fields, emojis, $autoplayGifs }) => (fields.map(field => ({
|
|
name: field.name,
|
|
value: emojifyText(field.value, emojis, $autoplayGifs),
|
|
verified: !!field.verified_at
|
|
})))
|
|
},
|
|
components: {
|
|
SvgIcon
|
|
}
|
|
}
|
|
</script>
|