Skip to content

Commit ffacacb

Browse files
committed
fixes
1 parent 6461610 commit ffacacb

File tree

2 files changed

+49
-2
lines changed

2 files changed

+49
-2
lines changed

src/renderer/app/components/InputComponent/InputComponent.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import TextField from '../inputs/TextField';
2626
import { useRouter } from '../Link';
2727
import ScraperSelector from '../ScraperSelector/ScraperSelector';
2828
import { Container } from '../Wrappers';
29+
import { useGoogleChromeRequiredModal } from '../useGoogleChromeRequiredModal'
2930

3031
import DragDropFileUploader from '../inputs/DragDropFileUploader'
3132

@@ -508,8 +509,11 @@ const ScraperFormContainer = ({ scrapers, enable_cache }) => {
508509
}
509510
}
510511
} catch (error:any) {
511-
throw error;
512-
}
512+
if (error.message && error.message.includes('GOOGLE_CHROME_REQUIRED')) {
513+
showGoogleChromeRequiredModal()
514+
} else {
515+
throw error;
516+
} }
513517
} else {
514518
const rs = { ...accords }
515519

@@ -525,6 +529,7 @@ const ScraperFormContainer = ({ scrapers, enable_cache }) => {
525529
setaccords(rs)
526530
}
527531
}
532+
const { modal:googleChromeRequiredModal, showModal:showGoogleChromeRequiredModal } = useGoogleChromeRequiredModal()
528533

529534
// @ts-ignore
530535
if (!controls.controls.length) {
@@ -534,6 +539,7 @@ return <EmptyInputs />
534539
const showCache = enable_cache === true
535540
return (
536541
<>
542+
{googleChromeRequiredModal}
537543
{scrapers.length <= 1 || typeof window === 'undefined' ? null : (
538544
<ScraperSelector
539545
scrapers={scrapers}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { EuiModal } from '@elastic/eui/optimize/es/components/modal/modal';
2+
import { EuiModalBody } from '@elastic/eui/optimize/es/components/modal/modal_body';
3+
import { EuiModalHeader } from '@elastic/eui/optimize/es/components/modal/modal_header';
4+
import { EuiModalHeaderTitle } from '@elastic/eui/optimize/es/components/modal/modal_header_title';
5+
import { useState } from 'react';
6+
import ClickOutside from './ClickOutside/ClickOutside'
7+
import MarkdownComponent from './MarkdownComponent/MarkdownComponent'
8+
9+
export function useGoogleChromeRequiredModal() {
10+
const [isModalVisible, setIsModalVisible] = useState(false)
11+
12+
const toggleModal = () => {
13+
setIsModalVisible(!isModalVisible)
14+
}
15+
16+
const modal = isModalVisible && (
17+
<ClickOutside
18+
exceptions={['euiModal']}
19+
handleClickOutside={() => {
20+
toggleModal()
21+
}}>
22+
<EuiModal className="max-w-xl " onClose={toggleModal}>
23+
24+
<EuiModalHeader className="justify-center">
25+
<EuiModalHeaderTitle>⚠️ Google Chrome Required</EuiModalHeaderTitle>
26+
</EuiModalHeader>
27+
<EuiModalBody>
28+
<MarkdownComponent use_target_blank={true} content={`Google Chrome is not installed on your system. This tool requires Google Chrome to run.
29+
Please visit [https://www.google.com/chrome/](https://www.google.com/chrome/) to download and install Google Chrome.`}>
30+
31+
32+
</MarkdownComponent>
33+
34+
</EuiModalBody>
35+
36+
</EuiModal>
37+
</ClickOutside>
38+
)
39+
40+
return { showModal: () => setIsModalVisible(true), modal }
41+
}

0 commit comments

Comments
 (0)