diff --git a/types/react-youtube/index.d.ts b/types/react-youtube/index.d.ts new file mode 100644 index 0000000000..14458c74d0 --- /dev/null +++ b/types/react-youtube/index.d.ts @@ -0,0 +1,47 @@ +// Type definitions for react-youtube 7.4 +// Project: https://github.com/troybetz/react-youtube +// Definitions by: kgtkr +// Definitions: https://github.com/borisyankov/DefinitelyTyped +// TypeScript Version: 2.3 + +import * as React from "react"; +export default class YouTube extends React.Component<{ + videoId?: string, + id?: string, + className?: string, + opts?: { + height?: string, + width?: string, + playerVars?: { + autoplay?: 0 | 1, + cc_load_policy?: 1, + color?: 'red' | 'white', + controls?: 0 | 1 | 2, + disablekb?: 0 | 1, + enablejsapi?: 0 | 1, + end?: number, + fs?: 0 | 1, + hl?: string, + iv_load_policy?: 1 | 3, + list?: string, + listType?: 'playlist' | 'search' | 'user_uploads', + loop?: 0 | 1, + modestbranding?: 1, + origin?: string, + playlist?: string, + playsinline?: 0 | 1, + rel?: 0 | 1, + showinfo?: 0 | 1, + start?: number + } + }, + onReady?(event: { target: any }): void, + onError?(event: { target: any, data: number }): void, + onPlay?(event: { target: any, data: number }): void, + onPause?(event: { target: any, data: number }): void, + onEnd?(event: { target: any, data: number }): void, + onStateChange?(event: { target: any, data: number }): void, + onPlaybackRateChange?(event: { target: any, data: number }): void, + onPlaybackQualityChange?(event: { target: any, data: string }): void, +}> { +} diff --git a/types/react-youtube/react-youtube-tests.tsx b/types/react-youtube/react-youtube-tests.tsx new file mode 100644 index 0000000000..6b7205958f --- /dev/null +++ b/types/react-youtube/react-youtube-tests.tsx @@ -0,0 +1,28 @@ +import * as React from "react"; +import YouTube from 'react-youtube'; + +// https://github.com/troybetz/react-youtube +class Example extends React.Component { + render() { + const opts = { + height: '390', + width: '640', + playerVars: { // https://developers.google.com/youtube/player_parameters + autoplay: 1 as 1 + } + }; + + return ( + + ); + } + + _onReady(event: { target: any }) { + // access to player in all event handlers via event.target + event.target.pauseVideo(); + } +} diff --git a/types/react-youtube/tsconfig.json b/types/react-youtube/tsconfig.json new file mode 100644 index 0000000000..bfa6d2396a --- /dev/null +++ b/types/react-youtube/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "jsx": "react", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "react-youtube-tests.tsx" + ] +} \ No newline at end of file diff --git a/types/react-youtube/tslint.json b/types/react-youtube/tslint.json new file mode 100644 index 0000000000..e60c15844f --- /dev/null +++ b/types/react-youtube/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} \ No newline at end of file