react-spotify-player
Advanced tools
+60
-48
@@ -7,2 +7,4 @@ 'use strict'; | ||
| var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | ||
| var _react = require('react'); | ||
@@ -18,4 +20,7 @@ | ||
| // Dimension prop type | ||
| function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
| function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } | ||
| function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } | ||
| /** | ||
@@ -28,2 +33,3 @@ * Spotify player iframe widget | ||
| // Dimension prop type | ||
| var dimensionPropType = _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]); | ||
@@ -46,64 +52,70 @@ | ||
| */ | ||
| var SpotifyPlayer = _react2.default.createClass({ | ||
| displayName: 'SpotifyPlayer', | ||
| var SpotifyPlayer = function (_Component) { | ||
| _inherits(SpotifyPlayer, _Component); | ||
| // ------------------------------------------------------ | ||
| // Component specs & lifecycle | ||
| // ------------------------------------------------------ | ||
| function SpotifyPlayer() { | ||
| _classCallCheck(this, SpotifyPlayer); | ||
| propTypes: { | ||
| return _possibleConstructorReturn(this, (SpotifyPlayer.__proto__ || Object.getPrototypeOf(SpotifyPlayer)).apply(this, arguments)); | ||
| } | ||
| // Spotify URI | ||
| uri: _propTypes2.default.string.isRequired, | ||
| _createClass(SpotifyPlayer, [{ | ||
| key: 'render', | ||
| // Size as either a preset or as custom dimensions | ||
| size: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['large', 'compact']), _propTypes2.default.shape({ | ||
| width: dimensionPropType, | ||
| height: dimensionPropType | ||
| })]), | ||
| // View | ||
| view: _propTypes2.default.oneOf(['list', 'coverart']), | ||
| // ------------------------------------------------------ | ||
| // Render | ||
| // ------------------------------------------------------ | ||
| // Theme | ||
| theme: _propTypes2.default.oneOf(['black', 'white']) | ||
| }, | ||
| value: function render() { | ||
| var _props = this.props, | ||
| uri = _props.uri, | ||
| view = _props.view, | ||
| theme = _props.theme; | ||
| var size = this.props.size; | ||
| getDefaultProps: function getDefaultProps() { | ||
| return { | ||
| size: 'large', | ||
| view: 'list', | ||
| theme: 'black' | ||
| }; | ||
| }, | ||
| if (typeof size === 'string') { | ||
| size = sizePresets[size]; | ||
| } | ||
| // ------------------------------------------------------ | ||
| // Render | ||
| // ------------------------------------------------------ | ||
| return _react2.default.createElement('iframe', { | ||
| className: 'SpotifyPlayer', | ||
| src: 'https://embed.spotify.com/?uri=' + uri + '&view=' + view + '&theme=' + theme, | ||
| width: size.width, | ||
| height: size.height, | ||
| frameBorder: '0', | ||
| allowTransparency: 'true' | ||
| }); | ||
| } | ||
| }]); | ||
| render: function render() { | ||
| var _props = this.props, | ||
| uri = _props.uri, | ||
| view = _props.view, | ||
| theme = _props.theme; | ||
| var size = this.props.size; | ||
| return SpotifyPlayer; | ||
| }(_react.Component); | ||
| SpotifyPlayer.propTypes = { | ||
| if (typeof size === 'string') { | ||
| size = sizePresets[size]; | ||
| } | ||
| // Spotify URI | ||
| uri: _propTypes2.default.string.isRequired, | ||
| return _react2.default.createElement('iframe', { | ||
| className: 'SpotifyPlayer', | ||
| src: 'https://embed.spotify.com/?uri=' + uri + '&view=' + view + '&theme=' + theme, | ||
| width: size.width, | ||
| height: size.height, | ||
| frameBorder: '0', | ||
| allowTransparency: 'true' | ||
| }); | ||
| } | ||
| }); | ||
| // Size as either a preset or as custom dimensions | ||
| size: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['large', 'compact']), _propTypes2.default.shape({ | ||
| width: dimensionPropType, | ||
| height: dimensionPropType | ||
| })]), | ||
| // View | ||
| view: _propTypes2.default.oneOf(['list', 'coverart']), | ||
| // Theme | ||
| theme: _propTypes2.default.oneOf(['black', 'white']) | ||
| }; | ||
| SpotifyPlayer.defaultProps = { | ||
| size: 'large', | ||
| view: 'list', | ||
| theme: 'black' | ||
| }; | ||
| exports.default = SpotifyPlayer; |
+6
-6
| { | ||
| "name": "react-spotify-player", | ||
| "version": "1.0.2", | ||
| "version": "1.0.3", | ||
| "description": "Spotify player widget in React", | ||
@@ -40,4 +40,4 @@ "main": "dist/SpotifyPlayer.js", | ||
| "babel-cli": "^6.24.1", | ||
| "babel-preset-es2015": "^6.3.13", | ||
| "babel-preset-react": "^6.3.13", | ||
| "babel-preset-es2015": "^6.24.1", | ||
| "babel-preset-react": "^6.24.1", | ||
| "babelify": "^7.2.0", | ||
@@ -47,7 +47,7 @@ "eslint": "^1.10.3", | ||
| "eslint-plugin-react": "^3.12.0", | ||
| "prop-types": "^15.5.10", | ||
| "react": "^0.14.3", | ||
| "react-dom": "^0.14.3", | ||
| "prop-types": "^15.6.0", | ||
| "react": "^16.0.0", | ||
| "react-dom": "^16.0.0", | ||
| "watchify": "^3.6.1" | ||
| } | ||
| } |
+31
-37
@@ -9,3 +9,3 @@ | ||
| import React from 'react'; | ||
| import React, { Component } from 'react'; | ||
| import PropTypes from 'prop-types'; | ||
@@ -31,38 +31,5 @@ | ||
| */ | ||
| const SpotifyPlayer = React.createClass({ | ||
| class SpotifyPlayer extends Component { | ||
| // ------------------------------------------------------ | ||
| // Component specs & lifecycle | ||
| // ------------------------------------------------------ | ||
| propTypes: { | ||
| // Spotify URI | ||
| uri: PropTypes.string.isRequired, | ||
| // Size as either a preset or as custom dimensions | ||
| size: PropTypes.oneOfType([ | ||
| PropTypes.oneOf(['large', 'compact']), | ||
| PropTypes.shape({ | ||
| width: dimensionPropType, | ||
| height: dimensionPropType, | ||
| }), | ||
| ]), | ||
| // View | ||
| view: PropTypes.oneOf(['list', 'coverart']), | ||
| // Theme | ||
| theme: PropTypes.oneOf(['black', 'white']), | ||
| }, | ||
| getDefaultProps() { | ||
| return { | ||
| size: 'large', | ||
| view: 'list', | ||
| theme: 'black', | ||
| }; | ||
| }, | ||
| // ------------------------------------------------------ | ||
| // Render | ||
@@ -89,6 +56,33 @@ // ------------------------------------------------------ | ||
| ); | ||
| }, | ||
| } | ||
| }); | ||
| } | ||
| SpotifyPlayer.propTypes = { | ||
| // Spotify URI | ||
| uri: PropTypes.string.isRequired, | ||
| // Size as either a preset or as custom dimensions | ||
| size: PropTypes.oneOfType([ | ||
| PropTypes.oneOf(['large', 'compact']), | ||
| PropTypes.shape({ | ||
| width: dimensionPropType, | ||
| height: dimensionPropType, | ||
| }), | ||
| ]), | ||
| // View | ||
| view: PropTypes.oneOf(['list', 'coverart']), | ||
| // Theme | ||
| theme: PropTypes.oneOf(['black', 'white']), | ||
| }; | ||
| SpotifyPlayer.defaultProps = { | ||
| size: 'large', | ||
| view: 'list', | ||
| theme: 'black', | ||
| }; | ||
| export default SpotifyPlayer; |
8210
20.75%155
2.65%