summaryrefslogtreecommitdiff
path: root/frontend/src/components/settings/pages/plugin_list
diff options
context:
space:
mode:
authorEMERALD <hudson.samuels@gmail.com>2023-02-01 19:16:42 -0600
committerGitHub <noreply@github.com>2023-02-01 17:16:42 -0800
commit43b2269ea710c02278f784f28521a99dc9d3915b (patch)
tree34dde12638d07f63864c84fabc8654253532b6ae /frontend/src/components/settings/pages/plugin_list
parent0c4e27cd343a81d386c11bc17f93296a2e598a5c (diff)
downloaddecky-loader-43b2269ea710c02278f784f28521a99dc9d3915b.tar.gz
decky-loader-43b2269ea710c02278f784f28521a99dc9d3915b.zip
Fix UI inconsistencies, various improvements (#357)
* Make version gray in plugin list * Settings/store icons together & plugin list fix * Navigation name/icon improvements * Decky settings overhaul and other fixes - Revert the tab icon to a plug - Rename DeckyFlat function to DeckyIcon - Add DialogBody to settings pages to improve scrolling - Add remote debugging settings to the developer settings - Fix React devtools interactions to work more easily - Add spacing to React devtools description - Specify Decky vs. plugin store - Compact version information by update button - Add current version to bottom of settings - Remove unnecessary settings icons - Change CEF debugger icon to Chrome (bug icon too generic, is Chromium) - Make buttons/dropdowns in settings have fixed width - Make download icon act/appear similar to Valve's for Deck * Final UI adjustments * Switch plugin settings icon to plug
Diffstat (limited to 'frontend/src/components/settings/pages/plugin_list')
-rw-r--r--frontend/src/components/settings/pages/plugin_list/index.tsx98
1 files changed, 56 insertions, 42 deletions
diff --git a/frontend/src/components/settings/pages/plugin_list/index.tsx b/frontend/src/components/settings/pages/plugin_list/index.tsx
index 4eb89615..48894031 100644
--- a/frontend/src/components/settings/pages/plugin_list/index.tsx
+++ b/frontend/src/components/settings/pages/plugin_list/index.tsx
@@ -1,4 +1,12 @@
-import { DialogButton, Focusable, Menu, MenuItem, showContextMenu } from 'decky-frontend-lib';
+import {
+ DialogBody,
+ DialogButton,
+ DialogControlsSection,
+ Focusable,
+ Menu,
+ MenuItem,
+ showContextMenu,
+} from 'decky-frontend-lib';
import { useEffect } from 'react';
import { FaDownload, FaEllipsisH } from 'react-icons/fa';
@@ -21,46 +29,52 @@ export default function PluginList() {
}
return (
- <ul style={{ listStyleType: 'none' }}>
- {plugins.map(({ name, version }) => {
- const update = updates?.get(name);
- return (
- <li style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', paddingBottom: '10px' }}>
- <span>
- {name} {version}
- </span>
- <Focusable style={{ marginLeft: 'auto', boxShadow: 'none', display: 'flex', justifyContent: 'right' }}>
- {update && (
- <DialogButton
- style={{ height: '40px', minWidth: '60px', marginRight: '10px' }}
- onClick={() => requestPluginInstall(name, update)}
- >
- <div style={{ display: 'flex', flexDirection: 'row' }}>
- Update to {update.name}
- <FaDownload style={{ paddingLeft: '2rem' }} />
- </div>
- </DialogButton>
- )}
- <DialogButton
- style={{ height: '40px', width: '40px', padding: '10px 12px', minWidth: '40px' }}
- onClick={(e: MouseEvent) =>
- showContextMenu(
- <Menu label="Plugin Actions">
- <MenuItem onSelected={() => window.DeckyPluginLoader.importPlugin(name, version)}>
- Reload
- </MenuItem>
- <MenuItem onSelected={() => window.DeckyPluginLoader.uninstallPlugin(name)}>Uninstall</MenuItem>
- </Menu>,
- e.currentTarget ?? window,
- )
- }
- >
- <FaEllipsisH />
- </DialogButton>
- </Focusable>
- </li>
- );
- })}
- </ul>
+ <DialogBody>
+ <DialogControlsSection>
+ <ul style={{ listStyleType: 'none', padding: '0' }}>
+ {plugins.map(({ name, version }) => {
+ const update = updates?.get(name);
+ return (
+ <li style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', paddingBottom: '10px' }}>
+ <span>
+ {name} <span style={{ opacity: '50%' }}>{'(' + version + ')'}</span>
+ </span>
+ <Focusable style={{ marginLeft: 'auto', boxShadow: 'none', display: 'flex', justifyContent: 'right' }}>
+ {update && (
+ <DialogButton
+ style={{ height: '40px', minWidth: '60px', marginRight: '10px' }}
+ onClick={() => requestPluginInstall(name, update)}
+ >
+ <div style={{ display: 'flex', flexDirection: 'row' }}>
+ Update to {update.name}
+ <FaDownload style={{ paddingLeft: '2rem' }} />
+ </div>
+ </DialogButton>
+ )}
+ <DialogButton
+ style={{ height: '40px', width: '40px', padding: '10px 12px', minWidth: '40px' }}
+ onClick={(e: MouseEvent) =>
+ showContextMenu(
+ <Menu label="Plugin Actions">
+ <MenuItem onSelected={() => window.DeckyPluginLoader.importPlugin(name, version)}>
+ Reload
+ </MenuItem>
+ <MenuItem onSelected={() => window.DeckyPluginLoader.uninstallPlugin(name)}>
+ Uninstall
+ </MenuItem>
+ </Menu>,
+ e.currentTarget ?? window,
+ )
+ }
+ >
+ <FaEllipsisH />
+ </DialogButton>
+ </Focusable>
+ </li>
+ );
+ })}
+ </ul>
+ </DialogControlsSection>
+ </DialogBody>
);
}