pinafore/routes/_components/status/StatusHeader.html

104 lines
2.8 KiB
HTML
Raw Normal View History

2018-04-01 09:54:40 +00:00
<div class="status-header {{isStatusInNotification ? 'status-in-notification' : ''}} {{notification && notification.type === 'follow' ? 'header-is-follow' : ''}}">
2018-03-31 00:30:30 +00:00
<div class="status-header-avatar {{timelineType === 'pinned' ? 'hidden' : ''}}">
<Avatar :account size="extra-small"/>
</div>
<svg class="status-header-svg">
<use xlink:href={{icon}}/>
2018-02-04 18:05:01 +00:00
</svg>
<span class="status-header-span">
2018-02-11 18:35:25 +00:00
{{#if timelineType === 'pinned'}}
Pinned toot
{{else}}
<a href="/accounts/{{accountId}}"
class="status-header-a"
2018-03-20 01:05:51 +00:00
title="{{'@' + account.acct}}"
focus-key={{focusKey}} >
{{account.display_name || account.username}}
2018-02-11 18:35:25 +00:00
</a>
{{#if notification && notification.type === 'reblog'}}
boosted your status
{{elseif notification && notification.type === 'favourite'}}
favorited your status
{{elseif notification && notification.type === 'follow'}}
followed you
{{elseif status && status.reblog}}
boosted
{{/if}}
2018-02-04 18:05:01 +00:00
{{/if}}
</span>
</div>
<style>
.status-header {
2018-02-10 04:07:48 +00:00
grid-area: header;
2018-04-01 09:54:40 +00:00
margin: 0 10px 5px 5px;
2018-02-04 18:05:01 +00:00
display: flex;
align-items: center;
}
2018-04-01 09:54:40 +00:00
.status-header.header-is-follow {
margin-bottom: 0; /* standalone, so doesn't need a bottom margin */
}
2018-02-04 18:05:01 +00:00
2018-03-31 00:30:30 +00:00
.status-header-avatar {
margin-left: 19px; /* offset for avatar, 48px - 24px - 5px */
}
.status-header-svg {
margin-left: 20px;
2018-02-04 18:05:01 +00:00
width: 18px;
height: 18px;
fill: var(--deemphasized-text-color);
}
2018-02-04 20:49:42 +00:00
@media (max-width: 767px) {
.status-header-svg {
margin-left: 10px;
}
}
.status-header.status-in-notification .status-header-svg {
2018-02-04 20:49:42 +00:00
fill: var(--body-text-color);
}
.status-header-span {
margin-left: 5px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.status-header-span,
.status-header-a,
.status-header-a:visited,
.status-header-a:hover {
color: var(--deemphasized-text-color);
}
.status-in-notification .status-header-span,
.status-in-notification .status-header-a,
.status-in-notification .status-header-a:visited,
.status-in-notification .status-header-a:hover {
color: var(--body-text-color);
}
2018-02-04 18:05:01 +00:00
</style>
<script>
import Avatar from '../Avatar.html'
2018-02-04 18:05:01 +00:00
export default {
components: {
Avatar
},
computed: {
focusKey: (uuid) => `status-header-${uuid}`,
2018-02-11 18:35:25 +00:00
icon: (notification, status, timelineType) => {
if (timelineType === 'pinned') {
return '#fa-thumb-tack'
} else if ((notification && notification.type === 'reblog') || (status && status.reblog)) {
2018-02-04 18:05:01 +00:00
return '#fa-retweet'
} else if (notification && notification.type === 'follow') {
return '#fa-user-plus'
}
return '#fa-star'
}
}
}
</script>