diff options
| author | xXJSONDeruloXx <danielhimebauch@gmail.com> | 2025-08-18 12:46:49 -0400 |
|---|---|---|
| committer | xXJSONDeruloXx <danielhimebauch@gmail.com> | 2025-08-18 12:46:49 -0400 |
| commit | b3dc324137444753131eccfcbd86ab82fbd1d972 (patch) | |
| tree | 63d16f9feeab33d0c54da01d148e4f7ce572951d /src | |
| parent | 3c008cfc633701ad75207f94b9c694bd217e763a (diff) | |
| download | decky-lsfg-vk-b3dc324137444753131eccfcbd86ab82fbd1d972.tar.gz decky-lsfg-vk-b3dc324137444753131eccfcbd86ab82fbd1d972.zip | |
rm collapse for core configs, buy more ui room
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/ConfigurationSection.tsx | 174 |
1 files changed, 54 insertions, 120 deletions
diff --git a/src/components/ConfigurationSection.tsx b/src/components/ConfigurationSection.tsx index 51fe47c..c14a2fd 100644 --- a/src/components/ConfigurationSection.tsx +++ b/src/components/ConfigurationSection.tsx @@ -15,7 +15,6 @@ interface ConfigurationSectionProps { } const WORKAROUNDS_COLLAPSED_KEY = 'lsfg-workarounds-collapsed'; -const CONFIG_COLLAPSED_KEY = 'lsfg-config-collapsed'; export function ConfigurationSection({ config, @@ -31,16 +30,6 @@ export function ConfigurationSection({ } }); - // Initialize with localStorage value, fallback to false (expanded) if not found - const [configCollapsed, setConfigCollapsed] = useState(() => { - try { - const saved = localStorage.getItem(CONFIG_COLLAPSED_KEY); - return saved !== null ? JSON.parse(saved) : false; - } catch { - return false; - } - }); - // Persist workarounds collapse state to localStorage useEffect(() => { try { @@ -50,15 +39,6 @@ export function ConfigurationSection({ } }, [workaroundsCollapsed]); - // Persist config collapse state to localStorage - useEffect(() => { - try { - localStorage.setItem(CONFIG_COLLAPSED_KEY, JSON.stringify(configCollapsed)); - } catch (error) { - console.warn('Failed to save config collapse state:', error); - } - }, [configCollapsed]); - return ( <> <style> @@ -69,118 +49,72 @@ export function ConfigurationSection({ .LSFG_WorkaroundsCollapseButton_Container > div > div > div > div > button { height: 10px !important; } - .LSFG_ConfigCollapseButton_Container > div > div > div > button { - height: 10px !important; - } - .LSFG_ConfigCollapseButton_Container > div > div > div > div > button { - height: 10px !important; - } `} </style> + {/* FPS Multiplier */} + <FpsMultiplierControl config={config} onConfigChange={onConfigChange} /> + <PanelSectionRow> - <div - style={{ - fontSize: "14px", - fontWeight: "bold", - marginTop: "16px", - marginBottom: "16px", - borderBottom: "1px solid rgba(255, 255, 255, 0.2)", - paddingBottom: "4px", - color: "white" - }} - > - LSFG Configuration - </div> + <SliderField + label={`Flow Scale (${Math.round(config.flow_scale * 100)}%)`} + description="Lowers internal motion estimation resolution, improving performance slightly" + value={config.flow_scale} + min={0.25} + max={1.0} + step={0.01} + onChange={(value) => onConfigChange(FLOW_SCALE, value)} + /> </PanelSectionRow> <PanelSectionRow> - <div className="LSFG_ConfigCollapseButton_Container"> - <ButtonItem - layout="below" - bottomSeparator={configCollapsed ? "standard" : "none"} - onClick={() => setConfigCollapsed(!configCollapsed)} - > - {configCollapsed ? ( - <RiArrowDownSFill - style={{ transform: "translate(0, -13px)", fontSize: "1.5em" }} - /> - ) : ( - <RiArrowUpSFill - style={{ transform: "translate(0, -12px)", fontSize: "1.5em" }} - /> - )} - </ButtonItem> - </div> + <SliderField + label={`Base FPS Cap${config.dxvk_frame_rate > 0 ? ` (${config.dxvk_frame_rate} FPS)` : ' (Off)'}`} + description="Base framerate cap for DirectX games, before frame multiplier. (Requires game restart to apply)" + value={config.dxvk_frame_rate} + min={0} + max={60} + step={1} + onChange={(value) => onConfigChange(DXVK_FRAME_RATE, value)} + /> </PanelSectionRow> - {!configCollapsed && ( - <> - {/* FPS Multiplier */} - <FpsMultiplierControl config={config} onConfigChange={onConfigChange} /> - - <PanelSectionRow> - <SliderField - label={`Flow Scale (${Math.round(config.flow_scale * 100)}%)`} - description="Lowers internal motion estimation resolution, improving performance slightly" - value={config.flow_scale} - min={0.25} - max={1.0} - step={0.01} - onChange={(value) => onConfigChange(FLOW_SCALE, value)} - /> - </PanelSectionRow> - - <PanelSectionRow> - <SliderField - label={`Base FPS Cap${config.dxvk_frame_rate > 0 ? ` (${config.dxvk_frame_rate} FPS)` : ' (Off)'}`} - description="Base framerate cap for DirectX games, before frame multiplier. (Requires game restart to apply)" - value={config.dxvk_frame_rate} - min={0} - max={60} - step={1} - onChange={(value) => onConfigChange(DXVK_FRAME_RATE, value)} - /> - </PanelSectionRow> - - <PanelSectionRow> - <ToggleField - label={`Present Mode (${(config.experimental_present_mode || "fifo") === "fifo" ? "FIFO - VSync" : "Mailbox"})`} - description="Toggle between FIFO - VSync (default) and Mailbox presentation modes for better performance or compatibility" - checked={(config.experimental_present_mode || "fifo") === "fifo"} - onChange={(value) => onConfigChange(EXPERIMENTAL_PRESENT_MODE, value ? "fifo" : "mailbox")} - /> - </PanelSectionRow> + <PanelSectionRow> + <ToggleField + label={`Present Mode (${(config.experimental_present_mode || "fifo") === "fifo" ? "FIFO - VSync" : "Mailbox"})`} + description="Toggle between FIFO - VSync (default) and Mailbox presentation modes for better performance or compatibility" + checked={(config.experimental_present_mode || "fifo") === "fifo"} + onChange={(value) => onConfigChange(EXPERIMENTAL_PRESENT_MODE, value ? "fifo" : "mailbox")} + /> + </PanelSectionRow> - <PanelSectionRow> - <ToggleField - label="Performance Mode" - description="Uses a lighter model for FG (Recommended for most games)" - checked={config.performance_mode} - onChange={(value) => onConfigChange(PERFORMANCE_MODE, value)} - /> - </PanelSectionRow> + <PanelSectionRow> + <ToggleField + label="Performance Mode" + description="Uses a lighter model for FG (Recommended for most games)" + checked={config.performance_mode} + onChange={(value) => onConfigChange(PERFORMANCE_MODE, value)} + /> + </PanelSectionRow> - {/* <PanelSectionRow> - <ToggleField - label="Force Disable FP16" - description="Force-disable FP16 acceleration" - checked={config.no_fp16} - onChange={(value) => onConfigChange(NO_FP16, value)} - /> - </PanelSectionRow> */} + {/* <PanelSectionRow> + <ToggleField + label="Force Disable FP16" + description="Force-disable FP16 acceleration" + checked={config.no_fp16} + onChange={(value) => onConfigChange(NO_FP16, value)} + /> + </PanelSectionRow> */} - <PanelSectionRow> - <ToggleField - label="HDR Mode" - description={config.enable_wsi ? "Enables HDR mode (only for games that support HDR)" : "Enable WSI in the workarounds menu to unlock HDR toggle"} - checked={config.hdr_mode} - disabled={!config.enable_wsi} - onChange={(value) => onConfigChange(HDR_MODE, value)} - /> - </PanelSectionRow> - </> - )} + <PanelSectionRow> + <ToggleField + label="HDR Mode" + description={config.enable_wsi ? "Enables HDR mode (only for games that support HDR)" : "Enable WSI in the workarounds menu to unlock HDR toggle"} + checked={config.hdr_mode} + disabled={!config.enable_wsi} + onChange={(value) => onConfigChange(HDR_MODE, value)} + /> + </PanelSectionRow> {/* Workarounds Section */} <PanelSectionRow> |
