diff --git a/CustomApps/lyrics-plus/style.css b/CustomApps/lyrics-plus/style.css index 56f12b94ca..c07fc38a4b 100644 --- a/CustomApps/lyrics-plus/style.css +++ b/CustomApps/lyrics-plus/style.css @@ -65,14 +65,14 @@ .lyrics-lyricsContainer-Loading { align-self: center; - grid-area: 1/1/-1/-1; + grid-area: 1 / 1 / -1 / -1; } .lyrics-lyricsContainer-LyricsUnavailablePage { align-items: center; color: var(--lyrics-color-inactive); display: flex; - grid-area: 1/1/-1/-1; + grid-area: 1 / 1 / -1 / -1; height: 100%; justify-content: center; padding: 20px; @@ -82,7 +82,7 @@ } .lyrics-lyricsContainer-UnsyncedLyricsPage { - grid-area: 1/1/-1/-1; + grid-area: 1 / 1 / -1 / -1; grid-template-rows: 1fr 20px; user-select: text; text-align: var(--lyrics-align-text); @@ -100,7 +100,7 @@ .lyrics-lyricsContainer-SyncedLyricsPage { display: grid; - grid-area: 1/1/-1/-1; + grid-area: 1 / 1 / -1 / -1; grid-template-rows: 1fr 30px; overflow: hidden; text-align: var(--lyrics-align-text); @@ -110,14 +110,14 @@ .lyrics-lyricsContainer-LyricsBackground { background-color: var(--lyrics-color-background); background-image: var(--lyrics-background-noise); - grid-area: 1/1/-1/-1; + grid-area: 1 / 1 / -1 / -1; transition: background-color 0.25s ease-out; } .lyrics-lyricsContainer-Provider { align-self: end; color: var(--lyrics-color-inactive); - grid-area: 2/1/-1/-1; + grid-area: 2 / 1 / -1 / -1; justify-self: stretch; height: 25px; overflow: hidden; @@ -129,7 +129,7 @@ .lyrics-lyricsContainer-SyncedLyrics { --lyrics-line-height: calc(4px + var(--lyrics-font-size)); - grid-area: 1/1/-2/-1; + grid-area: 1 / 1 / -2 / -1; height: 0; } @@ -308,11 +308,13 @@ div.lyrics-tabBar-headerItemLink { .lyrics-lyricsContainer-Karaoke-Word { color: var(--lyrics-color-inactive); - background-image: linear-gradient(to right, + background-image: linear-gradient( + to right, var(--lyrics-color-active), var(--lyrics-color-active) 45%, var(--lyrics-color-inactive) 55%, - var(--lyrics-color-inactive)); + var(--lyrics-color-inactive) + ); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-size: 225% 100%; diff --git a/CustomApps/new-releases/index.js b/CustomApps/new-releases/index.js index 4925574d78..72a5e191cd 100644 --- a/CustomApps/new-releases/index.js +++ b/CustomApps/new-releases/index.js @@ -290,13 +290,20 @@ async function getArtistList() { } async function getArtistEverything(artist) { - const { queryArtistDiscographyAll } = Spicetify.GraphQL.Definitions; - const { data, errors } = await Spicetify.GraphQL.Request(queryArtistDiscographyAll, { - uri: artist.uri, - offset: 0, - // Limit 100 since GraphQL has resource limit - limit: 100, - }); + const { data, errors } = await Spicetify.GraphQL.Request( + { + name: "queryArtistDiscographyAll", + operation: "query", + sha256Hash: "9380995a9d4663cbcb5113fef3c6aabf70ae6d407ba61793fd01e2a1dd6929b0", + value: null, + }, + { + uri: artist.uri, + offset: 0, + // Limit 100 since GraphQL has resource limit + limit: 100, + } + ); if (errors) throw errors; const releases = data?.artistUnion.discography.all.items.flatMap((r) => r.releases.items); diff --git a/CustomApps/new-releases/style.css b/CustomApps/new-releases/style.css index 944814e715..f5637dec0d 100644 --- a/CustomApps/new-releases/style.css +++ b/CustomApps/new-releases/style.css @@ -152,9 +152,7 @@ option { width: 28px; visibility: hidden; opacity: 0; - transition: - visibility 0s, - opacity 0.3s ease; + transition: visibility 0s, opacity 0.3s ease; } .main-card-closeButton:active { @@ -167,9 +165,7 @@ option { .main-card-card:hover .main-card-closeButton { visibility: visible; opacity: 1; - transition: - visibility 0s, - opacity 0.3s ease; + transition: visibility 0s, opacity 0.3s ease; } .new-releases-header + .main-gridContainer-gridContainer { diff --git a/jsHelper/sidebarConfig.js b/jsHelper/sidebarConfig.js index 22ac2d0dd8..b39483a7ea 100644 --- a/jsHelper/sidebarConfig.js +++ b/jsHelper/sidebarConfig.js @@ -166,13 +166,26 @@ color: var(--spice-button-disabled); (async () => { await new Promise((res) => Spicetify.Events.webpackLoaded.on(res)); if (document.querySelector(".Root__globalNav")) { - Spicetify.showNotification( - "Sidebar config is not supported on global navbar. Please disable it with `spicetify config sidebar_config 0` command.", - false, - 7000 - ); + Spicetify.Snackbar?.enqueueCustomSnackbar("sidebar-config", { + keyPrefix: "sidebar-config", + autoHideDuration: 7500, + children: Spicetify.ReactComponent.Snackbar.wrapper({ + children: Spicetify.ReactComponent.Snackbar.simpleLayout({ + center: Spicetify.React.createElement("div", { + dangerouslySetInnerHTML: { + __html: + "Sidebar config is not supported when Global Navbar is enabled. In Powershell, please run spicetify config sidebar_config 0 command and then re-apply spicetify with spicetify apply.", + }, + style: { + "text-size": "12px", + }, + }), + }), + }), + }); isGlobalNavbar = true; } + if (!isGlobalNavbar) { new Spicetify.Menu.Item( "사이드바 수정하기", diff --git a/src/apply/apply.go b/src/apply/apply.go index cbcb1b7c8d..e6d9d4fc50 100644 --- a/src/apply/apply.go +++ b/src/apply/apply.go @@ -333,14 +333,17 @@ func insertNavLink(str string, appNameArray string) string { } // Global Navbar <= 1.2.45 + globalNavBarMatch := utils.FindMatch(str, `(,[a-zA-Z_\$][\w\$]*===(?:[a-zA-Z_\$][\w\$]*\.){2}HOME_NEXT_TO_NAVIGATION&&.+?)\]`) utils.ReplaceOnce(&str, `(,[a-zA-Z_\$][\w\$]*===(?:[a-zA-Z_\$][\w\$]*\.){2}HOME_NEXT_TO_NAVIGATION&&.+?)\]`, func(submatches ...string) string { return fmt.Sprintf("%s,Spicetify._renderNavLinks([%s], true)]", submatches[1], appNameArray) }) // Global Navbar >= 1.2.46 - utils.ReplaceOnce(&str, `("global-nav-bar".*?)(\(0,\s*[a-zA-Z_\$][\w\$]*\.jsx\))(\(\s*\w+,\s*\{\s*className:\w*\s*\}\s*\))`, func(submatches ...string) string { - return fmt.Sprintf("%s[%s%s,Spicetify._renderNavLinks([%s], true)].flat()", submatches[1], submatches[2], submatches[3], appNameArray) - }) + if len(globalNavBarMatch) == 0 { + utils.ReplaceOnce(&str, `("global-nav-bar".*?)(\(0,\s*[a-zA-Z_\$][\w\$]*\.jsx\))(\(\s*\w+,\s*\{\s*className:\w*\s*\}\s*\))`, func(submatches ...string) string { + return fmt.Sprintf("%s[%s%s,Spicetify._renderNavLinks([%s], true)].flat()", submatches[1], submatches[2], submatches[3], appNameArray) + }) + } return str } diff --git a/src/preprocess/preprocess.go b/src/preprocess/preprocess.go index 8e7dbea7a7..6ea27620ef 100644 --- a/src/preprocess/preprocess.go +++ b/src/preprocess/preprocess.go @@ -564,15 +564,20 @@ func exposeAPIs_main(input string) string { croppedInput := utils.FindFirstMatch(input, `.*value:"contextmenu"`)[0] react := utils.FindLastMatch(croppedInput, `([a-zA-Z_\$][\w\$]*)\.useRef`)[1] candicates := utils.FindLastMatch(croppedInput, `\(\{[^}]*menu:([a-zA-Z_\$][\w\$]*),[^}]*trigger:([a-zA-Z_\$][\w\$]*),[^}]*triggerRef:([a-zA-Z_\$][\w\$]*)`) + oldCandicates := utils.FindLastMatch(croppedInput, `([a-zA-Z_\$][\w\$]*)=[\w_$]+\.menu[^}]*,([a-zA-Z_\$][\w\$]*)=[\w_$]+\.trigger[^}]*,([a-zA-Z_\$][\w\$]*)=[\w_$]+\.triggerRef`) var menu, trigger, target string - if len(candicates) == 0 { - menu = "e.menu" - trigger = "e.trigger" - target = "e.triggerRef" - } else { + if len(oldCandicates) != 0 { + menu = oldCandicates[1] + trigger = oldCandicates[2] + target = oldCandicates[3] + } else if len(candicates) != 0 { menu = candicates[1] trigger = candicates[2] target = candicates[3] + } else { + menu = "e.menu" + trigger = "e.trigger" + target = "e.triggerRef" } utils.Replace(&input, `\(0,([\w_$]+)\.jsx\)\([\w_$]+\.[\w_$]+,\{value:"contextmenu"[^\}]+\}\)\}\)`, func(submatches ...string) string {