function callTabSwitch() { switch(document.querySelector(".navBarItem.selected").id) { case "slycraft-home": fetch(BdApi.loadData("ReactiveData", "settings").radio_list_url) .then(res => res.json()) .then(data => { let radioStationArray = []; data.stations.forEach((radioStation) => { radioStationArray.push( BdApi.React.createElement("li", { class: "radioStation", dataRadioUrl: radioStation.url, dataRadioImgUrl: radioStation.imgUrl, children: [ BdApi.React.createElement("div", { class: "radioItemImage", style: { backgroundImage: `url(${radioStation.imgUrl})` } }), BdApi.React.createElement("span", {}, radioStation.name) ], onClick: () => { document.getElementById("slycraftAudioEngine").src = radioStation.url; document.getElementById("slycraftAudioEngine").setAttribute("data-radio-name", radioStation.name); document.getElementById("slycraftAudioEngine").play(); document.getElementById("radioName").innerHTML = radioStation.name; document.getElementById("playPauseBtn").innerHTML = "pause"; document.getElementById('playPauseBtn').classList.add('disabledonload'); document.querySelector('.animate_loader_wrapper').classList.add('visible'); } }) ) if(radioStationArray.length === data.stations.length) { console.log(radioStationArray.length + "/" + data.stations.length); document.getElementById("slycraftMainPanel").innerHTML = `
`; let discordRadioListReactRoot = BdApi.ReactDOM.unstable_createRoot(document.getElementById("discordRadioList")); discordRadioListReactRoot.render(radioStationArray); } }) }) break; case "about-slycraft": document.getElementById("slycraftMainPanel").innerHTML = `

Discord Radio

Version 0.0.1

`; break; case "slycraft-settings": document.getElementById("slycraftMainPanel").innerHTML = `

Radio Stations source file

Please follow the pattern of the default file, documentation is being worked on

Radio View

Reset Settings
`; document.getElementById("radioView").value = BdApi.loadData("ReactiveData", "settings").radio_view; break; case "slycraft-search": let slySearchPanelReact = BdApi.React.createElement("div", { id: "slySearchPanel", children: [ BdApi.React.createElement("input", { id: "slycraftSearchInput", class: "drTextInput", placeholder: "Search...", onInput: function() { slycraftApi.displaySearchResults(); } }), BdApi.React.createElement("div", { id: "searchResultsPanel", class: `display_${BdApi.loadData("ReactiveData", "settings").radio_view}` }) ] }) slycraftMainPanelReactRoot = BdApi.ReactDOM.unstable_createRoot(document.getElementById("slycraftMainPanel")) slycraftMainPanelReactRoot.render(slySearchPanelReact); fetch(BdApi.loadData("ReactiveData", "settings").radio_list_url) .then(res => res.json()) .then(obj => { searchRadioList = obj.stations; }) break; case "slycraft-custom-stream": let slyCystomStreamPanelReact = BdApi.React.createElement("div", { id: "slySearchPanel", children: [ BdApi.React.createElement("input", { id: "slycraftCustomUrlInput", class: "drTextInput", placeholder: "Enter a custom Stream URL...", onKeyPress: function() { slycraftApi.playCustomStream(event); } }) ] }) slycraftMainPanelReactRoot = BdApi.ReactDOM.unstable_createRoot(document.getElementById("slycraftMainPanel")) slycraftMainPanelReactRoot.render(slyCystomStreamPanelReact); break; }