81 lines
		
	
	
		
			No EOL
		
	
	
		
			2.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			No EOL
		
	
	
		
			2.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<article class="status-article {{originalStatus.visibility === 'direct' ? 'status-direct' : ''}}"
 | 
						|
         tabindex="0"
 | 
						|
         aria-posinset="{{index}}" aria-setsize="{{length}}"
 | 
						|
         on:recalculateHeight>
 | 
						|
  {{#if (notification && (notification.type === 'reblog' || notification.type === 'favourite')) || status.reblog}}
 | 
						|
    <StatusHeader :notification :status />
 | 
						|
  {{/if}}
 | 
						|
  <StatusAuthor status="{{originalStatus}}" :isStatusInOwnThread />
 | 
						|
  <StatusSidebar status="{{originalStatus}}" />
 | 
						|
  {{#if originalStatus.spoiler_text}}
 | 
						|
    <StatusSpoiler status="{{originalStatus}}" :contextualStatusId on:recalculateHeight />
 | 
						|
  {{/if}}
 | 
						|
  {{#if !originalStatus.spoiler_text || spoilerShown}}
 | 
						|
    <StatusContent status="{{originalStatus}}" :isStatusInOwnThread />
 | 
						|
  {{/if}}
 | 
						|
  {{#if originalStatus.media_attachments && originalStatus.media_attachments.length}}
 | 
						|
    <StatusMediaAttachments status="{{originalStatus}}" :contextualStatusId on:recalculateHeight />
 | 
						|
  {{/if}}
 | 
						|
  <StatusToolbar :status />
 | 
						|
</article>
 | 
						|
 | 
						|
<style>
 | 
						|
  .status-article {
 | 
						|
    width: 560px;
 | 
						|
    max-width: calc(100vw - 40px);
 | 
						|
    padding: 10px 20px;
 | 
						|
    border-bottom: 1px solid var(--main-border);
 | 
						|
    display: grid;
 | 
						|
    grid-template-areas:
 | 
						|
        ".............. status-header"
 | 
						|
        "status-sidebar status-author"
 | 
						|
        "status-sidebar status-spoiler"
 | 
						|
        "status-sidebar status-spoiler-button"
 | 
						|
        "status-sidebar status-content"
 | 
						|
        "status-media   status-media"
 | 
						|
        ".............. status-toolbar";
 | 
						|
    grid-template-columns: 58px 1fr;
 | 
						|
  }
 | 
						|
 | 
						|
  .status-article.status-direct {
 | 
						|
    background-color: var(--status-direct-background);
 | 
						|
  }
 | 
						|
 | 
						|
  @media (max-width: 767px) {
 | 
						|
    .status-article {
 | 
						|
      padding: 10px 10px;
 | 
						|
      max-width: calc(100vw - 20px);
 | 
						|
    }
 | 
						|
  }
 | 
						|
</style>
 | 
						|
<script>
 | 
						|
  import StatusSidebar from './StatusSidebar.html'
 | 
						|
  import StatusHeader from './StatusHeader.html'
 | 
						|
  import StatusAuthor from './StatusAuthor.html'
 | 
						|
  import StatusToolbar from './StatusToolbar.html'
 | 
						|
  import StatusMediaAttachments from './StatusMediaAttachments.html'
 | 
						|
  import StatusContent from './StatusContent.html'
 | 
						|
  import StatusSpoiler from './StatusSpoiler.html'
 | 
						|
  import { store } from '../../_store/store'
 | 
						|
 | 
						|
  export default {
 | 
						|
    components: {
 | 
						|
      StatusSidebar,
 | 
						|
      StatusHeader,
 | 
						|
      StatusAuthor,
 | 
						|
      StatusToolbar,
 | 
						|
      StatusMediaAttachments,
 | 
						|
      StatusContent,
 | 
						|
      StatusSpoiler
 | 
						|
    },
 | 
						|
    store: () => store,
 | 
						|
    computed: {
 | 
						|
      originalStatus: (status) => status.reblog ? status.reblog : status,
 | 
						|
      statusId: (originalStatus) => originalStatus.id,
 | 
						|
      contextualStatusId: ($currentInstance, timelineType, timelineValue, status) => `${$currentInstance}/${timelineType}/${timelineValue}/${status.id}`,
 | 
						|
      originalAccount: (originalStatus) => originalStatus.account,
 | 
						|
      isStatusInOwnThread: (timelineType, timelineValue, statusId) => timelineType === 'status' && timelineValue === statusId,
 | 
						|
      spoilerShown: ($spoilersShown, contextualStatusId) => !!$spoilersShown[contextualStatusId]
 | 
						|
    }
 | 
						|
  }
 | 
						|
</script> |