diff options
| author | EMERALD <hudson.samuels@gmail.com> | 2023-02-01 19:16:42 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-01 17:16:42 -0800 |
| commit | 43b2269ea710c02278f784f28521a99dc9d3915b (patch) | |
| tree | 34dde12638d07f63864c84fabc8654253532b6ae /frontend/src/components/settings/pages/plugin_list | |
| parent | 0c4e27cd343a81d386c11bc17f93296a2e598a5c (diff) | |
| download | decky-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.tsx | 98 |
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> ); } |
