Skip to content

Commit

Permalink
add seperate display settings, fix collaped mode
Browse files Browse the repository at this point in the history
  • Loading branch information
Sowgro committed Oct 30, 2023
1 parent 5bf1ebb commit c098250
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 12 deletions.
61 changes: 52 additions & 9 deletions CustomApps/betterLibrary/betterlibrary.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ var sidebar;
var text;
var center;
var betterLibIsEnabled;
var lastSidebarSize;
var lastSidebarMode; // 1=collapsed, 0=normal, 2=expanded
var lastSidebarSize; //
var lastSidebarMode; //ylx-sidebar-state 1=collapsed, 0=normal, 2=expanded
var lastViewIcons; //items-view 1=icons 2=list
var lastViewCompact; //library-row-mode 1=compact 2=normal

// Disables betterlibrary when the pages is left
function startListener() {
Expand All @@ -18,30 +20,71 @@ function enableBetterLib() {
waitForElm('.betterLibBox').then((elm) => {
if (!betterLibIsEnabled)
{
//swap elements
library = document.getElementsByClassName("main-yourLibraryX-libraryContainer")[0];
text = document.getElementsByClassName("betterLibText")[0];
sidebar = document.getElementsByClassName("main-yourLibraryX-library")[0];
center = document.getElementsByClassName("betterLibBox")[0];
center.appendChild(library);
sidebar.appendChild(text);
if (Spicetify.Platform.History)

//store last mode and size
lastSidebarMode = Spicetify.Platform.LocalStorageAPI.getItem("ylx-sidebar-state");
lastSidebarSize = document.documentElement.style.getPropertyValue("--left-sidebar-width");
lastSidebarSize = Spicetify.Platform.LocalStorageAPI.getItem("ylx-expanded-state-nav-bar-width");

//set new mode and size
currentSidebarSize = document.documentElement.style.getPropertyValue("--left-sidebar-width");
currentSidebarSize = parseInt(currentSidebarSize, 10);
Spicetify.Platform.LocalStorageAPI.setItem("ylx-expanded-state-nav-bar-width",currentSidebarSize);
Spicetify.Platform.LocalStorageAPI.setItem("ylx-sidebar-state",2);
if (lastSidebarMode != 1) //uncollapes sidebar temporarily while in betterlibrary
document.documentElement.style.setProperty("--left-sidebar-width", lastSidebarSize);
else
document.documentElement.style.setProperty("--left-sidebar-width", "280px");

//fix collaped library buttons
if (lastSidebarMode == 1) {
document.documentElement.style.setProperty("--betterlib-fix-collaped-view","none");
document.documentElement.style.setProperty("--betterlib-show-placeholder-text","none");
}

//store last icons mode and compact mode
lastViewIcons = Spicetify.Platform.LocalStorageAPI.getItem("items-view")
lastViewCompact = Spicetify.Platform.LocalStorageAPI.getItem("library-row-mode")

//get betterlib icons mode and compact mode from storage
newViewIcons = Spicetify.Platform.LocalStorageAPI.getItem("betterlib-items-view")
newViewCompact = Spicetify.Platform.LocalStorageAPI.getItem("betterlib-library-row-mode")

//apply betterlib icons mode and compact mode
Spicetify.Platform.LocalStorageAPI.setItem("items-view", newViewIcons);
Spicetify.Platform.LocalStorageAPI.setItem("library-row-mode", newViewCompact);


betterLibIsEnabled = true;
}
});
}

function disableBetterLib() {
//undo fix for collaped library buttons
if (lastSidebarMode == 1) {
document.documentElement.style.setProperty("--betterlib-fix-collaped-view","inherit");
document.documentElement.style.setProperty("--betterlib-show-placeholder-text","flex");
}

//revert swap
sidebar.appendChild(library);
center.appendChild(text);

//reset mode and size to last
Spicetify.Platform.LocalStorageAPI.setItem("lx-expanded-state-nav-bar-width",lastSidebarSize);
Spicetify.Platform.LocalStorageAPI.setItem("ylx-sidebar-state",lastSidebarMode);
document.documentElement.style.setProperty("--left-sidebar-width", lastSidebarSize);

//save betterlib icons mode and compact mode to storage
Spicetify.Platform.LocalStorageAPI.setItem("betterlib-items-view", Spicetify.Platform.LocalStorageAPI.getItem("items-view"));
Spicetify.Platform.LocalStorageAPI.setItem("betterlib-library-row-mode", Spicetify.Platform.LocalStorageAPI.getItem("library-row-mode"));

//revert icons and compact mode to last
Spicetify.Platform.LocalStorageAPI.setItem("items-view", lastViewIcons);
Spicetify.Platform.LocalStorageAPI.setItem("library-row-mode", lastViewCompact);

betterLibIsEnabled = false;
}

Expand Down
2 changes: 1 addition & 1 deletion CustomApps/betterLibrary/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const {
function render() {
startListener(); //I added this
enableBetterLib(); //And this
return react.createElement(Grid, { title: "Opened in the center pane" });
return react.createElement(Grid, { title: "Open in the main view" });
}

//builds components of the page
Expand Down
2 changes: 1 addition & 1 deletion CustomApps/betterLibrary/loadcss.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 11 additions & 1 deletion CustomApps/betterLibrary/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

/* makes the text visible only when it is in the sidebar */
.main-yourLibraryX-library .betterLibText {
display: flex;
display: var(--betterlib-show-placeholder-text);
}

/* makes the "your library" text not clickable */
Expand Down Expand Up @@ -64,4 +64,14 @@ span button.Button-sc-1dqy6lx-0.Button-sm-16-buttonTertiary-iconOnly-useBrowserD
/* add more padding to the sidebar */
.main-yourLibraryX-library {
padding-top: 5px;
}

/* fixes icons on collapsed betterlibrary */
span.Type__TypeElement-sc-goli3j-0.TypeElement-balladBold-type {
display: var(--betterlib-fix-collaped-view,inherit);
}

/* for future setting */
.main-yourLibraryX-entryPoints.main-yourLibraryX-library {
display: var(--betterlib-hide-sidebar-library,inherit);
}

0 comments on commit c098250

Please sign in to comment.