diff options
| author | Shpuld Shpuldson <shp@cock.li> | 2021-08-08 16:14:22 +0300 |
|---|---|---|
| committer | Shpuld Shpuldson <shp@cock.li> | 2021-08-08 16:14:22 +0300 |
| commit | cc170aa3ecffa75004760fc6d02bd87373132f7d (patch) | |
| tree | 7d187ff11219399318f7482e0bc032cb20d025b9 /src/components/flash/flash.js | |
| parent | c3fcbbd918ddef4e3f574a464fd10f4899bb2dce (diff) | |
| parent | 425919a0d292b79869ebefd2a4d52ed4db45d319 (diff) | |
Update master with 2.4.0
Diffstat (limited to 'src/components/flash/flash.js')
| -rw-r--r-- | src/components/flash/flash.js | 52 |
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 |
