aboutsummaryrefslogtreecommitdiffstats
path: root/packages/renderer/src/components/App.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/renderer/src/components/App.tsx')
-rw-r--r--packages/renderer/src/components/App.tsx64
1 files changed, 43 insertions, 21 deletions
diff --git a/packages/renderer/src/components/App.tsx b/packages/renderer/src/components/App.tsx
index af2e4ec..b647a80 100644
--- a/packages/renderer/src/components/App.tsx
+++ b/packages/renderer/src/components/App.tsx
@@ -19,38 +19,46 @@
19 */ 19 */
20 20
21import Box from '@mui/material/Box'; 21import Box from '@mui/material/Box';
22import React from 'react'; 22import Button from '@mui/material/Button';
23import { observer } from 'mobx-react-lite';
24import React, { useCallback } from 'react';
23 25
24import BrowserViewPlaceholder from './BrowserViewPlaceholder'; 26import BrowserViewPlaceholder from './BrowserViewPlaceholder';
25import { useStore } from './StoreProvider'; 27import { useStore } from './StoreProvider';
26import LocationBar from './locationBar/LocationBar'; 28import LocationBar from './locationBar/LocationBar';
27import Sidebar from './sidebar/Sidebar'; 29import Sidebar from './sidebar/Sidebar';
28 30
29export default function App(): JSX.Element { 31function App(): JSX.Element {
30 const store = useStore(); 32 const {
33 settings: { selectedService },
34 } = useStore();
31 35
32 function onClick(event: React.MouseEvent<HTMLDivElement, MouseEvent>): void { 36 const handleBackForwardMouseButtons = useCallback(
33 switch (event.button) { 37 (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
34 case 3: 38 switch (event.button) {
35 store.settings.selectedService?.goBack(); 39 case 3:
36 break; 40 selectedService?.goBack();
37 case 4: 41 break;
38 store.settings.selectedService?.goForward(); 42 case 4:
39 break; 43 selectedService?.goForward();
40 default: 44 break;
41 // Allow the event to propagate. 45 default:
42 return; 46 // Allow the event to propagate.
43 } 47 return;
44 event.preventDefault(); 48 }
45 event.stopPropagation(); 49 event.preventDefault();
46 } 50 event.stopPropagation();
51 },
52 [selectedService],
53 );
47 54
48 return ( 55 return (
49 <Box 56 <Box
50 onClick={(event) => onClick(event)} 57 onClick={handleBackForwardMouseButtons}
51 onAuxClick={(event) => onClick(event)} 58 onAuxClick={handleBackForwardMouseButtons}
52 sx={{ 59 sx={{
53 display: 'flex', 60 display: 'flex',
61 overflow: 'hidden',
54 flexDirection: 'row', 62 flexDirection: 'row',
55 alignItems: 'stretch', 63 alignItems: 'stretch',
56 height: '100vh', 64 height: '100vh',
@@ -69,8 +77,22 @@ export default function App(): JSX.Element {
69 }} 77 }}
70 > 78 >
71 <LocationBar /> 79 <LocationBar />
72 <BrowserViewPlaceholder /> 80 <BrowserViewPlaceholder>
81 <p>{JSON.stringify(selectedService?.state)}</p>
82 {selectedService?.state.type === 'certificateError' && (
83 <Button
84 disabled={selectedService.state.trust !== 'pending'}
85 onClick={() =>
86 selectedService?.temporarilyTrustCurrentCertificate()
87 }
88 >
89 Trust certificate
90 </Button>
91 )}
92 </BrowserViewPlaceholder>
73 </Box> 93 </Box>
74 </Box> 94 </Box>
75 ); 95 );
76} 96}
97
98export default observer(App);