Change syntax to a utils action

This commit is contained in:
kylejwatson 2020-07-04 16:44:35 +01:00
parent cc101fd119
commit 0b988e72b9
3 changed files with 16 additions and 8 deletions

View File

@ -2,7 +2,7 @@ import Vue from 'vue'
import FtIconButton from '../ft-icon-button/ft-icon-button.vue' import FtIconButton from '../ft-icon-button/ft-icon-button.vue'
import FtButton from '../ft-button/ft-button.vue' import FtButton from '../ft-button/ft-button.vue'
import FtToastEvents from '../ft-toast/ft-toast-events' import { mapActions } from 'vuex'
export default Vue.extend({ export default Vue.extend({
name: 'FtShareButton', name: 'FtShareButton',
@ -60,7 +60,7 @@ export default Vue.extend({
}, },
copyInvidious() { copyInvidious() {
FtToastEvents.$emit('toast.open', 'Invidious URL copied to clipboard') this.showToast('Invidious URL copied to clipboard')
this.copy(this.invidiousURL) this.copy(this.invidiousURL)
this.$refs.iconButton.toggleDropdown() this.$refs.iconButton.toggleDropdown()
}, },
@ -71,7 +71,7 @@ export default Vue.extend({
}, },
copyYoutube() { copyYoutube() {
FtToastEvents.$emit('toast.open', 'YouTube URL copied to clipboard') this.showToast('YouTube URL copied to clipboard')
this.copy(this.youtubeURL) this.copy(this.youtubeURL)
this.$refs.iconButton.toggleDropdown() this.$refs.iconButton.toggleDropdown()
}, },
@ -82,7 +82,7 @@ export default Vue.extend({
}, },
copyYoutubeEmbed() { copyYoutubeEmbed() {
FtToastEvents.$emit('toast.open', 'YouTube Embed URL copied to clipboard') this.showToast('YouTube Embed URL copied to clipboard')
this.copy(this.youtubeEmbedURL) this.copy(this.youtubeEmbedURL)
this.$refs.iconButton.toggleDropdown() this.$refs.iconButton.toggleDropdown()
}, },
@ -93,9 +93,13 @@ export default Vue.extend({
}, },
copyInvidiousEmbed() { copyInvidiousEmbed() {
FtToastEvents.$emit('toast.open', 'Invidious Embed URL copied to clipboard') this.showToast('Invidious Embed URL copied to clipboard')
this.copy(this.invidiousEmbedURL) this.copy(this.invidiousEmbedURL)
this.$refs.iconButton.toggleDropdown() this.$refs.iconButton.toggleDropdown()
}, },
...mapActions([
'showToast'
])
} }
}) })

View File

@ -30,9 +30,9 @@ export default Vue.extend({
toast.isOpen = false toast.isOpen = false
}, },
open: function (message, action) { open: function (message, action, time) {
const toast = { message: message, action: action || (() => { }), isOpen: false, timeout: null } const toast = { message: message, action: action || (() => { }), isOpen: false, timeout: null }
toast.timeout = setTimeout(this.close, 5000, toast) toast.timeout = setTimeout(this.close, time || 3000, toast)
setImmediate(() => toast.isOpen = true) setImmediate(() => toast.isOpen = true)
if (this.toasts.length > 4) { if (this.toasts.length > 4) {
for (let i = this.toasts.length - 1; i >= 0; i--) { for (let i = this.toasts.length - 1; i >= 0; i--) {

View File

@ -1,5 +1,5 @@
import IsEqual from 'lodash.isequal' import IsEqual from 'lodash.isequal'
import FtToastEvents from '../../components/ft-toast/ft-toast-events'
const state = { const state = {
isSideNavOpen: false, isSideNavOpen: false,
sessionSearchHistory: [], sessionSearchHistory: [],
@ -84,6 +84,10 @@ const actions = {
] ]
return extractors.reduce((a, c) => a || c(), null) || false return extractors.reduce((a, c) => a || c(), null) || false
},
showToast (_, message, action, time) {
FtToastEvents.$emit('toast.open', message, action, time)
} }
} }