UNPKG

radix-player

Version:

Internet Radio Streamer

2 lines 19.8 kB
(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{104:function(e,t,n){},105:function(e,t,n){},106:function(e,t,n){},107:function(e,t,n){},170:function(e,t,n){},171:function(e,t,n){},187:function(e,t,n){"use strict";n.r(t);var a,r=n(1),i=n.n(r),s=n(6),o=n.n(s),c=(n(99),n(9)),l=n(10),u=n(13),h=n(12),d=n(14),p=n(18),f=n(15),m="ITEMS_FETCH",E="ITEMS_FETCH_SUCCESS",v="ITEMS_FETCH_ERROR",O="ITEMS_DELETE_SUCCESS";!function(e){e[e.INIT=0]="INIT",e[e.LOADING=1]="LOADING",e[e.LOADED=2]="LOADED",e[e.ERROR=3]="ERROR"}(a||(a={}));var b={state:a.INIT,items:[],errorMessage:""};var g,y=n(34),S=n(86),j="PLAYER_INFO",k="PLAYER_INFO_SUCCESS",C="PLAYER_INFO_ERROR";!function(e){e[e.INIT=0]="INIT",e[e.LOADING=1]="LOADING",e[e.LOADED=2]="LOADED",e[e.ERROR=3]="ERROR"}(g||(g={}));var I={state:g.INIT,info:{},errorMessage:""};var N,w="SEARCH_ITEMS_FETCH",T="SEARCH_ITEMS_FETCH_SUCCESS",D="SEARCH_ITEMS_FETCH_ERROR",R="ACTIVATE_SEARCH";!function(e){e[e.INIT=0]="INIT",e[e.LOADING=1]="LOADING",e[e.LOADED=2]="LOADED",e[e.ERROR=3]="ERROR"}(N||(N={}));var A,x={state:N.INIT,items:[],errorMessage:"",searchActivated:!1};!function(e){e[e.INIT=0]="INIT",e[e.LOADING=1]="LOADING",e[e.LOADED=2]="LOADED",e[e.ERROR=3]="ERROR"}(A||(A={}));var L=Object(y.c)({items:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:b,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case m:return Object(f.a)({},e,{items:t.items,state:a.LOADING});case E:return Object(f.a)({},e,{items:t.items,state:a.LOADED});case v:return Object(f.a)({},e,{errorMessage:t,state:a.ERROR});case O:var n=e.items;return n.splice(e.items.indexOf(t.item),1),Object(f.a)({},e,{items:n});default:return e}},search:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:x,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case w:return Object(f.a)({},e,{items:t.items,state:N.LOADING});case T:return Object(f.a)({},e,{items:t.items,state:N.LOADED});case D:return Object(f.a)({},e,{errorMessage:t,state:N.ERROR});case R:return Object(f.a)({},e,{searchActivated:t.isActive});default:return e}},player:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:I,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case j:return Object(f.a)({},e,{state:g.LOADING});case k:return Object(f.a)({},e,{info:t.info,state:g.LOADED});case C:return Object(f.a)({},e,{errorMessage:t.errorMessage,state:g.ERROR});default:return e}}}),M=Object(y.d)(L,Object(y.a)(S.a)),_=(n(104),n(105),n(106),function(){function e(){Object(c.a)(this,e)}return Object(l.a)(e,null,[{key:"play",value:function(e){var t=this.HOST+"/play?url="+e.url+"&title="+e.title;return fetch(t).then(function(e){if(!e.ok)throw Error(e.statusText);return e.json()}).catch(function(e){throw Error(e)})}},{key:"info",value:function(){var e=this.HOST+"/info";return fetch(e).then(function(e){if(!e.ok)throw Error(e.statusText);return e.json()}).catch(function(e){throw Error("Offline or wrong address")})}},{key:"searchStations",value:function(e){var t=this.HOST+"/search?query="+e;return fetch(t).then(function(e){if(!e.ok)throw Error(e.statusText);return e.json()}).catch(function(e){throw Error("Offline or wrong address")})}},{key:"update",value:function(){var e=this.HOST+"/update";return fetch(e).then(function(e){if(!e.ok)throw Error(e.statusText);return e.json()}).catch(function(e){throw Error("Offline or wrong address")})}},{key:"volume",value:function(e){var t=this.HOST+"/volume?set="+e;return fetch(t).then(function(e){if(!e.ok)throw Error(e.statusText);return e.json()}).catch(function(e){throw Error("Offline or wrong address")})}}]),e}());function F(e){return function(t){t(function(e){return{type:R,isActive:e}}(e))}}function P(e){return function(t){return t({type:w}),_.searchStations(e).then(function(e){return t({type:T,items:e})}).catch(function(e){return t(function(e){return{type:D,errorMessage:e.message}}(e))})}}_.HOST=localStorage.getItem("ip")||"";n(107);var H=function(e){function t(e,n){var a;return Object(c.a)(this,t),(a=Object(u.a)(this,Object(h.a)(t).call(this,e,n))).state={isSearching:!1},a.activateSearch=function(){a.setState({isSearching:!a.state.isSearching}),a.props.activateSearch(!a.state.isSearching)},a.onSearch=function(e){a.props.search(e.target.value)},a}return Object(d.a)(t,e),Object(l.a)(t,[{key:"render",value:function(){return i.a.createElement("header",null,i.a.createElement("div",{className:"header-background-container"},i.a.createElement("div",{className:"header-background"})),i.a.createElement("div",{className:"container"},i.a.createElement("div",{className:this.state.isSearching?"search-visible":"search-hidden"},i.a.createElement("span",null,"STATIONS"),i.a.createElement("input",{type:"text",className:"form-control form-control-lg",placeholder:"Search...",onChange:this.onSearch}))))}}]),t}(i.a.Component),G=Object(p.b)(function(e){return{searchState:e.search}},function(e){return{search:function(t){return e(P(t))},activateSearch:function(t){return e(F(t))}}})(H),U=n(8),J=n(92),W=(n(161),"https://radix-83cd.restdb.io/rest/stations"),B=function(){function e(){Object(c.a)(this,e)}return Object(l.a)(e,null,[{key:"getAll",value:function(){return fetch(W,{method:"GET",headers:new Headers({"x-apikey":"5ae89d7625a622ae4d528762"})}).then(function(e){return e.json()}).catch(function(e){return e})}},{key:"add",value:function(e){return fetch(W,{method:"POST",body:JSON.stringify(e),headers:new Headers({"Content-Type":"application/json","x-apikey":"5ae89d7625a622ae4d528762"})}).then(function(e){return e.json()}).catch(function(e){return e})}},{key:"removeFavorites",value:function(e){return fetch(W+"/"+e,{method:"DELETE",headers:new Headers({"Content-Type":"application/json","x-apikey":"5ae89d7625a622ae4d528762"})}).then(function(e){return e.json()}).catch(function(e){return e})}}]),e}();function Y(){return{type:j}}function q(e){return{type:C,errorMessage:e}}function V(){return function(e){return e(Y()),_.info().then(function(t){return e({type:k,info:t})}).catch(function(t){return e(q(t.toString()))})}}function K(e){return function(t){return t(Y()),_.play(e).then(function(e){return t(V())}).catch(function(e){return t(q(e.toString()))})}}var $=n(93),z=n(33),Q=n.n(z),X={content:{top:"50%",left:"50%",right:"auto",bottom:"auto",width:"80%",height:"40%",marginRight:"-50%",transform:"translate(-50%, -50%)",background:"rgba(0,0,0,0.7)",border:"none"},overlay:{background:"rgba(0,0,0,0.0)"}},Z=function(e){function t(e){var n;return Object(c.a)(this,t),(n=Object(u.a)(this,Object(h.a)(t).call(this,e))).state={title:"",url:""},n.onTitleChange=function(e){n.setState({title:e.target.value})},n.onUrlChange=function(e){n.setState({url:e.target.value})},n.play=function(){n.setState({modalIsOpen:!1});var e={title:n.state.title,url:n.state.url};n.props.play(e),n.props.closeMenu()},n.play=n.play.bind(Object(U.a)(n)),n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"render",value:function(){return i.a.createElement(Q.a,{isOpen:this.props.isOpen,onRequestClose:this.props.closeMenu,style:X},i.a.createElement("div",null,i.a.createElement("input",{className:"full-width",placeholder:"Title",type:"text",onChange:this.onTitleChange,value:this.state.title})),i.a.createElement("br",null),i.a.createElement("div",null,i.a.createElement("input",{className:"full-width",placeholder:"Url",type:"text",onChange:this.onUrlChange,value:this.state.url})),i.a.createElement("br",null),i.a.createElement("div",null,i.a.createElement("button",{disabled:!this.state.title||!this.state.url,onClick:this.play,className:"full-width"},"Play")))}}]),t}(i.a.Component),ee=Object(p.b)(function(e){return e.player},function(e){return{play:function(t){return e(K(t))}}})(Z),te=n(90),ne=n.n(te),ae=function(e){var t=Object(r.useState)(!1),n=Object($.a)(t,2),a=n[0],s=n[1];return i.a.createElement("div",null,i.a.createElement(Q.a,{isOpen:e.isOpen,closeTimeoutMS:300,onRequestClose:e.closeMenu,style:X},i.a.createElement("ul",{className:ne.a.bottomModal},i.a.createElement("li",{onClick:function(){s(!0),e.closeMenu()}},i.a.createElement("span",null,i.a.createElement("i",{className:"fas fa-plus"}))," Play From Url"),i.a.createElement("li",{onClick:e.addToFavorites},i.a.createElement("span",null,i.a.createElement("i",{className:"fas fa-star"}))," Add To Favorites"))),i.a.createElement(ee,{isOpen:a,closeMenu:function(){return s(!1)}}))},re=(n(170),n(45)),ie=i.a.forwardRef(function(e,t){var n=Object(re.b)({onSwipedDown:function(t){e.collapse()},preventDefaultTouchmoveEvent:!0,trackMouse:!0});return i.a.createElement("div",{className:e.isExpanded?"footer-overlay":""},i.a.createElement("footer",Object.assign({},n,{ref:t,onClick:function(){return!e.isExpanded&&e.expand(t)},className:e.isExpanded?"expanded":""}),e.children))}),se=function(e){switch(e.state){case A.LOADING:return i.a.createElement("span",null,i.a.createElement("i",{className:"fas fa-spinner"}),"Getting Info");case A.LOADED:return i.a.createElement("span",null,i.a.createElement("i",{className:"fas fa-music"}),e.text);case A.ERROR:return i.a.createElement("span",null,i.a.createElement("i",{className:"fas fa-unlink"}),e.error);default:return null}},oe=function(e){function t(e){var n;return Object(c.a)(this,t),(n=Object(u.a)(this,Object(h.a)(t).call(this,e))).state={modalIsOpen:!1,menuIsOpen:!1,title:"",url:""},n.addToFavorites=function(){n.props.addToFavorites()},n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"render",value:function(){return i.a.createElement("div",{className:"right footer-menu"},i.a.createElement("i",{onClick:this.props.openMenu,className:"fas fa-ellipsis-v"}))}}]),t}(i.a.Component),ce=function(e){function t(e){var n;return Object(c.a)(this,t),(n=Object(u.a)(this,Object(h.a)(t).call(this,e))).firstRef=void 0,n.state={isExpanded:!1,skipExpand:!1,menuIsOpen:!1},n.removeFromFavorites=function(){console.log("remove")},n.openMenu=function(){n.collapse(),n.setState({menuIsOpen:!0})},n.closeMenu=function(){n.setState({menuIsOpen:!1})},n.play=n.play.bind(Object(U.a)(n)),n.addToFavorites=n.addToFavorites.bind(Object(U.a)(n)),n.expand=n.expand.bind(Object(U.a)(n)),n.collapse=n.collapse.bind(Object(U.a)(n)),n.handleClickOutside=n.handleClickOutside.bind(Object(U.a)(n)),n.firstRef=i.a.createRef(),n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"componentDidMount",value:function(){this.props.state===A.INIT&&this.props.loadData()}},{key:"componentWillUnmount",value:function(){}},{key:"handleClickOutside",value:function(e){this.firstRef.current.contains(e.target)||this.collapse()}},{key:"play",value:function(e){this.props.play(e)}},{key:"addToFavorites",value:function(){this.props.addToFavorites()}},{key:"expand",value:function(){this.state.skipExpand||(document.addEventListener("mousedown",this.handleClickOutside,!1),this.setState({isExpanded:!0}),this.setState({skipExpand:!0}))}},{key:"collapse",value:function(){var e=this;setTimeout(function(){e.setState({skipExpand:!1})},200),this.setState({isExpanded:!1}),document.removeEventListener("mousedown",this.handleClickOutside,!1)}},{key:"onAfterChange",value:function(e){_.volume(e)}},{key:"render",value:function(){return i.a.createElement("div",null,i.a.createElement(ie,{ref:this.firstRef,expand:this.expand,collapse:this.collapse,isExpanded:this.state.isExpanded},i.a.createElement("div",{className:"header-background-container"},i.a.createElement("div",{className:"header-background"})),i.a.createElement(se,{state:this.props.state,text:this.props.info.title,error:this.props.errorMessage}),i.a.createElement(oe,{openMenu:this.openMenu,play:this.play,addToFavorites:this.addToFavorites}),!(void 0===this.props.info.volume)&&this.state.isExpanded&&i.a.createElement(J.a,{onAfterChange:this.onAfterChange,defaultValue:this.props.info.volume})),i.a.createElement(ae,{isOpen:this.state.menuIsOpen,closeMenu:this.closeMenu,addToFavorites:this.addToFavorites,removeFromFavorites:this.removeFromFavorites}))}}]),t}(i.a.Component),le=Object(p.b)(function(e){return e.player},function(e){return{loadData:function(){return e(V())},play:function(t){return e(K(t))},addToFavorites:function(){return e(function(e){var t=M.getState(),n={title:t.player.info.title,url:t.player.info.url};return B.add(n).then(function(e){return console.log(e),null}).catch(function(e){return null})})}}})(ce);function ue(){return function(e){return e({type:m}),B.getAll().then(function(t){return e({type:E,items:t})}).catch(function(t){return e(function(e){return{type:v,errorMessage:e.message}}(t))})}}function he(e){return function(t){return t(function(e){return{type:O,item:e}}(e)),B.removeFavorites(e._id).then(function(e){return console.log(e),null}).catch(function(e){return null})}}n(171);var de=function(e){function t(e){var n;return Object(c.a)(this,t),(n=Object(u.a)(this,Object(h.a)(t).call(this,e))).state={swiped:!1,deleted:!1},n.listElement=void 0,n.onPlay=n.onPlay.bind(Object(U.a)(n)),n.onDelete=n.onDelete.bind(Object(U.a)(n)),n.onSwiped=n.onSwiped.bind(Object(U.a)(n)),n.listElement={},n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"onSwiped",value:function(){this.setState({swiped:!0})}},{key:"onPlay",value:function(){var e=this;setTimeout(function(){e.state.swiped||(e.props.onClick(e.props.item),console.log("play"))},100)}},{key:"onDelete",value:function(){this.setState({swiped:!1}),this.setState({deleted:!0}),this.props.onDelete(this.props.item)}},{key:"render",value:function(){var e=this;return i.a.createElement(re.a,{onSwipedLeft:this.onSwiped,trackMouse:!0},i.a.createElement("li",{ref:function(t){return e.listElement=t},className:this.state.deleted?"deleted":"",onClick:this.onPlay},i.a.createElement("div",{className:["item-container",this.state.swiped?"swiped":""].join(" ")},i.a.createElement("span",{className:this.props.selected?"hidden":""},this.props.index+1,". "),i.a.createElement("div",{id:"bars",className:this.props.selected?"selected":""},i.a.createElement("div",{className:"bar"}),i.a.createElement("div",{className:"bar"}),i.a.createElement("div",{className:"bar"}),i.a.createElement("div",{className:"bar"})),this.props.item.title,i.a.createElement("div",{onClick:this.onDelete,className:["delete",this.state.swiped?"swiped":""].join(" ")},"Delete"))))}}]),t}(i.a.Component),pe=n(67),fe=n.n(pe),me=function(e){switch(e.state){case A.LOADING:return i.a.createElement("div",{className:fe.a.itemsLoading},i.a.createElement("i",{className:"fas fa-spinner"}));case A.LOADED:return i.a.createElement("ul",{className:fe.a.itemList},e.items.map(function(t,n){return i.a.createElement(de,{item:t,key:n,index:n,selected:e.isPlaying(t.url),onClick:e.onClick,onDelete:e.onDelete})}));default:return null}},Ee=function(e){function t(e,n){var a;return Object(c.a)(this,t),(a=Object(u.a)(this,Object(h.a)(t).call(this,e,n))).onClick=function(e){a.props.play(e)},a.onDelete=function(e){a.props.remove(e)},a.isPlaying=a.isPlaying.bind(Object(U.a)(a)),a.onDelete=a.onDelete.bind(Object(U.a)(a)),a}return Object(d.a)(t,e),Object(l.a)(t,[{key:"componentDidMount",value:function(){this.props.loadData()}},{key:"isPlaying",value:function(e){if(this.props)return this.props.currentPlayingUrl===e}},{key:"render",value:function(){return this.props.searchState.searchActivated?i.a.createElement(me,{state:this.props.searchState.state,items:this.props.searchState.items,isPlaying:this.isPlaying,onClick:this.onClick,onDelete:this.onDelete}):i.a.createElement(me,{state:this.props.itemsState.state,items:this.props.itemsState.items,isPlaying:this.isPlaying,onClick:this.onClick,onDelete:this.onDelete})}}]),t}(i.a.Component),ve=Object(p.b)(function(e){return{itemsState:e.items,currentPlayingUrl:e.player.info.url,searchState:e.search}},function(e){return{loadData:function(){return e(ue())},play:function(t){return e(K(t))},remove:function(t){return e(he(t))}}})(Ee),Oe=n(91),be=function(e){return i.a.createElement(Oe.slide,{isOpen:e.isOpen,onStateChange:function(t){return e.handleStateChange(t)}},i.a.createElement("div",{className:"menu-item"},"Stations"),i.a.createElement("div",{className:"menu-item"},"YouTube"),i.a.createElement("div",{className:"menu-item",onClick:function(t){e.showSettings(),e.handleStateChange({isOpen:!1})}},"Settings"))},ge=n(47),ye=n.n(ge),Se=function(e){function t(e){var n;return Object(c.a)(this,t),(n=Object(u.a)(this,Object(h.a)(t).call(this,e))).state={updateInProgress:!1,ip:"",oldIp:""},n.onIPChange=function(e){n.setState({ip:e.target.value});var t=e.target.value;localStorage.setItem("ip",t)},n.update=n.update.bind(Object(U.a)(n)),n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"componentDidMount",value:function(){this.setState({ip:localStorage.getItem("ip")||"",oldIp:localStorage.getItem("ip")||""})}},{key:"ipHasChanged",value:function(){return this.state.oldIp!==this.state.ip}},{key:"update",value:function(){this.setState({updateInProgress:!0}),_.update()}},{key:"render",value:function(){var e=this.props.show?"modal display-block":"modal display-none";return i.a.createElement("div",{className:ye.a.settings+" "+e},i.a.createElement("div",null,"Radix v",this.props.info.version),i.a.createElement("div",null,"Volume: ",this.props.info.volume),i.a.createElement("div",null,"Playing: ",this.props.info.title,i.a.createElement("div",null,i.a.createElement("i",null,this.props.info.url))),i.a.createElement("br",null),i.a.createElement("label",{htmlFor:"ip"},"IP Address:"),i.a.createElement("br",null),i.a.createElement("input",{id:"ip",className:ye.a.ip,placeholder:"http://radix.local",type:"text",value:this.state.ip,onChange:this.onIPChange}),this.ipHasChanged()&&i.a.createElement("span",null,"Restart for changes to take effect"),i.a.createElement("br",null),i.a.createElement("br",null),i.a.createElement("div",null,!this.state.updateInProgress&&i.a.createElement("button",{onClick:this.update},"Update"),this.state.updateInProgress&&i.a.createElement("span",null,"Update in progress...")),i.a.createElement("div",{className:ye.a.close,onClick:this.props.handleClose},i.a.createElement("i",{className:"fas fa-times-circle"})))}}]),t}(i.a.Component),je=Object(p.b)(function(e){return{searchState:e.search,info:e.player.info}},function(e){return{search:function(t){return e(P(t))},activateSearch:function(t){return e(F(t))}}})(Se);Q.a.setAppElement("#root");var ke=function(e){function t(){var e,n;Object(c.a)(this,t);for(var a=arguments.length,r=new Array(a),i=0;i<a;i++)r[i]=arguments[i];return(n=Object(u.a)(this,(e=Object(h.a)(t)).call.apply(e,[this].concat(r)))).state={show:!1,openSidebar:!1},n.show=function(){n.setState({show:!0})},n.hideModal=function(){n.setState({show:!1})},n.handleStateChange=function(e){n.setState({openSidebar:e.isOpen})},n}return Object(d.a)(t,e),Object(l.a)(t,[{key:"render",value:function(){return i.a.createElement(p.a,{store:M},i.a.createElement("div",{className:"App"},i.a.createElement(be,{isOpen:this.state.openSidebar,handleStateChange:this.handleStateChange,showSettings:this.show}),i.a.createElement("div",null,i.a.createElement(G,{store:M}),i.a.createElement(ve,null),i.a.createElement(le,null))),i.a.createElement(je,{show:this.state.show,handleClose:this.hideModal}))}}]),t}(r.Component);Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));o.a.render(i.a.createElement(ke,null),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(function(e){e.unregister()})},47:function(e,t,n){e.exports={settings:"settings_settings__RcWLF",close:"settings_close__SmJ9B",ip:"settings_ip__27hJE"}},67:function(e,t,n){e.exports={itemsLoading:"List_itemsLoading__x_0sD",itemList:"List_itemList__106K6"}},90:function(e,t,n){e.exports={bottomModal:"BottomModal_bottomModal__1WKxh"}},94:function(e,t,n){e.exports=n(187)},99:function(e,t,n){}},[[94,1,2]]]); //# sourceMappingURL=main.34d2e1d8.chunk.js.map