forked from cybrespace/pinafore
		
	
		
			
				
	
	
		
			75 lines
		
	
	
		
			No EOL
		
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			No EOL
		
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<:Head>
 | 
						||
  <title>Pinafore – Pinned toots</title>
 | 
						||
</:Head>
 | 
						||
 | 
						||
<Layout page='pinned'>
 | 
						||
  <DynamicPageBanner title="Pinned toots" icon="#fa-thumb-tack" />
 | 
						||
  <div class="pinned-toots-page">
 | 
						||
    {{#if loading}}
 | 
						||
    <LoadingPage />
 | 
						||
    {{elseif statuses && statuses.length}}
 | 
						||
    <ul class="pinned-toots-results">
 | 
						||
      {{#each statuses as status}}
 | 
						||
      <StatusSearchResult :status />
 | 
						||
      {{/each}}
 | 
						||
    </ul>
 | 
						||
    {{/if}}
 | 
						||
  </div>
 | 
						||
</Layout>
 | 
						||
<style>
 | 
						||
  .pinned-toots-page {
 | 
						||
    min-height: 60vh;
 | 
						||
    padding: 20px 20px;
 | 
						||
    position: relative;
 | 
						||
  }
 | 
						||
  .pinned-toots-results {
 | 
						||
    list-style: none;
 | 
						||
    box-sizing: border-box;
 | 
						||
    border: 1px solid var(--main-border);
 | 
						||
    border-radius: 2px;
 | 
						||
  }
 | 
						||
  @media (max-width: 767px) {
 | 
						||
    .pinned-toots-page {
 | 
						||
      padding: 20px 10px;
 | 
						||
    }
 | 
						||
  }
 | 
						||
</style>
 | 
						||
<script>
 | 
						||
  import Layout from './_components/Layout.html'
 | 
						||
  import { store } from './_store/store'
 | 
						||
  import LoadingPage from './_components/LoadingPage.html'
 | 
						||
  import StatusSearchResult from './_components/search/StatusSearchResult.html'
 | 
						||
  import { toast } from './_utils/toast'
 | 
						||
  import DynamicPageBanner from './_components/DynamicPageBanner.html'
 | 
						||
  import { getPinnedStatuses } from './_api/pinnedStatuses'
 | 
						||
  import { updateVerifyCredentialsForInstance } from './_actions/instances'
 | 
						||
 | 
						||
  export default {
 | 
						||
    async oncreate() {
 | 
						||
      let accountsFetcher = this.get('accountsFetcher')
 | 
						||
      try {
 | 
						||
        let currentInstance = this.store.get('currentInstance')
 | 
						||
        await updateVerifyCredentialsForInstance(currentInstance)
 | 
						||
        let accessToken = this.store.get('accessToken')
 | 
						||
        let verifyCredentials = this.store.get('currentVerifyCredentials')
 | 
						||
        let statuses = await getPinnedStatuses(currentInstance, accessToken, verifyCredentials.id)
 | 
						||
        this.set({ statuses: statuses })
 | 
						||
      } catch (e) {
 | 
						||
        toast.say('Error: ' + (e.name || '') + ' ' + (e.message || ''))
 | 
						||
      } finally {
 | 
						||
        this.set({loading: false})
 | 
						||
      }
 | 
						||
    },
 | 
						||
    data: () => ({
 | 
						||
      loading: true,
 | 
						||
      accounts: []
 | 
						||
    }),
 | 
						||
    store: () => store,
 | 
						||
    components: {
 | 
						||
      Layout,
 | 
						||
      LoadingPage,
 | 
						||
      StatusSearchResult,
 | 
						||
      DynamicPageBanner
 | 
						||
    }
 | 
						||
  }
 | 
						||
</script> |