import { ReactiveStore } from "@luna/core"; import { LunaSettings, LunaSwitchSetting, LunaNumberSetting } from "@luna/ui"; import React from "react"; export const settings = await ReactiveStore.getPluginStorage("RadiantLyrics", { hideUIEnabled: true, trackTitleGlow: false, playerBarVisible: false, lyricsGlowEnabled: true, textGlow: 20, spinningCoverEverywhere: true, performanceMode: false, spinningArtEnabled: true, backgroundContrast: 120, backgroundBlur: 80, backgroundBrightness: 40, spinSpeed: 45, settingsAffectNowPlaying: true, }); export const Settings = () => { const [hideUIEnabled, setHideUIEnabled] = React.useState( settings.hideUIEnabled, ); const [playerBarVisible, setPlayerBarVisible] = React.useState( settings.playerBarVisible, ); const [lyricsGlowEnabled, setLyricsGlowEnabled] = React.useState( settings.lyricsGlowEnabled, ); const [textGlow, setTextGlow] = React.useState(settings.textGlow); const [spinningCoverEverywhere, setSpinningCoverEverywhere] = React.useState( settings.spinningCoverEverywhere, ); const [performanceMode, setPerformanceMode] = React.useState( settings.performanceMode, ); const [spinningArtEnabled, setSpinningArtEnabled] = React.useState( settings.spinningArtEnabled, ); const [backgroundContrast, setBackgroundContrast] = React.useState( settings.backgroundContrast, ); const [backgroundBlur, setBackgroundBlur] = React.useState( settings.backgroundBlur, ); const [backgroundBrightness, setBackgroundBrightness] = React.useState( settings.backgroundBrightness, ); const [spinSpeed, setSpinSpeed] = React.useState(settings.spinSpeed); const [settingsAffectNowPlaying, setSettingsAffectNowPlaying] = React.useState(settings.settingsAffectNowPlaying); const [trackTitleGlow, setTrackTitleGlow] = React.useState( settings.trackTitleGlow, ); // Use a permissive wrapper to align with current usage props const AnySwitch = LunaSwitchSetting as unknown as React.ComponentType< Record >; return ( { setLyricsGlowEnabled((settings.lyricsGlowEnabled = checked)); // Update styles immediately when setting changes if ((window as any).updateRadiantLyricsStyles) { (window as any).updateRadiantLyricsStyles(); } }} /> { setTrackTitleGlow((settings.trackTitleGlow = checked)); if ((window as any).updateRadiantLyricsStyles) { (window as any).updateRadiantLyricsStyles(); } }} /> { setHideUIEnabled((settings.hideUIEnabled = checked)); }} /> { console.log("Player Bar Visibility:", checked ? "visible" : "hidden"); setPlayerBarVisible((settings.playerBarVisible = checked)); // Update styles immediately when setting changes if ((window as any).updateRadiantLyricsStyles) { (window as any).updateRadiantLyricsStyles(); } }} /> { console.log( "Spinning Cover Everywhere:", checked ? "enabled" : "disabled", ); setSpinningCoverEverywhere( (settings.spinningCoverEverywhere = checked), ); // Update styles immediately when setting changes if ((window as any).updateRadiantLyricsGlobalBackground) { (window as any).updateRadiantLyricsGlobalBackground(); } }} /> { console.log("Performance Mode:", checked ? "enabled" : "disabled"); setPerformanceMode((settings.performanceMode = checked)); // Update background animations immediately when setting changes if ((window as any).updateRadiantLyricsGlobalBackground) { (window as any).updateRadiantLyricsGlobalBackground(); } if ((window as any).updateRadiantLyricsNowPlayingBackground) { (window as any).updateRadiantLyricsNowPlayingBackground(); } }} /> { console.log( "Background Cover Spin:", checked ? "enabled" : "disabled", ); setSpinningArtEnabled((settings.spinningArtEnabled = checked)); if ((window as any).updateRadiantLyricsGlobalBackground) { (window as any).updateRadiantLyricsGlobalBackground(); } if ( settings.settingsAffectNowPlaying && (window as any).updateRadiantLyricsNowPlayingBackground ) { (window as any).updateRadiantLyricsNowPlayingBackground(); } }} /> { setTextGlow((settings.textGlow = value)); // Update variables immediately when setting changes if ((window as any).updateRadiantLyricsTextGlow) { (window as any).updateRadiantLyricsTextGlow(); } }} /> { setBackgroundContrast((settings.backgroundContrast = value)); if ((window as any).updateRadiantLyricsGlobalBackground) { (window as any).updateRadiantLyricsGlobalBackground(); } if ( settings.settingsAffectNowPlaying && (window as any).updateRadiantLyricsNowPlayingBackground ) { (window as any).updateRadiantLyricsNowPlayingBackground(); } }} /> { console.log("Background Blur:", value); setBackgroundBlur((settings.backgroundBlur = value)); if ((window as any).updateRadiantLyricsGlobalBackground) { (window as any).updateRadiantLyricsGlobalBackground(); } if ( settings.settingsAffectNowPlaying && (window as any).updateRadiantLyricsNowPlayingBackground ) { (window as any).updateRadiantLyricsNowPlayingBackground(); } }} /> { console.log("Background Brightness:", value); setBackgroundBrightness((settings.backgroundBrightness = value)); if ((window as any).updateRadiantLyricsGlobalBackground) { (window as any).updateRadiantLyricsGlobalBackground(); } if ( settings.settingsAffectNowPlaying && (window as any).updateRadiantLyricsNowPlayingBackground ) { (window as any).updateRadiantLyricsNowPlayingBackground(); } }} /> { console.log("Spin Speed:", value); setSpinSpeed((settings.spinSpeed = value)); if ((window as any).updateRadiantLyricsGlobalBackground) { (window as any).updateRadiantLyricsGlobalBackground(); } if ( settings.settingsAffectNowPlaying && (window as any).updateRadiantLyricsNowPlayingBackground ) { (window as any).updateRadiantLyricsNowPlayingBackground(); } }} /> { console.log( "Settings Affect Now Playing:", checked ? "enabled" : "disabled", ); setSettingsAffectNowPlaying( (settings.settingsAffectNowPlaying = checked), ); // Update Now Playing background immediately when setting changes if ((window as any).updateRadiantLyricsNowPlayingBackground) { (window as any).updateRadiantLyricsNowPlayingBackground(); } }} /> ); };