diff --git a/package-lock.json b/package-lock.json
index 2b1b8a9..aadb354 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -22,6 +22,7 @@
"react-dom": "^16.14.0",
"react-dropzone": "^11.3.2",
"react-ga": "^3.3.0",
+ "react-google-recaptcha-v3": "^1.10.0",
"react-notifications-component": "^3.1.0",
"react-scripts": "^4.0.3",
"reactstrap": "^8.9.0",
@@ -18676,6 +18677,18 @@
"react": "^15.6.2 || ^16.0 || ^17"
}
},
+ "node_modules/react-google-recaptcha-v3": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/react-google-recaptcha-v3/-/react-google-recaptcha-v3-1.10.0.tgz",
+ "integrity": "sha512-JBoqU107X8klQmS8tQSbQh1IMsT1fH3kVoArIqnia0rtn0rPNG9Ld+9rD/dHJMculIczSZpGvIJTXXwtsolMcg==",
+ "dependencies": {
+ "hoist-non-react-statics": "^3.3.2"
+ },
+ "peerDependencies": {
+ "react": "^17.0 || ^18.0",
+ "react-dom": "^17.0 || ^18.0"
+ }
+ },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -38638,6 +38651,14 @@
"resolved": "https://registry.npmjs.org/react-ga/-/react-ga-3.3.0.tgz",
"integrity": "sha512-o8RScHj6Lb8cwy3GMrVH6NJvL+y0zpJvKtc0+wmH7Bt23rszJmnqEQxRbyrqUzk9DTJIHoP42bfO5rswC9SWBQ=="
},
+ "react-google-recaptcha-v3": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/react-google-recaptcha-v3/-/react-google-recaptcha-v3-1.10.0.tgz",
+ "integrity": "sha512-JBoqU107X8klQmS8tQSbQh1IMsT1fH3kVoArIqnia0rtn0rPNG9Ld+9rD/dHJMculIczSZpGvIJTXXwtsolMcg==",
+ "requires": {
+ "hoist-non-react-statics": "^3.3.2"
+ }
+ },
"react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
diff --git a/package.json b/package.json
index 7487c87..39172fd 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
"react-dom": "^16.14.0",
"react-dropzone": "^11.3.2",
"react-ga": "^3.3.0",
+ "react-google-recaptcha-v3": "^1.10.0",
"react-notifications-component": "^3.1.0",
"react-scripts": "^4.0.3",
"reactstrap": "^8.9.0",
diff --git a/src/ChecksumResolver.js b/src/ChecksumResolver.js
index 58691cf..41c076b 100644
--- a/src/ChecksumResolver.js
+++ b/src/ChecksumResolver.js
@@ -1,313 +1,325 @@
-import React, { useState } from 'react';
-import { withStyles } from "@material-ui/core/styles";
-import Avatar from '@material-ui/core/Avatar';
-import Button from '@material-ui/core/Button';
-import CssBaseline from '@material-ui/core/CssBaseline';
-import TextField from '@material-ui/core/TextField';
+import React, { useState } from 'react'
+import { withStyles } from '@material-ui/core/styles'
+import Avatar from '@material-ui/core/Avatar'
+import Button from '@material-ui/core/Button'
+import CssBaseline from '@material-ui/core/CssBaseline'
+import TextField from '@material-ui/core/TextField'
-import Link from '@material-ui/core/Link';
-import Box from '@material-ui/core/Box';
-import LockOutlinedIcon from '@material-ui/icons/LockOutlined';
-import Typography from '@material-ui/core/Typography';
-import Container from '@material-ui/core/Container';
+import Link from '@material-ui/core/Link'
+import Box from '@material-ui/core/Box'
+import LockOutlinedIcon from '@material-ui/icons/LockOutlined'
+import Typography from '@material-ui/core/Typography'
+import Container from '@material-ui/core/Container'
import Dropzone from 'react-dropzone'
-import IconButton from '@material-ui/core/IconButton';
-import FileCopyOutlined from '@material-ui/icons/FileCopyOutlined';
-import PublishOutlined from '@material-ui/icons/PublishOutlined';
-
-// import { useFilePicker } from 'react-sage'
-// import { FilePicker } from 'react-file-picker'
+import IconButton from '@material-ui/core/IconButton'
+import FileCopyOutlined from '@material-ui/icons/FileCopyOutlined'
+import PublishOutlined from '@material-ui/icons/PublishOutlined'
import { FilePicker } from '../src/Components'
-
-import { CopyToClipboard } from 'react-copy-to-clipboard';
+import { CopyToClipboard } from 'react-copy-to-clipboard'
import ControlledAccordions from './ControlledAccordions'
-import OnlineConverter from "./OnlineConverter";
+import OnlineConverter from './OnlineConverter'
import 'react-notifications-component/dist/theme.css'
import ReactNotification from 'react-notifications-component'
-import { store } from 'react-notifications-component';
-// import 'animate.css/animate.compat.css'
+import { store } from 'react-notifications-component'
import AaxHashAlgorithm from './Utils/AaxHashAlgorithm'
+import {
+ GoogleReCaptchaProvider,
+ withGoogleReCaptcha,
+} from 'react-google-recaptcha-v3'
-const useStyles = theme => ({
- paper: {
- marginTop: theme.spacing(8),
- display: 'flex',
- flexDirection: 'column',
- alignItems: 'center',
- },
- avatar: {
- margin: theme.spacing(1),
- backgroundColor: theme.palette.secondary.main,
- },
- form: {
- width: '100%', // Fix IE 11 issue.
- marginTop: theme.spacing(1),
- },
+const useStyles = (theme) => ({
+ paper: {
+ marginTop: theme.spacing(8),
+ display: 'flex',
+ flexDirection: 'column',
+ alignItems: 'center',
+ },
+ avatar: {
+ margin: theme.spacing(1),
+ backgroundColor: theme.palette.secondary.main,
+ },
+ form: {
+ width: '100%', // Fix IE 11 issue.
+ marginTop: theme.spacing(1),
+ },
- //Accordeon
- heading: {
- fontSize: theme.typography.pxToRem(15),
- flexBasis: '33.33%',
- flexShrink: 0,
- },
- secondaryHeading: {
- fontSize: theme.typography.pxToRem(15),
- color: theme.palette.text.secondary,
- },
-});
+ //Accordeon
+ heading: {
+ fontSize: theme.typography.pxToRem(15),
+ flexBasis: '33.33%',
+ flexShrink: 0,
+ },
+ secondaryHeading: {
+ fontSize: theme.typography.pxToRem(15),
+ color: theme.palette.text.secondary,
+ },
+})
class ChecksumResolver extends React.Component {
- constructor(props) {
- super(props);
- this.state = {
- checksum: "",
- fileName: "input.aax"
- }
+ constructor(props) {
+ super(props)
+ this.state = {
+ checksum: '',
+ fileName: 'input.aax',
}
+ }
- DarkerDisabledTextField = withStyles({
- root: {
- marginRight: 8,
- "& .MuiInputBase-root.Mui-disabled": {
- color: "rgba(0, 0, 0, 0.6)"
- }
- }
- })(TextField);
+ DarkerDisabledTextField = withStyles({
+ root: {
+ marginRight: 8,
+ '& .MuiInputBase-root.Mui-disabled': {
+ color: 'rgba(0, 0, 0, 0.6)',
+ },
+ },
+ })(TextField)
- Copyright = (function () {
- return (
-