slightly improve Svelte 2.0 compatibility (#244)
* slightly improve Svelte 2.0 compatibility * fixup * fix lint
This commit is contained in:
parent
8229d1c9e6
commit
c309e5842d
|
@ -74,6 +74,12 @@
|
||||||
imgLoad,
|
imgLoad,
|
||||||
imgLoadError
|
imgLoadError
|
||||||
},
|
},
|
||||||
|
data: () => ({
|
||||||
|
className: void 0,
|
||||||
|
loaded: false,
|
||||||
|
error: void 0,
|
||||||
|
isLink: false
|
||||||
|
}),
|
||||||
store: () => store,
|
store: () => store,
|
||||||
computed: {
|
computed: {
|
||||||
computedClass: (className, loaded, size) => (classname(
|
computedClass: (className, loaded, size) => (classname(
|
||||||
|
|
|
@ -60,6 +60,9 @@
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
|
data: () => ({
|
||||||
|
icon: void 0
|
||||||
|
}),
|
||||||
methods: {
|
methods: {
|
||||||
onGoBack (e) {
|
onGoBack (e) {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
|
|
@ -22,4 +22,11 @@
|
||||||
.external-link-with-icon.normal-icon-color .external-link-svg {
|
.external-link-with-icon.normal-icon-color .external-link-svg {
|
||||||
fill: var(--body-text-color);
|
fill: var(--body-text-color);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data: () => ({
|
||||||
|
normalIconColor: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -105,6 +105,17 @@
|
||||||
import { store } from '../_store/store'
|
import { store } from '../_store/store'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
data: () => ({
|
||||||
|
big: false,
|
||||||
|
muted: false,
|
||||||
|
disabled: false,
|
||||||
|
svgClassName: void 0,
|
||||||
|
focusKey: void 0,
|
||||||
|
pressable: false,
|
||||||
|
pressed: false,
|
||||||
|
className: void 0,
|
||||||
|
delegateKey: void 0
|
||||||
|
}),
|
||||||
store: () => store,
|
store: () => store,
|
||||||
computed: {
|
computed: {
|
||||||
computedClass: (pressable, pressed, big, muted, className) => {
|
computedClass: (pressable, pressed, big, muted, className) => {
|
||||||
|
|
|
@ -45,6 +45,11 @@
|
||||||
}
|
}
|
||||||
img.src = src
|
img.src = src
|
||||||
stop('LazyImage oncreate()')
|
stop('LazyImage oncreate()')
|
||||||
}
|
},
|
||||||
|
data: () => ({
|
||||||
|
displaySrc: void 0,
|
||||||
|
hidden: false,
|
||||||
|
ariaHidden: false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
|
@ -26,6 +26,9 @@
|
||||||
this.set({shown: true})
|
this.set({shown: true})
|
||||||
}, SPINNER_DELAY)
|
}, SPINNER_DELAY)
|
||||||
},
|
},
|
||||||
|
data: () => ({
|
||||||
|
shown: false
|
||||||
|
}),
|
||||||
components: {
|
components: {
|
||||||
LoadingSpinner
|
LoadingSpinner
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<svg class="loading-spinner-icon spin {{maskStyle ? 'mask-style' : ''}}"
|
<svg class="loading-spinner-icon spin {{maskStyle ? 'mask-style' : ''}}"
|
||||||
style="width: {{size || 64}}px; height: {{size || 64}}px;"
|
style="width: {{size}}px; height: {{size}}px;"
|
||||||
aria-label="Loading"
|
aria-label="Loading"
|
||||||
>
|
>
|
||||||
<use xlink:href="#fa-spinner" />
|
<use xlink:href="#fa-spinner" />
|
||||||
|
@ -12,4 +12,12 @@
|
||||||
.loading-spinner-icon.mask-style {
|
.loading-spinner-icon.mask-style {
|
||||||
fill: var(--mask-svg-fill);
|
fill: var(--mask-svg-fill);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data: () => ({
|
||||||
|
maskStyle: false,
|
||||||
|
size: 64
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 449 B |
|
@ -107,7 +107,7 @@
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
once: once,
|
once,
|
||||||
onClick (item) {
|
onClick (item) {
|
||||||
this.fire('autosuggestItemSelected')
|
this.fire('autosuggestItemSelected')
|
||||||
let { realm } = this.get()
|
let { realm } = this.get()
|
||||||
|
@ -147,7 +147,7 @@
|
||||||
if (!thisComposeFocused) {
|
if (!thisComposeFocused) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
let selectionStart = composeSelectionStartDeferred || 0
|
let selectionStart = composeSelectionStartDeferred
|
||||||
if (!text || selectionStart < MIN_PREFIX_LENGTH) {
|
if (!text || selectionStart < MIN_PREFIX_LENGTH) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -162,6 +162,10 @@
|
||||||
searchResults.length)
|
searchResults.length)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
data: () => ({
|
||||||
|
composeFocusedDeferred: void 0,
|
||||||
|
composeSelectionStartDeferred: 0
|
||||||
|
}),
|
||||||
store: () => store,
|
store: () => store,
|
||||||
components: {
|
components: {
|
||||||
ComposeAutosuggestionList
|
ComposeAutosuggestionList
|
||||||
|
|
|
@ -151,6 +151,13 @@
|
||||||
ComposeMedia,
|
ComposeMedia,
|
||||||
ComposeContentWarning
|
ComposeContentWarning
|
||||||
},
|
},
|
||||||
|
data: () => ({
|
||||||
|
size: void 0,
|
||||||
|
isReply: false,
|
||||||
|
autoFocus: false,
|
||||||
|
sticky: false,
|
||||||
|
hideBottomBorder: false
|
||||||
|
}),
|
||||||
store: () => store,
|
store: () => store,
|
||||||
computed: {
|
computed: {
|
||||||
computedClassName: (overLimit, realm, size, postPrivacyKey, isReply) => (classname(
|
computedClassName: (overLimit, realm, size, postPrivacyKey, isReply) => (classname(
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<div class="compose-box-length-gauge {{shouldAnimate ? 'should-animate' : ''}} {{overLimit ? 'over-char-limit' : ''}}"
|
<div class="compose-box-length-gauge {{shouldAnimate ? 'should-animate' : ''}} {{overLimit ? 'over-char-limit' : ''}}"
|
||||||
style="transform: scaleX({{lengthAsFractionDeferred || 0}});"
|
style="transform: scaleX({{lengthAsFractionDeferred}});"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
></div>
|
></div>
|
||||||
<style>
|
<style>
|
||||||
|
@ -38,6 +38,10 @@
|
||||||
})
|
})
|
||||||
}, {init: false})
|
}, {init: false})
|
||||||
},
|
},
|
||||||
|
data: () => ({
|
||||||
|
shouldAnimate: false,
|
||||||
|
lengthAsFractionDeferred: 0
|
||||||
|
}),
|
||||||
store: () => store,
|
store: () => store,
|
||||||
computed: {
|
computed: {
|
||||||
lengthAsFraction: (length) => {
|
lengthAsFraction: (length) => {
|
||||||
|
@ -46,5 +50,5 @@
|
||||||
return (int - (int % 2)) / 100
|
return (int - (int % 2)) / 100
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
|
@ -1,6 +1,6 @@
|
||||||
<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}}
|
||||||
</span>
|
</span>
|
||||||
<style>
|
<style>
|
||||||
.compose-box-length {
|
.compose-box-length {
|
||||||
|
@ -35,6 +35,9 @@
|
||||||
})
|
})
|
||||||
}, {init: false})
|
}, {init: false})
|
||||||
},
|
},
|
||||||
|
data: () => ({
|
||||||
|
lengthToDisplayDeferred: 0
|
||||||
|
}),
|
||||||
store: () => store,
|
store: () => store,
|
||||||
computed: {
|
computed: {
|
||||||
lengthToDisplay: (length) => CHAR_LIMIT - length,
|
lengthToDisplay: (length) => CHAR_LIMIT - length,
|
||||||
|
|
|
@ -124,6 +124,9 @@
|
||||||
components: {
|
components: {
|
||||||
PseudoVirtualListLazyItem
|
PseudoVirtualListLazyItem
|
||||||
},
|
},
|
||||||
|
data: () => ({
|
||||||
|
intersectionObserver: void 0
|
||||||
|
}),
|
||||||
store: () => pseudoVirtualListStore
|
store: () => pseudoVirtualListStore
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
|
@ -38,6 +38,9 @@
|
||||||
let { intersectionObserver } = this.get()
|
let { intersectionObserver } = this.get()
|
||||||
intersectionObserver.observe(this.refs.node)
|
intersectionObserver.observe(this.refs.node)
|
||||||
},
|
},
|
||||||
|
data: () => ({
|
||||||
|
hide: false
|
||||||
|
}),
|
||||||
computed: {
|
computed: {
|
||||||
shouldHide: (isIntersecting, isCached, hide) => {
|
shouldHide: (isIntersecting, isCached, hide) => {
|
||||||
if (isCached) {
|
if (isCached) {
|
||||||
|
|
|
@ -25,6 +25,9 @@
|
||||||
stop('PseudoVirtualListLazyItem set props')
|
stop('PseudoVirtualListLazyItem set props')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
data: () => ({
|
||||||
|
props: void 0
|
||||||
|
}),
|
||||||
components: {
|
components: {
|
||||||
PseudoVirtualListItem
|
PseudoVirtualListItem
|
||||||
}
|
}
|
||||||
|
|
|
@ -155,7 +155,8 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data: () => ({
|
data: () => ({
|
||||||
oneTransparentPixel: ONE_TRANSPARENT_PIXEL
|
oneTransparentPixel: ONE_TRANSPARENT_PIXEL,
|
||||||
|
mouseover: void 0
|
||||||
}),
|
}),
|
||||||
store: () => store,
|
store: () => store,
|
||||||
events: {
|
events: {
|
||||||
|
|
|
@ -138,6 +138,11 @@
|
||||||
StatusSpoiler,
|
StatusSpoiler,
|
||||||
StatusComposeBox
|
StatusComposeBox
|
||||||
},
|
},
|
||||||
|
data: () => ({
|
||||||
|
notification: void 0,
|
||||||
|
replyVisibility: void 0,
|
||||||
|
contentPreloaded: false
|
||||||
|
}),
|
||||||
store: () => store,
|
store: () => store,
|
||||||
methods: {
|
methods: {
|
||||||
onClickOrKeydown (e) {
|
onClickOrKeydown (e) {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<div class="lazy-timeline">
|
<div class="lazy-timeline">
|
||||||
{{#await importTimeline}}
|
{{#await importTimeline}}
|
||||||
|
<!-- awaiting promise -->
|
||||||
{{then constructor}}
|
{{then constructor}}
|
||||||
<:Component {constructor} :timeline />
|
<:Component {constructor} :timeline />
|
||||||
{{catch error}}
|
{{catch error}}
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
on:blurWithCapture="clearFocus(event)"
|
on:blurWithCapture="clearFocus(event)"
|
||||||
>
|
>
|
||||||
{{#await componentsPromise}}
|
{{#await componentsPromise}}
|
||||||
|
<!-- awaiting promise -->
|
||||||
{{then result}}
|
{{then result}}
|
||||||
<:Component {result.listComponent}
|
<:Component {result.listComponent}
|
||||||
component={{result.listItemComponent}}
|
component={{result.listItemComponent}}
|
||||||
|
|
|
@ -36,6 +36,9 @@
|
||||||
}
|
}
|
||||||
}, {init: false})
|
}, {init: false})
|
||||||
},
|
},
|
||||||
|
data: () => ({
|
||||||
|
fadedIn: false
|
||||||
|
}),
|
||||||
store: () => virtualListStore,
|
store: () => virtualListStore,
|
||||||
methods: {
|
methods: {
|
||||||
doCalculateHeight () {
|
doCalculateHeight () {
|
||||||
|
|
|
@ -20,6 +20,9 @@
|
||||||
stop('VirtualListLazyItem set props')
|
stop('VirtualListLazyItem set props')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
data: () => ({
|
||||||
|
props: void 0
|
||||||
|
}),
|
||||||
components: {
|
components: {
|
||||||
VirtualListItem
|
VirtualListItem
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,22 +105,21 @@
|
||||||
import { themes } from '../../../_static/themes'
|
import { themes } from '../../../_static/themes'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
async oncreate () {
|
||||||
SettingsLayout,
|
let { instanceName } = this.get()
|
||||||
ExternalLink,
|
let { instanceThemes } = this.store.get()
|
||||||
Avatar
|
this.set({
|
||||||
|
selectedTheme: instanceThemes[instanceName] || 'default'
|
||||||
|
})
|
||||||
|
await updateVerifyCredentialsForInstance(instanceName)
|
||||||
},
|
},
|
||||||
store: () => store,
|
store: () => store,
|
||||||
data: () => ({
|
data: () => ({
|
||||||
themes: themes
|
themes: themes,
|
||||||
|
selectedTheme: 'default'
|
||||||
}),
|
}),
|
||||||
async oncreate () {
|
|
||||||
let { instanceName } = this.get()
|
|
||||||
await updateVerifyCredentialsForInstance(instanceName)
|
|
||||||
},
|
|
||||||
computed: {
|
computed: {
|
||||||
instanceName: (params) => params.instanceName,
|
instanceName: (params) => params.instanceName,
|
||||||
selectedTheme: ($instanceThemes, instanceName) => $instanceThemes[instanceName] || 'default',
|
|
||||||
verifyCredentials: ($verifyCredentials, instanceName) => $verifyCredentials && $verifyCredentials[instanceName]
|
verifyCredentials: ($verifyCredentials, instanceName) => $verifyCredentials && $verifyCredentials[instanceName]
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -145,6 +144,11 @@
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
SettingsLayout,
|
||||||
|
ExternalLink,
|
||||||
|
Avatar
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
|
@ -2,7 +2,7 @@ export function imgLoadError (node, callback) {
|
||||||
node.addEventListener('error', callback)
|
node.addEventListener('error', callback)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
teardown () {
|
destroy () {
|
||||||
node.removeEventListener('error', callback)
|
node.removeEventListener('error', callback)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ export function imgLoad (node, callback) {
|
||||||
node.addEventListener('load', callback)
|
node.addEventListener('load', callback)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
teardown () {
|
destroy () {
|
||||||
node.removeEventListener('load', callback)
|
node.removeEventListener('load', callback)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ export function mouseover (node, callback) {
|
||||||
node.addEventListener('mouseenter', onMouseEnter)
|
node.addEventListener('mouseenter', onMouseEnter)
|
||||||
node.addEventListener('mouseleave', onMouseLeave)
|
node.addEventListener('mouseleave', onMouseLeave)
|
||||||
return {
|
return {
|
||||||
teardown () {
|
destroy () {
|
||||||
node.removeEventListener('mouseenter', onMouseEnter)
|
node.removeEventListener('mouseenter', onMouseEnter)
|
||||||
node.removeEventListener('mouseleave', onMouseLeave)
|
node.removeEventListener('mouseleave', onMouseLeave)
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ export function mouseover (node, callback) {
|
||||||
export function focusWithCapture (node, callback) {
|
export function focusWithCapture (node, callback) {
|
||||||
node.addEventListener('focus', callback, true)
|
node.addEventListener('focus', callback, true)
|
||||||
return {
|
return {
|
||||||
teardown () {
|
destroy () {
|
||||||
node.removeEventListener('focus', callback, true)
|
node.removeEventListener('focus', callback, true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ export function focusWithCapture (node, callback) {
|
||||||
export function blurWithCapture (node, callback) {
|
export function blurWithCapture (node, callback) {
|
||||||
node.addEventListener('blur', callback, true)
|
node.addEventListener('blur', callback, true)
|
||||||
return {
|
return {
|
||||||
teardown () {
|
destroy () {
|
||||||
node.removeEventListener('blur', callback, true)
|
node.removeEventListener('blur', callback, true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ export function selectionChange (node, callback) {
|
||||||
node.addEventListener(event, listener)
|
node.addEventListener(event, listener)
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
teardown () {
|
destroy () {
|
||||||
for (let event of events) {
|
for (let event of events) {
|
||||||
node.removeEventListener(event, listener)
|
node.removeEventListener(event, listener)
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,11 +23,12 @@ module.exports = {
|
||||||
use: {
|
use: {
|
||||||
loader: 'svelte-loader',
|
loader: 'svelte-loader',
|
||||||
options: {
|
options: {
|
||||||
|
dev: isDev,
|
||||||
hydratable: true,
|
hydratable: true,
|
||||||
emitCss: !isDev,
|
emitCss: !isDev,
|
||||||
cascade: false,
|
cascade: false,
|
||||||
store: true,
|
store: true,
|
||||||
hot: isDev
|
hotReload: isDev
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue