change name & component source

This commit is contained in:
Sveltecasts
2019-07-13 17:32:53 +02:00
parent a20b6f2a70
commit 10a6e271c8
2 changed files with 56 additions and 29 deletions

View File

@@ -1,5 +1,5 @@
{ {
"name": "SvelteComponent", "name": "@sveltecasts/svelte-youtube",
"svelte": "src/index.svelte", "svelte": "src/index.svelte",
"module": "index.mjs", "module": "index.mjs",
"main": "index.js", "main": "index.js",
@@ -20,5 +20,18 @@
"src", "src",
"index.mjs", "index.mjs",
"index.js" "index.js"
] ],
"description": "*Psst — looking for an app template? Go here --> [sveltejs/template](https://github.com/sveltejs/template)*",
"version": "0.0.1",
"dependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/sveltecasts/svelte-youtube.git"
},
"author": "Sveltecasts.dev",
"license": "ISC",
"bugs": {
"url": "https://github.com/sveltecasts/svelte-youtube/issues"
},
"homepage": "https://github.com/sveltecasts/svelte-youtube#readme"
} }

View File

@@ -1,35 +1,50 @@
<script context="module">
// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement("script");
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName("script")[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
window.onYouTubeIframeAPIReady = function() {
//console.log('hello')
window.dispatchEvent(new Event("YouTubeIframeAPIReady"))
}
</script>
<script> <script>
let player; let player;
import { createEventDispatcher } from "svelte"; import { createEventDispatcher , onMount} from "svelte";
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();
let divId = "player_"+parseInt(Math.random() * 100000).toString() let divId = "player_"+parseInt(Math.random() * 100000).toString()
export let videoId; export let videoId;
window.addEventListener("YouTubeIframeAPIReady", function(){ export let height = '390';
console.log('load player..') export let width = '640';
player = new YT.Player(divId, { onMount(() => {
height: '390', let ytTagUrl = "https://www.youtube.com/iframe_api";
width: '640', if(!isMyScriptLoaded(ytTagUrl)){
videoId: videoId, // 2. This code loads the IFrame Player API code asynchronously.
events: { var tag = document.createElement("script");
//'onReady': onPlayerReady, tag.src = ytTagUrl;
'onStateChange': onPlayerStateChange var firstScriptTag = document.getElementsByTagName("script")[0];
} firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
}); }
window.onYouTubeIframeAPIReady = function() {
//console.log('hello')
window.dispatchEvent(new Event("YouTubeIframeAPIReady"))
}
window.addEventListener("YouTubeIframeAPIReady", function(){
console.log('load player..')
player = new YT.Player(divId, {
height,
width,
videoId: videoId,
events: {
//'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
})
}) })
function isMyScriptLoaded(url ="") {
var scripts = document.getElementsByTagName('script');
for (var i = scripts.length; i--;) {
if (scripts[i].src == url) return true;
}
return false;
}
function onPlayerStateChange({data}){ function onPlayerStateChange({data}){
dispatch("StateChange",data) dispatch("StateChange",data)
} }
@@ -37,5 +52,4 @@
player.playVideo() player.playVideo()
} }
</script> </script>
YT-Component VID: {videoId}<br> <div id={divId}></div>
<div id={divId}></div><br>