Merge pull request #763 from grubersjoe/feat(#762)/preferences

Add menu entry for preferences and add shortcut for it
This commit is contained in:
Anoop M D 2023-10-25 23:47:50 +05:30 committed by GitHub
commit b731aa28be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 27 additions and 5 deletions

View File

@ -7,7 +7,7 @@ import Preferences from 'components/Preferences';
import { useState, useEffect } from 'react'; import { useState, useEffect } from 'react';
import { useSelector, useDispatch } from 'react-redux'; import { useSelector, useDispatch } from 'react-redux';
import { IconSettings } from '@tabler/icons'; import { IconSettings } from '@tabler/icons';
import { updateLeftSidebarWidth, updateIsDragging } from 'providers/ReduxStore/slices/app'; import { updateLeftSidebarWidth, updateIsDragging, showPreferences } from 'providers/ReduxStore/slices/app';
import { useTheme } from 'providers/Theme'; import { useTheme } from 'providers/Theme';
const MIN_LEFT_SIDEBAR_WIDTH = 222; const MIN_LEFT_SIDEBAR_WIDTH = 222;
@ -15,7 +15,7 @@ const MAX_LEFT_SIDEBAR_WIDTH = 600;
const Sidebar = () => { const Sidebar = () => {
const leftSidebarWidth = useSelector((state) => state.app.leftSidebarWidth); const leftSidebarWidth = useSelector((state) => state.app.leftSidebarWidth);
const [preferencesOpen, setPreferencesOpen] = useState(false); const preferencesOpen = useSelector((state) => state.app.showPreferences);
const [asideWidth, setAsideWidth] = useState(leftSidebarWidth); const [asideWidth, setAsideWidth] = useState(leftSidebarWidth);
@ -78,7 +78,7 @@ const Sidebar = () => {
<StyledWrapper className="flex relative h-screen"> <StyledWrapper className="flex relative h-screen">
<aside> <aside>
<div className="flex flex-row h-screen w-full"> <div className="flex flex-row h-screen w-full">
{preferencesOpen && <Preferences onClose={() => setPreferencesOpen(false)} />} {preferencesOpen && <Preferences onClose={() => dispatch(showPreferences(false))} />}
<div className="flex flex-col w-full" style={{ width: asideWidth }}> <div className="flex flex-col w-full" style={{ width: asideWidth }}>
<div className="flex flex-col flex-grow"> <div className="flex flex-col flex-grow">
@ -92,7 +92,7 @@ const Sidebar = () => {
size={18} size={18}
strokeWidth={1.5} strokeWidth={1.5}
className="mr-2 hover:text-gray-700" className="mr-2 hover:text-gray-700"
onClick={() => setPreferencesOpen(true)} onClick={() => dispatch(showPreferences(true))}
/> />
</div> </div>
<div className="pl-1" style={{ position: 'relative', top: '3px' }}> <div className="pl-1" style={{ position: 'relative', top: '3px' }}>

View File

@ -14,7 +14,7 @@ import {
runFolderEvent, runFolderEvent,
brunoConfigUpdateEvent brunoConfigUpdateEvent
} from 'providers/ReduxStore/slices/collections'; } from 'providers/ReduxStore/slices/collections';
import { updatePreferences } from 'providers/ReduxStore/slices/app'; import { showPreferences, updatePreferences } from 'providers/ReduxStore/slices/app';
import toast from 'react-hot-toast'; import toast from 'react-hot-toast';
import { openCollectionEvent, collectionAddEnvFileEvent } from 'providers/ReduxStore/slices/collections/actions'; import { openCollectionEvent, collectionAddEnvFileEvent } from 'providers/ReduxStore/slices/collections/actions';
import { isElectron } from 'utils/common/platform'; import { isElectron } from 'utils/common/platform';
@ -127,6 +127,10 @@ const useIpcEvents = () => {
dispatch(brunoConfigUpdateEvent(val)) dispatch(brunoConfigUpdateEvent(val))
); );
const showPreferencesListener = ipcRenderer.on('main:open-preferences', () => {
dispatch(showPreferences(true));
});
const removePreferencesUpdatesListener = ipcRenderer.on('main:load-preferences', (val) => { const removePreferencesUpdatesListener = ipcRenderer.on('main:load-preferences', (val) => {
dispatch(updatePreferences(val)); dispatch(updatePreferences(val));
}); });
@ -143,6 +147,7 @@ const useIpcEvents = () => {
removeProcessEnvUpdatesListener(); removeProcessEnvUpdatesListener();
removeConsoleLogListener(); removeConsoleLogListener();
removeConfigUpdatesListener(); removeConfigUpdatesListener();
showPreferencesListener();
removePreferencesUpdatesListener(); removePreferencesUpdatesListener();
}; };
}, [isElectron]); }, [isElectron]);

View File

@ -7,6 +7,7 @@ const initialState = {
leftSidebarWidth: 222, leftSidebarWidth: 222,
screenWidth: 500, screenWidth: 500,
showHomePage: false, showHomePage: false,
showPreferences: false,
preferences: { preferences: {
request: { request: {
sslVerification: true, sslVerification: true,
@ -40,6 +41,9 @@ export const appSlice = createSlice({
hideHomePage: (state) => { hideHomePage: (state) => {
state.showHomePage = false; state.showHomePage = false;
}, },
showPreferences: (state, action) => {
state.showPreferences = action.payload;
},
updatePreferences: (state, action) => { updatePreferences: (state, action) => {
state.preferences = action.payload; state.preferences = action.payload;
} }
@ -53,6 +57,7 @@ export const {
updateIsDragging, updateIsDragging,
showHomePage, showHomePage,
hideHomePage, hideHomePage,
showPreferences,
updatePreferences updatePreferences
} = appSlice.actions; } = appSlice.actions;

View File

@ -12,6 +12,14 @@ const template = [
ipcMain.emit('main:open-collection'); ipcMain.emit('main:open-collection');
} }
}, },
{
label: 'Preferences',
accelerator: 'CommandOrControl+,',
click() {
ipcMain.emit('main:open-preferences');
}
},
{ type: 'separator' },
{ role: 'quit' } { role: 'quit' }
] ]
}, },

View File

@ -23,6 +23,10 @@ const registerPreferencesIpc = (mainWindow, watcher, lastOpenedCollections) => {
} }
}); });
ipcMain.on('main:open-preferences', () => {
mainWindow.webContents.send('main:open-preferences');
});
ipcMain.handle('renderer:save-preferences', async (event, preferences) => { ipcMain.handle('renderer:save-preferences', async (event, preferences) => {
try { try {
await savePreferences(preferences); await savePreferences(preferences);