diff --git a/apps/OpenSign/.eslintrc.json b/apps/OpenSign/.eslintrc.json index afdfec072..a01fc2510 100644 --- a/apps/OpenSign/.eslintrc.json +++ b/apps/OpenSign/.eslintrc.json @@ -18,8 +18,7 @@ "plugins": ["react"], "rules": { "react/prop-types": 0, - "no-unused-vars": 1, - "no-undef": 0 + "no-unused-vars": 1 }, "ignorePatterns": ["**/build/**", "**/*.config.js"], "settings": { diff --git a/apps/OpenSign/package-lock.json b/apps/OpenSign/package-lock.json index f39c8b835..4832ae0ee 100644 --- a/apps/OpenSign/package-lock.json +++ b/apps/OpenSign/package-lock.json @@ -36,7 +36,7 @@ "react-router-dom": "^6.16.0", "react-scripts": "5.0.1", "react-select": "^5.7.7", - "reactour": "^1.19.1", + "reactour": "^1.19.2", "redux": "^4.2.1", "redux-thunk": "^2.4.2", "rjsf-conditionals": "github:prafullnavkar-nxg/rjsf-conditionals", @@ -17699,9 +17699,9 @@ } }, "node_modules/reactour": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/reactour/-/reactour-1.19.1.tgz", - "integrity": "sha512-Y6MYZeNsnPQhUxV9U3dw6CU8qWjqOTlTTs64VsEHRXhrePV4+FZEASbiukf3TPC5PmabaF308VkT5hv9SVJNng==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/reactour/-/reactour-1.19.2.tgz", + "integrity": "sha512-gbbUiLn8LbpbDW6k+QlVySkblvOICBd3AWMGRKPQghhmuMlOHNqgjW32JrT406lZHUvVlA8+umYD/2MmCHkNOQ==", "dependencies": { "@rooks/use-mutation-observer": "4.11.2", "classnames": "2.3.1", diff --git a/apps/OpenSign/package.json b/apps/OpenSign/package.json index 1306ba59b..db8651125 100644 --- a/apps/OpenSign/package.json +++ b/apps/OpenSign/package.json @@ -31,7 +31,7 @@ "react-router-dom": "^6.16.0", "react-scripts": "5.0.1", "react-select": "^5.7.7", - "reactour": "^1.19.1", + "reactour": "^1.19.2", "redux": "^4.2.1", "redux-thunk": "^2.4.2", "rjsf-conditionals": "github:prafullnavkar-nxg/rjsf-conditionals", diff --git a/apps/OpenSign/src/components/fields/FileUpload.js b/apps/OpenSign/src/components/fields/FileUpload.js index bd9c72eec..bfb47baa4 100644 --- a/apps/OpenSign/src/components/fields/FileUpload.js +++ b/apps/OpenSign/src/components/fields/FileUpload.js @@ -1,6 +1,7 @@ import React, { useState, useEffect } from "react"; import { SaveFileSize } from "../../constant/saveFileSize"; import Parse from "parse"; +import sanitizeFileName from "../../primitives/sanitizeFileName"; const FileUpload = (props) => { const [parseBaseUrl] = useState(localStorage.getItem("baseUrl")); @@ -70,10 +71,11 @@ const FileUpload = (props) => { Parse.serverURL = parseBaseUrl; Parse.initialize(parseAppId); const size = file.size; - // console.log("file ", file) + const fileName = file.name; + const name = sanitizeFileName(fileName); setfileload(true); const pdfFile = file; - const parseFile = new Parse.File(pdfFile.name, pdfFile); + const parseFile = new Parse.File(name, pdfFile); try { const response = await parseFile.save(); diff --git a/apps/OpenSign/src/primitives/sanitizeFileName.js b/apps/OpenSign/src/primitives/sanitizeFileName.js new file mode 100644 index 000000000..0d0be1abc --- /dev/null +++ b/apps/OpenSign/src/primitives/sanitizeFileName.js @@ -0,0 +1,5 @@ +function sanitizeFileName(fileName) { + // Remove spaces and invalid characters + return fileName.replace(/[^a-zA-Z0-9._-]/g, ""); +} +export default sanitizeFileName; diff --git a/apps/OpenSign/src/routes/ForgetPassword.js b/apps/OpenSign/src/routes/ForgetPassword.js index 356a35952..86cb9a6a8 100644 --- a/apps/OpenSign/src/routes/ForgetPassword.js +++ b/apps/OpenSign/src/routes/ForgetPassword.js @@ -1,120 +1,114 @@ -import React, { Component } from "react"; +import React, { useEffect, useState } from "react"; import { connect } from "react-redux"; import { fetchAppInfo, forgetPassword } from "../redux/actions"; import Title from "../components/Title"; import { NavLink } from "react-router-dom"; import login_img from "../assets/images/login_img.svg"; -class forgotPassword extends Component { - constructor(props) { - super(props); - this.state = { - email: "", - password: "", - hideNav: "" - }; - } - - handleChange = (event) => { +function ForgotPassword(props) { + const [state, setState] = useState({ + email: "", + password: "", + hideNav: "" + }); + const handleChange = (event) => { const { name, value } = event.target; - this.setState({ [name]: value }); + setState({ ...state, [name]: value }); }; - resize = () => { + const resize = () => { let currentHideNav = window.innerWidth <= 760; - if (currentHideNav !== this.state.hideNav) { - this.setState({ hideNav: currentHideNav }); + if (currentHideNav !== state.hideNav) { + setState({ ...state, hideNav: currentHideNav }); } }; - handleSubmit = (event) => { + const handleSubmit = (event) => { event.preventDefault(); - - localStorage.setItem("appLogo", this.props.appInfo.applogo); - localStorage.setItem("appName", this.props.appInfo.appname); - localStorage.setItem("defaultmenuid", this.props.appInfo.defaultmenuid); - localStorage.setItem("PageLanding", this.props.appInfo.LandingPageId); + localStorage.setItem("appLogo", props.appInfo.applogo); + localStorage.setItem("appName", props.appInfo.appname); + localStorage.setItem("defaultmenuid", props.appInfo.defaultmenuid); + localStorage.setItem("PageLanding", props.appInfo.LandingPageId); localStorage.setItem( "userSettings", - JSON.stringify(this.props.appInfo.settings) + JSON.stringify(props.appInfo.settings) ); - const { email } = this.state; - if (email) { - this.props.forgetPassword(email); + + if (state.email) { + props.forgetPassword(state.email); } }; - componentDidMount() { - this.props.fetchAppInfo(localStorage.getItem("domain")); - window.addEventListener("resize", this.resize.bind(this)); - this.resize(); - } + useEffect(() => { + props.fetchAppInfo(localStorage.getItem("domain")); + resize(); + window.addEventListener("resize", resize); + return () => window.removeEventListener("resize", resize); + // eslint-disable-next-line + }, []); - render() { - const { email } = this.state; - let image = this.props.appInfo.applogo; - return ( -