aboutsummaryrefslogtreecommitdiffstats
path: root/packages/renderer/src/components/locationBar
diff options
context:
space:
mode:
Diffstat (limited to 'packages/renderer/src/components/locationBar')
-rw-r--r--packages/renderer/src/components/locationBar/ExtraButtons.tsx52
-rw-r--r--packages/renderer/src/components/locationBar/LocationBar.tsx2
-rw-r--r--packages/renderer/src/components/locationBar/NavigationButtons.tsx2
3 files changed, 55 insertions, 1 deletions
diff --git a/packages/renderer/src/components/locationBar/ExtraButtons.tsx b/packages/renderer/src/components/locationBar/ExtraButtons.tsx
new file mode 100644
index 0000000..4eaee29
--- /dev/null
+++ b/packages/renderer/src/components/locationBar/ExtraButtons.tsx
@@ -0,0 +1,52 @@
1/*
2 * Copyright (C) 2022 Kristóf Marussy <kristof@marussy.com>
3 *
4 * This file is part of Sophie.
5 *
6 * Sophie is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Affero General Public License as
8 * published by the Free Software Foundation, version 3.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Affero General Public License for more details.
14 *
15 * You should have received a copy of the GNU Affero General Public License
16 * along with this program. If not, see <https://www.gnu.org/licenses/>.
17 *
18 * SPDX-License-Identifier: AGPL-3.0-only
19 */
20
21import IconOpenInBrowser from '@mui/icons-material/OpenInBrowser';
22import Box from '@mui/material/Box';
23import IconButton from '@mui/material/IconButton';
24import { observer } from 'mobx-react-lite';
25import React from 'react';
26
27import type Service from '../../stores/Service';
28
29function ExtraButtons({
30 service,
31}: {
32 service: Service | undefined;
33}): JSX.Element {
34 return (
35 <Box
36 sx={{
37 display: 'flex',
38 flexDirection: 'row',
39 }}
40 >
41 <IconButton
42 aria-label="Open in browser"
43 disabled={service?.currentUrl === undefined}
44 onClick={() => service?.openCurrentURLInExternalBrowser()}
45 >
46 <IconOpenInBrowser />
47 </IconButton>
48 </Box>
49 );
50}
51
52export default observer(ExtraButtons);
diff --git a/packages/renderer/src/components/locationBar/LocationBar.tsx b/packages/renderer/src/components/locationBar/LocationBar.tsx
index 0debaab..fc9c147 100644
--- a/packages/renderer/src/components/locationBar/LocationBar.tsx
+++ b/packages/renderer/src/components/locationBar/LocationBar.tsx
@@ -24,6 +24,7 @@ import React from 'react';
24 24
25import { useStore } from '../StoreProvider'; 25import { useStore } from '../StoreProvider';
26 26
27import ExtraButtons from './ExtraButtons';
27import LocationTextField from './LocationTextField'; 28import LocationTextField from './LocationTextField';
28import NavigationButtons from './NavigationButtons'; 29import NavigationButtons from './NavigationButtons';
29 30
@@ -49,6 +50,7 @@ function LocationBar(): JSX.Element {
49 <LocationBarRoot id={LOCATION_BAR_ID} hidden={!showLocationBar}> 50 <LocationBarRoot id={LOCATION_BAR_ID} hidden={!showLocationBar}>
50 <NavigationButtons service={selectedService} /> 51 <NavigationButtons service={selectedService} />
51 <LocationTextField service={selectedService} /> 52 <LocationTextField service={selectedService} />
53 <ExtraButtons service={selectedService} />
52 </LocationBarRoot> 54 </LocationBarRoot>
53 ); 55 );
54} 56}
diff --git a/packages/renderer/src/components/locationBar/NavigationButtons.tsx b/packages/renderer/src/components/locationBar/NavigationButtons.tsx
index 5c5c959..9995a21 100644
--- a/packages/renderer/src/components/locationBar/NavigationButtons.tsx
+++ b/packages/renderer/src/components/locationBar/NavigationButtons.tsx
@@ -29,7 +29,7 @@ import IconButton from '@mui/material/IconButton';
29import { observer } from 'mobx-react-lite'; 29import { observer } from 'mobx-react-lite';
30import React from 'react'; 30import React from 'react';
31 31
32import Service from '../../stores/Service'; 32import type Service from '../../stores/Service';
33 33
34function NavigationButtons({ 34function NavigationButtons({
35 service, 35 service,