remove all instances of string coercion (#240)
This commit is contained in:
parent
40a9ff957a
commit
9629a55a9f
|
@ -1,6 +1,6 @@
|
||||||
<video
|
<video
|
||||||
class="autoplay-video {{className || ''}}"
|
class="autoplay-video {{className || ''}}"
|
||||||
aria-label="{{ariaLabel || ''}}"
|
aria-label={{ariaLabel || ''}}
|
||||||
style="background-image: url({{poster}});"
|
style="background-image: url({{poster}});"
|
||||||
:poster
|
:poster
|
||||||
:width
|
:width
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
{{#if error}}
|
{{#if error}}
|
||||||
<svg class="{{computedClass}}" aria-hidden="true">
|
<svg class={{computedClass}} aria-hidden="true">
|
||||||
<use xlink:href="#fa-user" />
|
<use xlink:href="#fa-user" />
|
||||||
</svg>
|
</svg>
|
||||||
{{elseif $autoplayGifs}}
|
{{elseif $autoplayGifs}}
|
||||||
<img
|
<img
|
||||||
class="{{computedClass}}"
|
class={{computedClass}}
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
alt=""
|
alt=""
|
||||||
src="{{account.avatar}}"
|
src={{account.avatar}}
|
||||||
on:imgLoad="set({loaded: true})"
|
on:imgLoad="set({loaded: true})"
|
||||||
on:imgLoadError="set({error: true})" />
|
on:imgLoadError="set({error: true})" />
|
||||||
{{else}}
|
{{else}}
|
||||||
<NonAutoplayImg
|
<NonAutoplayImg
|
||||||
className="{{computedClass}}"
|
className={{computedClass}}
|
||||||
ariaHidden="true"
|
ariaHidden="true"
|
||||||
alt=""
|
alt=""
|
||||||
src="{{account.avatar}}"
|
src={{account.avatar}}
|
||||||
staticSrc="{{account.avatar_static}}"
|
staticSrc={{account.avatar_static}}
|
||||||
:isLink
|
:isLink
|
||||||
on:imgLoad="set({loaded: true})"
|
on:imgLoad="set({loaded: true})"
|
||||||
on:imgLoadError="set({error: true})"
|
on:imgLoadError="set({error: true})"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<div class="dynamic-page-banner {{icon ? 'dynamic-page-with-icon' : ''}}">
|
<div class="dynamic-page-banner {{icon ? 'dynamic-page-with-icon' : ''}}">
|
||||||
{{#if icon}}
|
{{#if icon}}
|
||||||
<svg class="dynamic-page-banner-svg">
|
<svg class="dynamic-page-banner-svg">
|
||||||
<use xlink:href="{{icon}}" />
|
<use xlink:href={{icon}} />
|
||||||
</svg>
|
</svg>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<h1 class="dynamic-page-title">{{title}}</h1>
|
<h1 class="dynamic-page-title">{{title}}</h1>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<a rel="nofollow noopener"
|
<a rel="nofollow noopener"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
href="{{href}}"
|
href={{href}}
|
||||||
aria-label="{{ariaLabel || ''}}"
|
aria-label={{ariaLabel || ''}}
|
||||||
class="{{className || ''}} {{showIcon ? 'external-link-with-icon' : ''}} {{normalIconColor ? 'normal-icon-color' : ''}}">
|
class="{{className || ''}} {{showIcon ? 'external-link-with-icon' : ''}} {{normalIconColor ? 'normal-icon-color' : ''}}">
|
||||||
<slot></slot>{{#if showIcon}}
|
<slot></slot>{{#if showIcon}}
|
||||||
<svg class="external-link-svg">
|
<svg class="external-link-svg">
|
||||||
|
|
|
@ -1,27 +1,27 @@
|
||||||
{{#if delegateKey}}
|
{{#if delegateKey}}
|
||||||
<button type="button"
|
<button type="button"
|
||||||
title="{{label}}"
|
title={{label}}
|
||||||
aria-label="{{label}}"
|
aria-label={{label}}
|
||||||
aria-pressed="{{pressable ? !!pressed : ''}}"
|
aria-pressed={{pressable ? !!pressed : ''}}
|
||||||
class="{{computedClass}}"
|
class={{computedClass}}
|
||||||
:disabled
|
:disabled
|
||||||
delegate-key="{{delegateKey}}"
|
delegate-key={{delegateKey}}
|
||||||
focus-key="{{focusKey || ''}}" >
|
focus-key={{focusKey || ''}} >
|
||||||
<svg class="icon-button-svg {{svgClassName || ''}}" ref:svg>
|
<svg class="icon-button-svg {{svgClassName || ''}}" ref:svg>
|
||||||
<use xlink:href="{{href}}" />
|
<use xlink:href={{href}} />
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
{{else}}
|
{{else}}
|
||||||
<button type="button"
|
<button type="button"
|
||||||
title="{{label}}"
|
title={{label}}
|
||||||
aria-label="{{label}}"
|
aria-label={{label}}
|
||||||
aria-pressed="{{pressable ? !!pressed : ''}}"
|
aria-pressed={{pressable ? !!pressed : ''}}
|
||||||
class="{{computedClass}}"
|
class={{computedClass}}
|
||||||
focus-key="{{focusKey || ''}}"
|
focus-key={{focusKey || ''}}
|
||||||
:disabled
|
:disabled
|
||||||
on:click >
|
on:click >
|
||||||
<svg class="icon-button-svg {{svgClassName || ''}}" ref:svg>
|
<svg class="icon-button-svg {{svgClassName || ''}}" ref:svg>
|
||||||
<use xlink:href="{{href}}" />
|
<use xlink:href={{href}} />
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
@ -3,10 +3,10 @@
|
||||||
{{#if displaySrc}}
|
{{#if displaySrc}}
|
||||||
<img
|
<img
|
||||||
class="{{hidden ? 'hidden' : ''}} {{className || ''}}"
|
class="{{hidden ? 'hidden' : ''}} {{className || ''}}"
|
||||||
aria-hidden="{{ariaHidden || ''}}"
|
aria-hidden={{ariaHidden || ''}}
|
||||||
alt="{{alt || ''}}"
|
alt={{alt || ''}}
|
||||||
title="{{alt || ''}}"
|
title={{alt || ''}}
|
||||||
src="{{displaySrc}}"
|
src={{displaySrc}}
|
||||||
:width
|
:width
|
||||||
:height
|
:height
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
</li>
|
</li>
|
||||||
{{elseif $pinnedPage.startsWith('/lists/')}}
|
{{elseif $pinnedPage.startsWith('/lists/')}}
|
||||||
<li class="main-nav-li">
|
<li class="main-nav-li">
|
||||||
<NavItem :page name="lists" href="{{$pinnedPage}}" svg="#fa-bars" label="{{$pinnedListTitle}}" />
|
<NavItem :page name="lists" href={{$pinnedPage}} svg="#fa-bars" label={{$pinnedListTitle}} />
|
||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<li class="main-nav-li">
|
<li class="main-nav-li">
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<a class='main-nav-link {{selected ? "selected" : ""}}'
|
<a class='main-nav-link {{selected ? "selected" : ""}}'
|
||||||
aria-label='{{ariaLabel}}'
|
aria-label={{ariaLabel}}
|
||||||
aria-current="{{selected}}"
|
aria-current={{selected}}
|
||||||
on:click="onClick(event)"
|
on:click="onClick(event)"
|
||||||
:href >
|
:href >
|
||||||
{{#if name === 'notifications'}}
|
{{#if name === 'notifications'}}
|
||||||
<div class="nav-link-svg-wrapper">
|
<div class="nav-link-svg-wrapper">
|
||||||
<svg class="nav-link-svg">
|
<svg class="nav-link-svg">
|
||||||
<use xlink:href="{{svg}}" />
|
<use xlink:href={{svg}} />
|
||||||
</svg>
|
</svg>
|
||||||
{{#if $hasNotifications}}
|
{{#if $hasNotifications}}
|
||||||
<span class="nav-link-notifications" aria-hidden="true">
|
<span class="nav-link-notifications" aria-hidden="true">
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
</div>
|
</div>
|
||||||
{{else}}
|
{{else}}
|
||||||
<svg class="nav-link-svg">
|
<svg class="nav-link-svg">
|
||||||
<use xlink:href="{{svg}}" />
|
<use xlink:href={{svg}} />
|
||||||
</svg>
|
</svg>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<span class="nav-link-label">{{label}}</span>
|
<span class="nav-link-label">{{label}}</span>
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
>
|
>
|
||||||
{{#if playing}}
|
{{#if playing}}
|
||||||
<AutoplayVideo
|
<AutoplayVideo
|
||||||
className="{{class}}"
|
className={{class}}
|
||||||
ariaLabel="{{label}}"
|
ariaLabel={{label}}
|
||||||
:poster
|
:poster
|
||||||
:src
|
:src
|
||||||
:width
|
:width
|
||||||
|
@ -13,17 +13,17 @@
|
||||||
/>
|
/>
|
||||||
{{else}}
|
{{else}}
|
||||||
<LazyImage
|
<LazyImage
|
||||||
alt="{{label || ''}}"
|
alt={{label || ''}}
|
||||||
title="{{label || ''}}"
|
title={{label || ''}}
|
||||||
src="{{staticSrc}}"
|
src={{staticSrc}}
|
||||||
fallback="{{oneTransparentPixel}}"
|
fallback={{oneTransparentPixel}}
|
||||||
:width
|
:width
|
||||||
:height
|
:height
|
||||||
background="var(--loading-bg)"
|
background="var(--loading-bg)"
|
||||||
className="{{class}}"
|
className={{class}}
|
||||||
/>
|
/>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<PlayVideoIcon className="{{playing ? 'hidden' : ''}}"/>
|
<PlayVideoIcon className={{playing ? 'hidden' : ''}}/>
|
||||||
</div>
|
</div>
|
||||||
<style>
|
<style>
|
||||||
.non-autoplay-gifv {
|
.non-autoplay-gifv {
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
{{#if staticSrc === src}}
|
{{#if staticSrc === src}}
|
||||||
<img class="{{className || ''}}"
|
<img class={{className || ''}}
|
||||||
aria-hidden="{{ariaHidden}}"
|
aria-hidden={{ariaHidden}}
|
||||||
alt="{{alt || ''}}"
|
alt={{alt || ''}}
|
||||||
title="{{alt || ''}}"
|
title={{alt || ''}}
|
||||||
src="{{src}}"
|
src={{src}}
|
||||||
on:imgLoad
|
on:imgLoad
|
||||||
on:imgLoadError />
|
on:imgLoadError />
|
||||||
{{else}}
|
{{else}}
|
||||||
<img class="{{className || ''}} non-autoplay-zoom-in {{isLink ? 'is-link' : ''}}"
|
<img class="{{className || ''}} non-autoplay-zoom-in {{isLink ? 'is-link' : ''}}"
|
||||||
aria-hidden="{{ariaHidden}}"
|
aria-hidden={{ariaHidden}}
|
||||||
alt="{{alt || ''}}"
|
alt={{alt || ''}}
|
||||||
title="{{alt || ''}}"
|
title={{alt || ''}}
|
||||||
src="{{staticSrc}}"
|
src={{staticSrc}}
|
||||||
on:imgLoad
|
on:imgLoad
|
||||||
on:imgLoadError
|
on:imgLoadError
|
||||||
on:mouseover="onMouseOver(event)"
|
on:mouseover="onMouseOver(event)"
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
without a div wrapper due to sticky-positioned compose button.
|
without a div wrapper due to sticky-positioned compose button.
|
||||||
TODO: this is a bit hacky due to code duplication
|
TODO: this is a bit hacky due to code duplication
|
||||||
-->
|
-->
|
||||||
<div class="timeline-home-page" aria-busy="{{hideTimeline}}">
|
<div class="timeline-home-page" aria-busy={{hideTimeline}}>
|
||||||
{{#if hidePage}}
|
{{#if hidePage}}
|
||||||
<LoadingPage />
|
<LoadingPage />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if $currentVerifyCredentials }}
|
{{#if $currentVerifyCredentials }}
|
||||||
<ComposeBox realm="home" hidden="{{hidePage}}"/>
|
<ComposeBox realm="home" hidden={{hidePage}}/>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<div class="timeline-home-anchor-container">
|
<div class="timeline-home-anchor-container">
|
||||||
{{#if !hidePage && hideTimeline}}
|
{{#if !hidePage && hideTimeline}}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<div class="timeline-page" aria-busy="{{hideTimeline}}">
|
<div class="timeline-page" aria-busy={{hideTimeline}}>
|
||||||
{{#if hidePage}}
|
{{#if hidePage}}
|
||||||
<LoadingPage />
|
<LoadingPage />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<div class="toast-modal {{shown ? 'shown' : ''}}" role="alert" aria-hidden="{{shown}}">
|
<div class="toast-modal {{shown ? 'shown' : ''}}" role="alert" aria-hidden={{shown}}>
|
||||||
<div class="toast-container">
|
<div class="toast-container">
|
||||||
{{text}}
|
{{text}}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<div class="page-list-wrapper">
|
<div class="page-list-wrapper">
|
||||||
{{#if label}}
|
{{#if label}}
|
||||||
<ul class="page-list" aria-label="{{label}}">
|
<ul class="page-list" aria-label={{label}}>
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</ul>
|
</ul>
|
||||||
{{else}}
|
{{else}}
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
<li class="page-list-item">
|
<li class="page-list-item">
|
||||||
<a :href>
|
<a :href>
|
||||||
<svg class="page-list-item-svg">
|
<svg class="page-list-item-svg">
|
||||||
<use xlink:href="{{icon}}" />
|
<use xlink:href={{icon}} />
|
||||||
</svg>
|
</svg>
|
||||||
<span aria-label="{{label}} {{$pinnedPage === href ? 'Pinned page' : 'Unpinned page'}}">
|
<span aria-label="{{label}} {{$pinnedPage === href ? 'Pinned page' : 'Unpinned page'}}">
|
||||||
{{label}}
|
{{label}}
|
||||||
</span>
|
</span>
|
||||||
{{#if pinnable}}
|
{{#if pinnable}}
|
||||||
<IconButton pressable="true"
|
<IconButton pressable="true"
|
||||||
pressed="{{$pinnedPage === href}}"
|
pressed={{$pinnedPage === href}}
|
||||||
label="{{$pinnedPage === href ? 'Unpin timeline' : 'Pin timeline'}}"
|
label={{$pinnedPage === href ? 'Unpin timeline' : 'Pin timeline'}}
|
||||||
href="#fa-thumb-tack"
|
href="#fa-thumb-tack"
|
||||||
on:click="onPinClick(event)" />
|
on:click="onPinClick(event)" />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<a href="/accounts/{{verifyCredentials.id}}"
|
<a href="/accounts/{{verifyCredentials.id}}"
|
||||||
class="compose-box-avatar"
|
class="compose-box-avatar"
|
||||||
aria-label="Profile for {{verifyCredentials.display_name || verifyCredentials.acct}}">
|
aria-label="Profile for {{verifyCredentials.display_name || verifyCredentials.acct}}">
|
||||||
<Avatar account="{{verifyCredentials}}" size="small"/>
|
<Avatar account={{verifyCredentials}} size="small"/>
|
||||||
</a>
|
</a>
|
||||||
<a class="compose-box-display-name" href="/accounts/{{verifyCredentials.id}}">
|
<a class="compose-box-display-name" href="/accounts/{{verifyCredentials.id}}">
|
||||||
{{verifyCredentials.display_name || verifyCredentials.acct}}
|
{{verifyCredentials.display_name || verifyCredentials.acct}}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<div class="compose-autosuggest {{shown ? 'shown' : ''}} {{realm === 'dialog' ? 'is-dialog' : ''}}"
|
<div class="compose-autosuggest {{shown ? 'shown' : ''}} {{realm === 'dialog' ? 'is-dialog' : ''}}"
|
||||||
aria-hidden="true" >
|
aria-hidden="true" >
|
||||||
<ComposeAutosuggestionList
|
<ComposeAutosuggestionList
|
||||||
items="{{searchResults}}"
|
items={{searchResults}}
|
||||||
on:click="onClick(event)"
|
on:click="onClick(event)"
|
||||||
:type
|
:type
|
||||||
:selected
|
:selected
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<Avatar
|
<Avatar
|
||||||
className="compose-autosuggest-list-item-avatar"
|
className="compose-autosuggest-list-item-avatar"
|
||||||
size="small"
|
size="small"
|
||||||
account="{{item}}"
|
account={{item}}
|
||||||
/>
|
/>
|
||||||
<span class="compose-autosuggest-list-display-name">
|
<span class="compose-autosuggest-list-display-name">
|
||||||
{{item.display_name || item.acct}}
|
{{item.display_name || item.acct}}
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
{{'@' + item.acct}}
|
{{'@' + item.acct}}
|
||||||
</span>
|
</span>
|
||||||
{{else}}
|
{{else}}
|
||||||
<img src="{{$autoplayGifs ? item.url : item.static_url}}"
|
<img src={{$autoplayGifs ? item.url : item.static_url}}
|
||||||
class="compose-autosuggest-list-item-icon"
|
class="compose-autosuggest-list-item-icon"
|
||||||
alt="{{':' + item.shortcode + ':'}}"
|
alt="{{':' + item.shortcode + ':'}}"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<div class="compose-box-button-halo">
|
<div class="compose-box-button-halo">
|
||||||
<button class="primary compose-box-button"
|
<button class="primary compose-box-button"
|
||||||
:disabled
|
:disabled
|
||||||
aria-label="{{sticky ? 'Compose' : 'Toot!'}}"
|
aria-label={{sticky ? 'Compose' : 'Toot!'}}
|
||||||
on:click>
|
on:click>
|
||||||
<span class="{{$postingStatus || sticky ? 'hidden' : ''}}">
|
<span class={{$postingStatus || sticky ? 'hidden' : ''}}>
|
||||||
Toot!
|
Toot!
|
||||||
</span>
|
</span>
|
||||||
<div class="compose-box-button-spinner"
|
<div class="compose-box-button-spinner"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<span class="compose-box-length {{overLimit ? 'over-char-limit' : ''}}"
|
<span class="compose-box-length {{overLimit ? 'over-char-limit' : ''}}"
|
||||||
aria-label="{{lengthLabel}}">
|
aria-label={{lengthLabel}}>
|
||||||
{{lengthToDisplayDeferred || '0'}}
|
{{lengthToDisplayDeferred || '0'}}
|
||||||
</span>
|
</span>
|
||||||
<style>
|
<style>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<div class="compose-media">
|
<div class="compose-media">
|
||||||
<img src="{{mediaItem.data.preview_url}}" alt="{{mediaItem.file.name}}"/>
|
<img src={{mediaItem.data.preview_url}} alt={{mediaItem.file.name}}/>
|
||||||
<div class="compose-media-delete">
|
<div class="compose-media-delete">
|
||||||
<button class="compose-media-delete-button"
|
<button class="compose-media-delete-button"
|
||||||
aria-label="Delete {{mediaItem.file.name}}"
|
aria-label="Delete {{mediaItem.file.name}}"
|
||||||
|
|
|
@ -6,23 +6,23 @@
|
||||||
on:click="onEmojiClick()"
|
on:click="onEmojiClick()"
|
||||||
/>
|
/>
|
||||||
<IconButton
|
<IconButton
|
||||||
svgClassName="{{$uploadingMedia ? 'spin' : ''}}"
|
svgClassName={{$uploadingMedia ? 'spin' : ''}}
|
||||||
label="Add media"
|
label="Add media"
|
||||||
href="{{$uploadingMedia ? '#fa-spinner' : '#fa-camera'}}"
|
href={{$uploadingMedia ? '#fa-spinner' : '#fa-camera'}}
|
||||||
on:click="onMediaClick()"
|
on:click="onMediaClick()"
|
||||||
disabled="{{$uploadingMedia || (media.length === 4)}}"
|
disabled={{$uploadingMedia || (media.length === 4)}}
|
||||||
/>
|
/>
|
||||||
<IconButton
|
<IconButton
|
||||||
label="Adjust privacy (currently {{postPrivacy.label}})"
|
label="Adjust privacy (currently {{postPrivacy.label}})"
|
||||||
href="{{postPrivacy.icon}}"
|
href={{postPrivacy.icon}}
|
||||||
on:click="onPostPrivacyClick()"
|
on:click="onPostPrivacyClick()"
|
||||||
/>
|
/>
|
||||||
<IconButton
|
<IconButton
|
||||||
label="{{contentWarningShown ? 'Remove content warning' : 'Add content warning'}}"
|
label={{contentWarningShown ? 'Remove content warning' : 'Add content warning'}}
|
||||||
href="#fa-exclamation-triangle"
|
href="#fa-exclamation-triangle"
|
||||||
on:click="onContentWarningClick()"
|
on:click="onContentWarningClick()"
|
||||||
pressable="true"
|
pressable="true"
|
||||||
pressed="{{contentWarningShown}}"
|
pressed={{contentWarningShown}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<input ref:input
|
<input ref:input
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
{{#each emojis as emoji}}
|
{{#each emojis as emoji}}
|
||||||
<li class="custom-emoji">
|
<li class="custom-emoji">
|
||||||
<button type="button" on:click="onClickEmoji(emoji)">
|
<button type="button" on:click="onClickEmoji(emoji)">
|
||||||
<img src="{{$autoplayGifs ? emoji.url : emoji.static_url}}"
|
<img src={{$autoplayGifs ? emoji.url : emoji.static_url}}
|
||||||
alt=":{{emoji.shortcode}}:"
|
alt=":{{emoji.shortcode}}:"
|
||||||
title=":{{emoji.shortcode}}:"
|
title=":{{emoji.shortcode}}:"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
<li class="generic-dialog-list-item">
|
<li class="generic-dialog-list-item">
|
||||||
<button class="generic-dialog-list-button" on:click="fire('click', item)">
|
<button class="generic-dialog-list-button" on:click="fire('click', item)">
|
||||||
<svg class="generic-dialog-list-item-svg">
|
<svg class="generic-dialog-list-item-svg">
|
||||||
<use xlink:href="{{item.icon}}" />
|
<use xlink:href={{item.icon}} />
|
||||||
</svg>
|
</svg>
|
||||||
<span>
|
<span>
|
||||||
{{item.label}}
|
{{item.label}}
|
||||||
</span>
|
</span>
|
||||||
<svg class="generic-dialog-list-item-svg {{item.selected ? '' : 'hidden'}}" aria-hidden="{{!item.selected}}">
|
<svg class="generic-dialog-list-item-svg {{item.selected ? '' : 'hidden'}}" aria-hidden={{!item.selected}}>
|
||||||
<use xlink:href="#fa-check" />
|
<use xlink:href="#fa-check" />
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -15,11 +15,11 @@
|
||||||
/>
|
/>
|
||||||
{{else}}
|
{{else}}
|
||||||
<img
|
<img
|
||||||
src="{{src}}"
|
src={{src}}
|
||||||
width="{{width}}"
|
width={{width}}
|
||||||
height="{{height}}"
|
height={{height}}
|
||||||
alt="{{description || ''}}"
|
alt={{description || ''}}
|
||||||
title="{{description || ''}}"
|
title={{description || ''}}
|
||||||
/>
|
/>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</ModalDialog>
|
</ModalDialog>
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<div class="{{backdropClass}}"
|
<div class={{backdropClass}}
|
||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
data-a11y-dialog-hide
|
data-a11y-dialog-hide
|
||||||
></div>
|
></div>
|
||||||
<div class="{{contentsClass}}"
|
<div class={{contentsClass}}
|
||||||
role="dialog"
|
role="dialog"
|
||||||
aria-label="{{label || ''}}"
|
aria-label={{label || ''}}
|
||||||
ref:node
|
ref:node
|
||||||
>
|
>
|
||||||
<div class="modal-dialog-document" role="document" style="background: {{background || '#000'}};">
|
<div class="modal-dialog-document" role="document" style="background: {{background || '#000'}};">
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
</div>
|
</div>
|
||||||
<a class="account-profile-details-item"
|
<a class="account-profile-details-item"
|
||||||
href='/accounts/{{account.id}}/follows'
|
href='/accounts/{{account.id}}/follows'
|
||||||
aria-label="{{followingLabel}}"
|
aria-label={{followingLabel}}
|
||||||
>
|
>
|
||||||
<span class="account-profile-details-item-title">
|
<span class="account-profile-details-item-title">
|
||||||
Follows
|
Follows
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
</a>
|
</a>
|
||||||
<a class="account-profile-details-item"
|
<a class="account-profile-details-item"
|
||||||
href='/accounts/{{account.id}}/followers'
|
href='/accounts/{{account.id}}/followers'
|
||||||
aria-label="{{followersLabel}}"
|
aria-label={{followersLabel}}
|
||||||
>
|
>
|
||||||
<span class="account-profile-details-item-title">
|
<span class="account-profile-details-item-title">
|
||||||
Followers
|
Followers
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<div class="account-profile-follow {{shown ? 'shown' : ''}}">
|
<div class="account-profile-follow {{shown ? 'shown' : ''}}">
|
||||||
<IconButton
|
<IconButton
|
||||||
label="{{followLabel}}"
|
label={{followLabel}}
|
||||||
href="{{followIcon}}"
|
href={{followIcon}}
|
||||||
pressable="true"
|
pressable="true"
|
||||||
pressed="{{following}}"
|
pressed={{following}}
|
||||||
big="true"
|
big="true"
|
||||||
on:click="onFollowButtonClick(event)"
|
on:click="onFollowButtonClick(event)"
|
||||||
ref:icon
|
ref:icon
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<Avatar :account size="big" />
|
<Avatar :account size="big" />
|
||||||
</div>
|
</div>
|
||||||
<div class="account-profile-name">
|
<div class="account-profile-name">
|
||||||
<ExternalLink href="{{account.url}}"
|
<ExternalLink href={{account.url}}
|
||||||
showIcon="true"
|
showIcon="true"
|
||||||
normalIconColor="true"
|
normalIconColor="true"
|
||||||
ariaLabel="{{account.display_name || account.acct}} (opens in new window)"
|
ariaLabel="{{account.display_name || account.acct}} (opens in new window)"
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
<div class="pseudo-virtual-list" on:initialized ref:node>
|
<div class="pseudo-virtual-list" on:initialized ref:node>
|
||||||
{{#each wrappedItems as wrappedItem, i @item}}
|
{{#each wrappedItems as wrappedItem, i @item}}
|
||||||
<PseudoVirtualListLazyItem
|
<PseudoVirtualListLazyItem
|
||||||
component="{{component}}"
|
component={{component}}
|
||||||
index="{{i}}"
|
index={{i}}
|
||||||
length="{{wrappedItems.length}}"
|
length={{wrappedItems.length}}
|
||||||
makeProps="{{makeProps}}"
|
makeProps={{makeProps}}
|
||||||
key="{{wrappedItem.item}}"
|
key={{wrappedItem.item}}
|
||||||
intersectionObserver="{{intersectionObserver}}"
|
intersectionObserver={{intersectionObserver}}
|
||||||
isIntersecting="{{isIntersecting(wrappedItem.item, $intersectionStates)}}"
|
isIntersecting={{isIntersecting(wrappedItem.item, $intersectionStates)}}
|
||||||
isCached="{{isCached(wrappedItem.item, $intersectionStates)}}"
|
isCached={{isCached(wrappedItem.item, $intersectionStates)}}
|
||||||
height="{{getHeight(wrappedItem.item, $intersectionStates)}}"
|
height={{getHeight(wrappedItem.item, $intersectionStates)}}
|
||||||
/>
|
/>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
<div class="pseudo-virtual-list-item"
|
<div class="pseudo-virtual-list-item"
|
||||||
aria-hidden="{{hide}}"
|
aria-hidden={{hide}}
|
||||||
pseudo-virtual-list-key="{{key}}"
|
pseudo-virtual-list-key={{key}}
|
||||||
style="height: {{shouldHide ? `${height}px` : ''}};"
|
style="height: {{shouldHide ? `${height}px` : ''}};"
|
||||||
ref:node>
|
ref:node>
|
||||||
{{#if !shouldHide}}
|
{{#if !shouldHide}}
|
||||||
<:Component {component}
|
<:Component {component}
|
||||||
virtualProps="{{props}}"
|
virtualProps={{props}}
|
||||||
virtualIndex="{{index}}"
|
virtualIndex={{index}}
|
||||||
virtualLength="{{length}}"
|
virtualLength={{length}}
|
||||||
/>
|
/>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -11,9 +11,9 @@
|
||||||
<div class="search-result-account-buttons">
|
<div class="search-result-account-buttons">
|
||||||
{{#each actions as action}}
|
{{#each actions as action}}
|
||||||
<IconButton
|
<IconButton
|
||||||
label="{{action.label}}"
|
label={{action.label}}
|
||||||
on:click="onButtonClick(event, action, account.id)"
|
on:click="onButtonClick(event, action, account.id)"
|
||||||
href="{{action.icon}}"
|
href={{action.icon}}
|
||||||
big="true"
|
big="true"
|
||||||
/>
|
/>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
required
|
required
|
||||||
bind:value="$queryInSearch">
|
bind:value="$queryInSearch">
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="primary search-button" aria-label="Search" disabled="{{$searchLoading}}">
|
<button type="submit" class="primary search-button" aria-label="Search" disabled={{$searchLoading}}>
|
||||||
<svg class="search-button-svg">
|
<svg class="search-button-svg">
|
||||||
<use xlink:href="#fa-search" />
|
<use xlink:href="#fa-search" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<li class="search-result">
|
<li class="search-result">
|
||||||
<a href="{{href}}" class="search-result-anchor">
|
<a href={{href}} class="search-result-anchor">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<AccountSearchResult :account />
|
<AccountSearchResult :account />
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{#each $searchResults.statuses as status, index}}
|
{{#each $searchResults.statuses as status, index}}
|
||||||
<StatusSearchResult :status :index length="{{$searchResults.statuses.length}}"/>
|
<StatusSearchResult :status :index length={{$searchResults.statuses.length}}/>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
<style>
|
<style>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<SearchResult href="/statuses/{{status.id}}">
|
<SearchResult href="/statuses/{{status.id}}">
|
||||||
<Status :index :length
|
<Status :index :length
|
||||||
timelineType="search" timelineValue="search"
|
timelineType="search" timelineValue="search"
|
||||||
status="{{status}}" />
|
status={{status}} />
|
||||||
</SearchResult>
|
</SearchResult>
|
||||||
<style>
|
<style>
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<div class="settings-list-wrapper">
|
<div class="settings-list-wrapper">
|
||||||
{{#if label}}
|
{{#if label}}
|
||||||
<ul class="settings-list" aria-label="{{label}}">
|
<ul class="settings-list" aria-label={{label}}>
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</ul>
|
</ul>
|
||||||
{{else}}
|
{{else}}
|
||||||
|
|
|
@ -2,15 +2,15 @@
|
||||||
<a :href>
|
<a :href>
|
||||||
{{#if icon}}
|
{{#if icon}}
|
||||||
<svg class="settings-list-item-svg">
|
<svg class="settings-list-item-svg">
|
||||||
<use xlink:href="{{icon}}" />
|
<use xlink:href={{icon}} />
|
||||||
</svg>
|
</svg>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if ariaLabel}}
|
{{#if ariaLabel}}
|
||||||
<span aria-label="{{ariaLabel}}" class="{{offsetForIcon ? 'offset-for-icon' : ''}}">
|
<span aria-label={{ariaLabel}} class={{offsetForIcon ? 'offset-for-icon' : ''}}>
|
||||||
{{label}}
|
{{label}}
|
||||||
</span>
|
</span>
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class="{{offsetForIcon ? 'offset-for-icon' : ''}}">
|
<span class={{offsetForIcon ? 'offset-for-icon' : ''}}>
|
||||||
{{label}}
|
{{label}}
|
||||||
</span>
|
</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
<ul>
|
<ul>
|
||||||
{{#each navItems as navItem}}
|
{{#each navItems as navItem}}
|
||||||
<li>
|
<li>
|
||||||
<SettingsNavItem :page name="{{navItem.name}}" href="{{navItem.href}}" label="{{navItem.label}}" />
|
<SettingsNavItem :page name={{navItem.name}} href={{navItem.href}} label={{navItem.label}} />
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
<li>
|
<li>
|
||||||
<SettingsNavItem :page name="{{page}}" href="/{{page}}" :label />
|
<SettingsNavItem :page name={{page}} href="/{{page}}" :label />
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<a class='settings-nav-item {{getCurrentClass(page, name)}}' aria-label='{{getAriaLabel(page, name, label)}}' href='{{href}}'>
|
<a class="settings-nav-item {{getCurrentClass(page, name)}}"
|
||||||
|
aria-label={{getAriaLabel(page, name, label)}}
|
||||||
|
:href
|
||||||
|
>
|
||||||
{{label}}
|
{{label}}
|
||||||
</a>
|
</a>
|
||||||
<style>
|
<style>
|
||||||
|
|
|
@ -2,59 +2,59 @@
|
||||||
<button type="button"
|
<button type="button"
|
||||||
class="play-video-button"
|
class="play-video-button"
|
||||||
aria-label="Play video: {{description}}"
|
aria-label="Play video: {{description}}"
|
||||||
delegate-key="{{delegateKey}}"
|
delegate-key={{delegateKey}}
|
||||||
style="width: {{inlineWidth}}px; height: {{inlineHeight}}px;">
|
style="width: {{inlineWidth}}px; height: {{inlineHeight}}px;">
|
||||||
<PlayVideoIcon />
|
<PlayVideoIcon />
|
||||||
<LazyImage
|
<LazyImage
|
||||||
alt="{{description}}"
|
alt={{description}}
|
||||||
title="{{description}}"
|
title={{description}}
|
||||||
src="{{previewUrl}}"
|
src={{previewUrl}}
|
||||||
fallback="{{oneTransparentPixel}}"
|
fallback={{oneTransparentPixel}}
|
||||||
width="{{inlineWidth}}"
|
width={{inlineWidth}}
|
||||||
height="{{inlineHeight}}"
|
height={{inlineHeight}}
|
||||||
background="var(--loading-bg)"
|
background="var(--loading-bg)"
|
||||||
className="{{noNativeWidthHeight ? 'no-native-width-height' : ''}}"
|
className={{noNativeWidthHeight ? 'no-native-width-height' : ''}}
|
||||||
/>
|
/>
|
||||||
</button>
|
</button>
|
||||||
{{else}}
|
{{else}}
|
||||||
<button type="button"
|
<button type="button"
|
||||||
class="show-image-button"
|
class="show-image-button"
|
||||||
aria-label="Show image: {{description}}"
|
aria-label="Show image: {{description}}"
|
||||||
title="{{description}}"
|
title={{description}}
|
||||||
delegate-key="{{delegateKey}}"
|
delegate-key={{delegateKey}}
|
||||||
on:mouseover="set({mouseover: event})"
|
on:mouseover="set({mouseover: event})"
|
||||||
style="width: {{inlineWidth}}px; height: {{inlineHeight}}px;"
|
style="width: {{inlineWidth}}px; height: {{inlineHeight}}px;"
|
||||||
>
|
>
|
||||||
{{#if type === 'gifv' && $autoplayGifs}}
|
{{#if type === 'gifv' && $autoplayGifs}}
|
||||||
<AutoplayVideo
|
<AutoplayVideo
|
||||||
className="{{noNativeWidthHeight ? 'no-native-width-height' : ''}}"
|
className={{noNativeWidthHeight ? 'no-native-width-height' : ''}}
|
||||||
ariaLabel="Animated GIF: {{description}}"
|
ariaLabel="Animated GIF: {{description}}"
|
||||||
poster="{{previewUrl}}"
|
poster={{previewUrl}}
|
||||||
src="{{url}}"
|
src={{url}}
|
||||||
width="{{inlineWidth}}"
|
width={{inlineWidth}}
|
||||||
height="{{inlineHeight}}"
|
height={{inlineHeight}}
|
||||||
/>
|
/>
|
||||||
{{elseif type === 'gifv' && !$autoplayGifs}}
|
{{elseif type === 'gifv' && !$autoplayGifs}}
|
||||||
<NonAutoplayGifv
|
<NonAutoplayGifv
|
||||||
class="{{noNativeWidthHeight ? 'no-native-width-height' : ''}}"
|
class={{noNativeWidthHeight ? 'no-native-width-height' : ''}}
|
||||||
label="Animated GIF: {{description}}"
|
label="Animated GIF: {{description}}"
|
||||||
poster="{{previewUrl}}"
|
poster={{previewUrl}}
|
||||||
src="{{url}}"
|
src={{url}}
|
||||||
staticSrc="{{previewUrl}}"
|
staticSrc={{previewUrl}}
|
||||||
width="{{inlineWidth}}"
|
width={{inlineWidth}}
|
||||||
height="{{inlineHeight}}"
|
height={{inlineHeight}}
|
||||||
playing="{{mouseover}}"
|
playing={{mouseover}}
|
||||||
/>
|
/>
|
||||||
{{else}}
|
{{else}}
|
||||||
<LazyImage
|
<LazyImage
|
||||||
alt="{{description}}"
|
alt={{description}}
|
||||||
title="{{description}}"
|
title={{description}}
|
||||||
src="{{previewUrl}}"
|
src={{previewUrl}}
|
||||||
fallback="{{oneTransparentPixel}}"
|
fallback={{oneTransparentPixel}}
|
||||||
width="{{inlineWidth}}"
|
width={{inlineWidth}}
|
||||||
height="{{inlineHeight}}"
|
height={{inlineHeight}}
|
||||||
background="var(--loading-bg)"
|
background="var(--loading-bg)"
|
||||||
className="{{noNativeWidthHeight ? 'no-native-width-height' : ''}}"
|
className={{noNativeWidthHeight ? 'no-native-width-height' : ''}}
|
||||||
/>
|
/>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
{{#if notification.type === 'mention' || notification.type === 'reblog' || notification.type === 'favourite'}}
|
{{#if notification.type === 'mention' || notification.type === 'reblog' || notification.type === 'favourite'}}
|
||||||
<Status :index :length :timelineType :timelineValue :focusSelector
|
<Status :index :length :timelineType :timelineValue :focusSelector
|
||||||
status="{{notification.status}}"
|
status={{notification.status}}
|
||||||
:notification
|
:notification
|
||||||
on:recalculateHeight
|
on:recalculateHeight
|
||||||
/>
|
/>
|
||||||
{{else}}
|
{{else}}
|
||||||
<article class="notification-article"
|
<article class="notification-article"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
aria-posinset="{{index}}" aria-setsize="{{length}}" >
|
aria-posinset={{index}} aria-setsize={{length}} >
|
||||||
<StatusHeader :notification :notificationId :status :statusId :timelineType
|
<StatusHeader :notification :notificationId :status :statusId :timelineType
|
||||||
:account :accountId :uuid isStatusInNotification="true" />
|
:account :accountId :uuid isStatusInNotification="true" />
|
||||||
</article>
|
</article>
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<article class="{{className}}"
|
<article class={{className}}
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
delegate-key="{{delegateKey}}"
|
delegate-key={{delegateKey}}
|
||||||
focus-key="{{delegateKey}}"
|
focus-key={{delegateKey}}
|
||||||
aria-posinset="{{index}}"
|
aria-posinset={{index}}
|
||||||
aria-setsize="{{length}}"
|
aria-setsize={{length}}
|
||||||
aria-label="{{ariaLabel}}"
|
aria-label={{ariaLabel}}
|
||||||
on:recalculateHeight>
|
on:recalculateHeight>
|
||||||
{{#if showHeader}}
|
{{#if showHeader}}
|
||||||
<StatusHeader {{...params}} />
|
<StatusHeader {{...params}} />
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
<StatusSpoiler {{...params}} on:recalculateHeight />
|
<StatusSpoiler {{...params}} on:recalculateHeight />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if showContent || contentPreloaded}}
|
{{#if showContent || contentPreloaded}}
|
||||||
<StatusContent {{...params}} shown="{{showContent}}"/>
|
<StatusContent {{...params}} shown={{showContent}}/>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if showMedia }}
|
{{#if showMedia }}
|
||||||
<StatusMediaAttachments {{...params}} on:recalculateHeight />
|
<StatusMediaAttachments {{...params}} on:recalculateHeight />
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<a class="status-author-name {{isStatusInNotification ? 'status-in-notification' : '' }} {{isStatusInOwnThread ? 'status-in-own-thread' : ''}}"
|
<a class="status-author-name {{isStatusInNotification ? 'status-in-notification' : '' }} {{isStatusInOwnThread ? 'status-in-own-thread' : ''}}"
|
||||||
href="/accounts/{{originalAccountId}}"
|
href="/accounts/{{originalAccountId}}"
|
||||||
title="{{'@' + originalAccount.acct}}"
|
title="{{'@' + originalAccount.acct}}"
|
||||||
focus-key="{{focusKey}}"
|
focus-key={{focusKey}}
|
||||||
>
|
>
|
||||||
{{originalAccount.display_name || originalAccount.username}}
|
{{originalAccount.display_name || originalAccount.username}}
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<div class="status-article-compose-box">
|
<div class="status-article-compose-box">
|
||||||
<ComposeBox realm="{{originalStatusId}}"
|
<ComposeBox realm={{originalStatusId}}
|
||||||
size="slim"
|
size="slim"
|
||||||
autoFocus="true"
|
autoFocus="true"
|
||||||
hideBottomBorder="true"
|
hideBottomBorder="true"
|
||||||
isReply="true"
|
isReply="true"
|
||||||
replyVisibility="{{visibility}}"
|
replyVisibility={{visibility}}
|
||||||
replySpoiler="{{spoilerText}}"
|
replySpoiler={{spoilerText}}
|
||||||
inReplyToUuid="{{uuid}}"
|
inReplyToUuid={{uuid}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<style>
|
<style>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<div class="{{computedClass}}" ref:node>
|
<div class={{computedClass}} ref:node>
|
||||||
{{{massagedContent}}}
|
{{{massagedContent}}}
|
||||||
</div>
|
</div>
|
||||||
<style>
|
<style>
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
<div class="status-details">
|
<div class="status-details">
|
||||||
<ExternalLink className="status-absolute-date"
|
<ExternalLink className="status-absolute-date"
|
||||||
href="{{originalStatus.url}}"
|
href={{originalStatus.url}}
|
||||||
showIcon="true"
|
showIcon="true"
|
||||||
ariaLabel="{{formattedDate}} (opens in new window)"
|
ariaLabel="{{formattedDate}} (opens in new window)"
|
||||||
>
|
>
|
||||||
<time datetime={{createdAtDate}} title="{{formattedDate}}">{{formattedDate}}</time>
|
<time datetime={{createdAtDate}} title={{formattedDate}}>{{formattedDate}}</time>
|
||||||
</ExternalLink>
|
</ExternalLink>
|
||||||
<a class="status-favs-reblogs"
|
<a class="status-favs-reblogs"
|
||||||
href="/statuses/{{originalStatusId}}/reblogs"
|
href="/statuses/{{originalStatusId}}/reblogs"
|
||||||
aria-label="{{reblogsLabel}}">
|
aria-label={{reblogsLabel}}>
|
||||||
<svg class="status-favs-reblogs-svg">
|
<svg class="status-favs-reblogs-svg">
|
||||||
<use xlink:href="#fa-retweet"/>
|
<use xlink:href="#fa-retweet"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
</a>
|
</a>
|
||||||
<a class="status-favs-reblogs"
|
<a class="status-favs-reblogs"
|
||||||
href="/statuses/{{originalStatusId}}/favorites"
|
href="/statuses/{{originalStatusId}}/favorites"
|
||||||
aria-label="{{favoritesLabel}}">
|
aria-label={{favoritesLabel}}>
|
||||||
<svg class="status-favs-reblogs-svg">
|
<svg class="status-favs-reblogs-svg">
|
||||||
<use xlink:href="#fa-star" />
|
<use xlink:href="#fa-star" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<Avatar :account size="extra-small"/>
|
<Avatar :account size="extra-small"/>
|
||||||
</div>
|
</div>
|
||||||
<svg class="status-header-svg">
|
<svg class="status-header-svg">
|
||||||
<use xlink:href="{{icon}}"/>
|
<use xlink:href={{icon}}/>
|
||||||
</svg>
|
</svg>
|
||||||
<span class="status-header-span">
|
<span class="status-header-span">
|
||||||
{{#if timelineType === 'pinned'}}
|
{{#if timelineType === 'pinned'}}
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
<a href="/accounts/{{accountId}}"
|
<a href="/accounts/{{accountId}}"
|
||||||
class="status-header-a"
|
class="status-header-a"
|
||||||
title="{{'@' + account.acct}}"
|
title="{{'@' + account.acct}}"
|
||||||
focus-key="{{focusKey}}" >
|
focus-key={{focusKey}} >
|
||||||
{{account.display_name || account.username}}
|
{{account.display_name || account.username}}
|
||||||
</a>
|
</a>
|
||||||
{{#if notification && notification.type === 'reblog'}}
|
{{#if notification && notification.type === 'reblog'}}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<button type="button"
|
<button type="button"
|
||||||
class="status-sensitive-media-button"
|
class="status-sensitive-media-button"
|
||||||
aria-label="Hide sensitive media"
|
aria-label="Hide sensitive media"
|
||||||
delegate-key="{{delegateKey}}" >
|
delegate-key={{delegateKey}} >
|
||||||
<div class="svg-wrapper">
|
<div class="svg-wrapper">
|
||||||
<svg class="status-sensitive-media-svg">
|
<svg class="status-sensitive-media-svg">
|
||||||
<use xlink:href="#fa-eye-slash" />
|
<use xlink:href="#fa-eye-slash" />
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
<button type="button"
|
<button type="button"
|
||||||
class="status-sensitive-media-button"
|
class="status-sensitive-media-button"
|
||||||
aria-label="Show sensitive media"
|
aria-label="Show sensitive media"
|
||||||
delegate-key="{{delegateKey}}" >
|
delegate-key={{delegateKey}} >
|
||||||
|
|
||||||
<div class="status-sensitive-media-warning">
|
<div class="status-sensitive-media-warning">
|
||||||
<span>Sensitive content. Click to show.</span>
|
<span>Sensitive content. Click to show.</span>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<a class="status-relative-date {{isStatusInNotification ? 'status-in-notification' : '' }}"
|
<a class="status-relative-date {{isStatusInNotification ? 'status-in-notification' : '' }}"
|
||||||
href="/statuses/{{originalStatusId}}"
|
href="/statuses/{{originalStatusId}}"
|
||||||
focus-key="{{focusKey}}"
|
focus-key={{focusKey}}
|
||||||
>
|
>
|
||||||
<time datetime={{createdAtDate}} title="{{relativeDate}}"
|
<time datetime={{createdAtDate}} title={{relativeDate}}
|
||||||
aria-label="{{relativeDate}} – click to show thread">
|
aria-label="{{relativeDate}} – click to show thread">
|
||||||
{{relativeDate}}
|
{{relativeDate}}
|
||||||
</time>
|
</time>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<a class="status-sidebar size-{{size}}"
|
<a class="status-sidebar size-{{size}}"
|
||||||
href="/accounts/{{originalAccountId}}"
|
href="/accounts/{{originalAccountId}}"
|
||||||
focus-key="{{focusKey}}"
|
focus-key={{focusKey}}
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
>
|
>
|
||||||
<Avatar account={{originalAccount}}
|
<Avatar account={{originalAccount}}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<p>{{{massagedSpoilerText}}}</p>
|
<p>{{{massagedSpoilerText}}}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="status-spoiler-button {{isStatusInOwnThread ? 'status-in-own-thread' : ''}}">
|
<div class="status-spoiler-button {{isStatusInOwnThread ? 'status-in-own-thread' : ''}}">
|
||||||
<button type="button" delegate-key="{{delegateKey}}">
|
<button type="button" delegate-key={{delegateKey}}>
|
||||||
{{spoilerShown ? 'Show less' : 'Show more'}}
|
{{spoilerShown ? 'Show less' : 'Show more'}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,34 +1,34 @@
|
||||||
<div class="status-toolbar {{isStatusInOwnThread ? 'status-in-own-thread' : ''}}" ref:node>
|
<div class="status-toolbar {{isStatusInOwnThread ? 'status-in-own-thread' : ''}}" ref:node>
|
||||||
<IconButton
|
<IconButton
|
||||||
className="status-toolbar-reply-button"
|
className="status-toolbar-reply-button"
|
||||||
label="{{replyLabel}}"
|
label={{replyLabel}}
|
||||||
pressable="true"
|
pressable="true"
|
||||||
pressed="{{replyShown}}"
|
pressed={{replyShown}}
|
||||||
href="#fa-reply"
|
href="#fa-reply"
|
||||||
delegateKey="{{replyKey}}"
|
delegateKey={{replyKey}}
|
||||||
focusKey="{{replyKey}}"
|
focusKey={{replyKey}}
|
||||||
/>
|
/>
|
||||||
<IconButton
|
<IconButton
|
||||||
label="{{reblogLabel}}"
|
label={{reblogLabel}}
|
||||||
pressable="{{!reblogDisabled}}"
|
pressable={{!reblogDisabled}}
|
||||||
pressed="{{reblogged}}"
|
pressed={{reblogged}}
|
||||||
disabled="{{reblogDisabled}}"
|
disabled={{reblogDisabled}}
|
||||||
href="{{reblogIcon}}"
|
href={{reblogIcon}}
|
||||||
delegateKey="{{reblogKey}}"
|
delegateKey={{reblogKey}}
|
||||||
ref:reblogIcon
|
ref:reblogIcon
|
||||||
/>
|
/>
|
||||||
<IconButton
|
<IconButton
|
||||||
label="Favorite"
|
label="Favorite"
|
||||||
pressable="true"
|
pressable="true"
|
||||||
pressed="{{favorited}}"
|
pressed={{favorited}}
|
||||||
href="#fa-star"
|
href="#fa-star"
|
||||||
delegateKey="{{favoriteKey}}"
|
delegateKey={{favoriteKey}}
|
||||||
ref:favoriteIcon
|
ref:favoriteIcon
|
||||||
/>
|
/>
|
||||||
<IconButton
|
<IconButton
|
||||||
label="Show more options"
|
label="Show more options"
|
||||||
href="#fa-ellipsis-h"
|
href="#fa-ellipsis-h"
|
||||||
delegateKey="{{optionsKey}}"
|
delegateKey={{optionsKey}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<style>
|
<style>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<MoreHeader count="{{virtualProps.count}}"
|
<MoreHeader count={{virtualProps.count}}
|
||||||
onClick="{{virtualProps.onClick}}"
|
onClick={{virtualProps.onClick}}
|
||||||
/>
|
/>
|
||||||
<script>
|
<script>
|
||||||
import MoreHeader from './MoreHeader.html'
|
import MoreHeader from './MoreHeader.html'
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<Notification
|
<Notification
|
||||||
notification="{{virtualProps.notification}}"
|
notification={{virtualProps.notification}}
|
||||||
timelineType="{{virtualProps.timelineType}}"
|
timelineType={{virtualProps.timelineType}}
|
||||||
timelineValue="{{virtualProps.timelineValue}}"
|
timelineValue={{virtualProps.timelineValue}}
|
||||||
focusSelector="{{virtualProps.focusSelector}}"
|
focusSelector={{virtualProps.focusSelector}}
|
||||||
index="{{virtualIndex}}"
|
index={{virtualIndex}}
|
||||||
length="{{virtualLength}}"
|
length={{virtualLength}}
|
||||||
on:recalculateHeight />
|
on:recalculateHeight />
|
||||||
<script>
|
<script>
|
||||||
import Notification from '../status/Notification.html'
|
import Notification from '../status/Notification.html'
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
{{#each pinnedStatuses as status, index @id}}
|
{{#each pinnedStatuses as status, index @id}}
|
||||||
<Status :status
|
<Status :status
|
||||||
timelineType="pinned"
|
timelineType="pinned"
|
||||||
timelineValue="{{accountId}}"
|
timelineValue={{accountId}}
|
||||||
:index
|
:index
|
||||||
length="{{pinnedStatuses.length}}"
|
length={{pinnedStatuses.length}}
|
||||||
/>
|
/>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<Status status="{{virtualProps.status}}"
|
<Status status={{virtualProps.status}}
|
||||||
timelineType="{{virtualProps.timelineType}}"
|
timelineType={{virtualProps.timelineType}}
|
||||||
timelineValue="{{virtualProps.timelineValue}}"
|
timelineValue={{virtualProps.timelineValue}}
|
||||||
focusSelector="{{virtualProps.focusSelector}}"
|
focusSelector={{virtualProps.focusSelector}}
|
||||||
index="{{virtualIndex}}"
|
index={{virtualIndex}}
|
||||||
length="{{virtualLength}}"
|
length={{virtualLength}}
|
||||||
on:recalculateHeight />
|
on:recalculateHeight />
|
||||||
<script>
|
<script>
|
||||||
import Status from '../status/Status.html'
|
import Status from '../status/Status.html'
|
||||||
|
|
|
@ -7,15 +7,15 @@
|
||||||
{{#await componentsPromise}}
|
{{#await componentsPromise}}
|
||||||
{{then result}}
|
{{then result}}
|
||||||
<:Component {result.listComponent}
|
<:Component {result.listComponent}
|
||||||
component="{{result.listItemComponent}}"
|
component={{result.listItemComponent}}
|
||||||
realm="{{$currentInstance + '/' + timeline}}"
|
realm="{{$currentInstance + '/' + timeline}}"
|
||||||
containerQuery=".container"
|
containerQuery=".container"
|
||||||
:makeProps
|
:makeProps
|
||||||
items="{{$timelineItemIds}}"
|
items={{$timelineItemIds}}
|
||||||
showFooter="{{$timelineInitialized && $runningUpdate}}"
|
showFooter={{$timelineInitialized && $runningUpdate}}
|
||||||
footerComponent="{{LoadingFooter}}"
|
footerComponent={{LoadingFooter}}
|
||||||
showHeader="{{$showHeader}}"
|
showHeader={{$showHeader}}
|
||||||
headerComponent="{{MoreHeaderVirtualWrapper}}"
|
headerComponent={{MoreHeaderVirtualWrapper}}
|
||||||
:headerProps
|
:headerProps
|
||||||
:scrollToItem
|
:scrollToItem
|
||||||
on:scrollToBottom="onScrollToBottom()"
|
on:scrollToBottom="onScrollToBottom()"
|
||||||
|
|
|
@ -2,19 +2,19 @@
|
||||||
<div class="virtual-list"
|
<div class="virtual-list"
|
||||||
style="height: {{$height}}px;"
|
style="height: {{$height}}px;"
|
||||||
ref:node >
|
ref:node >
|
||||||
<VirtualListHeader component="{{headerComponent}}" virtualProps="{{headerProps}}" shown="{{$showHeader}}"/>
|
<VirtualListHeader component={{headerComponent}} virtualProps={{headerProps}} shown={{$showHeader}}/>
|
||||||
{{#if $visibleItems}}
|
{{#if $visibleItems}}
|
||||||
{{#each $visibleItems as visibleItem @key}}
|
{{#each $visibleItems as visibleItem @key}}
|
||||||
<VirtualListLazyItem :component
|
<VirtualListLazyItem :component
|
||||||
offset="{{visibleItem.offset}}"
|
offset={{visibleItem.offset}}
|
||||||
makeProps="{{makeProps}}"
|
makeProps={{makeProps}}
|
||||||
key="{{visibleItem.key}}"
|
key={{visibleItem.key}}
|
||||||
index="{{visibleItem.index}}"
|
index={{visibleItem.index}}
|
||||||
/>
|
/>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if $showFooter}}
|
{{#if $showFooter}}
|
||||||
<VirtualListFooter component="{{footerComponent}}" />
|
<VirtualListFooter component={{footerComponent}} />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
</VirtualListContainer>
|
</VirtualListContainer>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<div class="virtual-list-item {{shown ? 'shown' : ''}}"
|
<div class="virtual-list-item {{shown ? 'shown' : ''}}"
|
||||||
aria-hidden="{{!shown}}"
|
aria-hidden={{!shown}}
|
||||||
virtual-list-key="{{key}}"
|
virtual-list-key={{key}}
|
||||||
ref:node
|
ref:node
|
||||||
style="transform: translateY({{offset}}px);" >
|
style="transform: translateY({{offset}}px);" >
|
||||||
<:Component {component}
|
<:Component {component}
|
||||||
virtualProps="{{props}}"
|
virtualProps={{props}}
|
||||||
virtualIndex="{{index}}"
|
virtualIndex={{index}}
|
||||||
virtualLength="{{$length}}"
|
virtualLength={{$length}}
|
||||||
on:recalculateHeight="doRecalculateHeight()"/>
|
on:recalculateHeight="doRecalculateHeight()"/>
|
||||||
</div>
|
</div>
|
||||||
<style>
|
<style>
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
<TimelinePage timeline="account/{{params.accountId}}">
|
<TimelinePage timeline="account/{{params.accountId}}">
|
||||||
<DynamicPageBanner title="" />
|
<DynamicPageBanner title="" />
|
||||||
{{#if $currentAccountProfile && $currentVerifyCredentials}}
|
{{#if $currentAccountProfile && $currentVerifyCredentials}}
|
||||||
<AccountProfile account="{{$currentAccountProfile}}"
|
<AccountProfile account={{$currentAccountProfile}}
|
||||||
relationship="{{$currentAccountRelationship}}"
|
relationship={{$currentAccountRelationship}}
|
||||||
verifyCredentials="{{$currentVerifyCredentials}}"
|
verifyCredentials={{$currentVerifyCredentials}}
|
||||||
/>
|
/>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<PinnedStatuses accountId="{{params.accountId}}" />
|
<PinnedStatuses accountId={{params.accountId}} />
|
||||||
</TimelinePage>
|
</TimelinePage>
|
||||||
{{else}}
|
{{else}}
|
||||||
<HiddenFromSSR>
|
<HiddenFromSSR>
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<PageList label="Lists">
|
<PageList label="Lists">
|
||||||
{{#each $lists as list}}
|
{{#each $lists as list}}
|
||||||
<PageListItem href="/lists/{{list.id}}"
|
<PageListItem href="/lists/{{list.id}}"
|
||||||
label="{{list.title}}"
|
label={{list.title}}
|
||||||
icon="#fa-bars"
|
icon="#fa-bars"
|
||||||
pinnable="true"
|
pinnable="true"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{{#if $isUserLoggedIn}}
|
{{#if $isUserLoggedIn}}
|
||||||
<TimelinePage timeline="list/{{params.listId}}">
|
<TimelinePage timeline="list/{{params.listId}}">
|
||||||
{{#if $pinnedPage !== `/lists/${params.listId}`}}
|
{{#if $pinnedPage !== `/lists/${params.listId}`}}
|
||||||
<DynamicPageBanner title="{{listTitle}}" icon="#fa-bars"/>
|
<DynamicPageBanner title={{listTitle}} icon="#fa-bars"/>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</TimelinePage>
|
</TimelinePage>
|
||||||
{{else}}
|
{{else}}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
{{elseif statuses && statuses.length}}
|
{{elseif statuses && statuses.length}}
|
||||||
<ul class="pinned-toots-results">
|
<ul class="pinned-toots-results">
|
||||||
{{#each statuses as status, index}}
|
{{#each statuses as status, index}}
|
||||||
<StatusSearchResult :status :index length="{{statuses.length}}" />
|
<StatusSearchResult :status :index length={{statuses.length}} />
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<SettingsLayout page='settings/instances/{{params.instanceName}}' label="{{params.instanceName}}">
|
<SettingsLayout page='settings/instances/{{params.instanceName}}' label={{params.instanceName}}>
|
||||||
<h1 class="instance-name-h1">{{params.instanceName}}</h1>
|
<h1 class="instance-name-h1">{{params.instanceName}}</h1>
|
||||||
|
|
||||||
{{#if verifyCredentials}}
|
{{#if verifyCredentials}}
|
||||||
<h2>Logged in as:</h2>
|
<h2>Logged in as:</h2>
|
||||||
<div class="acct-current-user">
|
<div class="acct-current-user">
|
||||||
<Avatar account="{{verifyCredentials}}" className="acct-avatar" size="big"/>
|
<Avatar account={{verifyCredentials}} className="acct-avatar" size="big"/>
|
||||||
<ExternalLink className="acct-handle"
|
<ExternalLink className="acct-handle"
|
||||||
href="{{verifyCredentials.url}}">
|
href={{verifyCredentials.url}}>
|
||||||
{{'@' + verifyCredentials.acct}}
|
{{'@' + verifyCredentials.acct}}
|
||||||
</ExternalLink>
|
</ExternalLink>
|
||||||
<span class="acct-display-name">{{verifyCredentials.display_name || verifyCredentials.acct}}</span>
|
<span class="acct-display-name">{{verifyCredentials.display_name || verifyCredentials.acct}}</span>
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
{{#each themes as theme}}
|
{{#each themes as theme}}
|
||||||
<div class="theme-group">
|
<div class="theme-group">
|
||||||
<input type="radio" id="choice-theme-{{theme.name}}"
|
<input type="radio" id="choice-theme-{{theme.name}}"
|
||||||
value="{{theme.name}}" checked="$currentTheme === theme.name"
|
value={{theme.name}} checked="$currentTheme === theme.name"
|
||||||
bind:group="selectedTheme" on:change="onThemeChange()">
|
bind:group="selectedTheme" on:change="onThemeChange()">
|
||||||
<label for="choice-theme-{{theme.name}}">{{theme.label}}</label>
|
<label for="choice-theme-{{theme.name}}">{{theme.label}}</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
bind:value='$instanceNameInSearch' placeholder='' required
|
bind:value='$instanceNameInSearch' placeholder='' required
|
||||||
>
|
>
|
||||||
<button class="primary" type="submit" id="submitButton"
|
<button class="primary" type="submit" id="submitButton"
|
||||||
disabled="{{!$instanceNameInSearch || $logInToInstanceLoading}}">
|
disabled={{!$instanceNameInSearch || $logInToInstanceLoading}}>
|
||||||
Add instance
|
Add instance
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
<p>Instances you've logged in to:</p>
|
<p>Instances you've logged in to:</p>
|
||||||
<SettingsList label="Instances">
|
<SettingsList label="Instances">
|
||||||
{{#each $loggedInInstancesAsList as instance}}
|
{{#each $loggedInInstancesAsList as instance}}
|
||||||
<SettingsListItem offsetForIcon="{{instance.name !== $currentInstance}}"
|
<SettingsListItem offsetForIcon={{instance.name !== $currentInstance}}
|
||||||
icon="{{instance.name === $currentInstance ? '#fa-star' : ''}}"
|
icon={{instance.name === $currentInstance ? '#fa-star' : ''}}
|
||||||
href="/settings/instances/{{instance.name}}"
|
href="/settings/instances/{{instance.name}}"
|
||||||
label="{{instance.name}}"
|
label={{instance.name}}
|
||||||
ariaLabel="{{instance.name}} {{instance.name === $currentInstance ? '(current instance)' : ''}}" />
|
ariaLabel="{{instance.name}} {{instance.name === $currentInstance ? '(current instance)' : ''}}" />
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</SettingsList>
|
</SettingsList>
|
||||||
|
|
Loading…
Reference in New Issue