aboutsummaryrefslogtreecommitdiff
path: root/src/components/flash/flash.js
diff options
context:
space:
mode:
authorHJ <30-hj@users.noreply.git.pleroma.social>2021-05-31 11:00:53 +0000
committerHJ <30-hj@users.noreply.git.pleroma.social>2021-05-31 11:00:53 +0000
commitdc611dffdbf8f24c10caa7651651efbff1acfe67 (patch)
tree9231422f2f448204685c69984a2859a0f014dcab /src/components/flash/flash.js
parent0741d1d93d1ff40489747c0dcfd652be8bf6e2ab (diff)
parent245addb530f04510d072531eef45e7f30c79e237 (diff)
Merge branch 'flash-support' into 'develop'
Flash support See merge request pleroma/pleroma-fe!1380
Diffstat (limited to 'src/components/flash/flash.js')
-rw-r--r--src/components/flash/flash.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/components/flash/flash.js b/src/components/flash/flash.js
new file mode 100644
index 00000000..d03384c7
--- /dev/null
+++ b/src/components/flash/flash.js
@@ -0,0 +1,52 @@
+import RuffleService from '../../services/ruffle_service/ruffle_service.js'
+import { library } from '@fortawesome/fontawesome-svg-core'
+import {
+ faStop,
+ faExclamationTriangle
+} from '@fortawesome/free-solid-svg-icons'
+
+library.add(
+ faStop,
+ faExclamationTriangle
+)
+
+const Flash = {
+ props: [ 'src' ],
+ data () {
+ return {
+ player: false, // can be true, "hidden", false. hidden = element exists
+ loaded: false,
+ ruffleInstance: null
+ }
+ },
+ methods: {
+ openPlayer () {
+ if (this.player) return // prevent double-loading, or re-loading on failure
+ this.player = 'hidden'
+ RuffleService.getRuffle().then((ruffle) => {
+ const player = ruffle.newest().createPlayer()
+ player.config = {
+ letterbox: 'on'
+ }
+ const container = this.$refs.container
+ container.appendChild(player)
+ player.style.width = '100%'
+ player.style.height = '100%'
+ player.load(this.src).then(() => {
+ this.player = true
+ }).catch((e) => {
+ console.error('Error loading ruffle', e)
+ this.player = 'error'
+ })
+ this.ruffleInstance = player
+ })
+ },
+ closePlayer () {
+ console.log(this.ruffleInstance)
+ this.ruffleInstance.remove()
+ this.player = false
+ }
+ }
+}
+
+export default Flash