diff --git a/package-lock.json b/package-lock.json index 12c5734..a7ee68f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "foris", - "version": "2.0.0", + "version": "2.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d2ca0d5..1219e81 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "name": "foris", - "version": "2.0.0", + "version": "2.1.0", "description": "Set of components and utils for Foris and its plugins.", "author": "CZ.NIC, z.s.p.o.", "repository": { "type": "git", - "url": "https://gitlab.labs.nic.cz/turris/reforis/forisjs.git" + "url": "https://gitlab.labs.nic.cz/turris/reforis/foris-js.git" }, "keywords": [ "foris", diff --git a/src/bootstrap/Modal.js b/src/bootstrap/Modal.js index a212c1f..9e9dbe7 100644 --- a/src/bootstrap/Modal.js +++ b/src/bootstrap/Modal.js @@ -5,10 +5,11 @@ * See /LICENSE for more information. */ -import React, { useEffect, useRef } from "react"; +import React, { useRef } from "react"; import PropTypes from "prop-types"; import { Portal } from "utils/Portal"; +import { useClickOutside } from "utils/hooks"; Modal.propTypes = { /** Is modal shown value */ @@ -26,16 +27,7 @@ Modal.propTypes = { export function Modal({ shown, setShown, children }) { const dialogRef = useRef(); - useEffect(() => { - function handleClickOutsideDialog(e) { - if (!dialogRef.current.contains(e.target)) setShown(false); - } - - document.addEventListener("mousedown", handleClickOutsideDialog); - return () => { - document.removeEventListener("mousedown", handleClickOutsideDialog); - }; - }, [setShown]); + useClickOutside(dialogRef, () => setShown(false)); return ( diff --git a/src/bootstrap/RadioSet.js b/src/bootstrap/RadioSet.js index 63af8f0..41f85de 100644 --- a/src/bootstrap/RadioSet.js +++ b/src/bootstrap/RadioSet.js @@ -65,7 +65,7 @@ Radio.propTypes = { helpText: PropTypes.string, }; -function Radio({ +export function Radio({ label, id, helpText, ...props }) { return ( diff --git a/src/form/__tests__/hooks.test.js b/src/form/__tests__/hooks.test.js index 0063e27..52516ac 100644 --- a/src/form/__tests__/hooks.test.js +++ b/src/form/__tests__/hooks.test.js @@ -10,6 +10,7 @@ import React from 'react'; import { act, fireEvent, render, waitForElement } from 'customTestRender'; import mockAxios from 'jest-mock-axios'; import { ForisForm } from "../components/ForisForm"; +import { WebSockets } from "webSockets/WebSockets"; // It's possible to unittest each hooks via react-hooks-testing-library. @@ -30,7 +31,6 @@ describe('useForm hook.', () => { let mockValidator; let mockPrepData; let mockPrepDataToSubmit; - let mockWebSockets; let input; let form; const Child = jest.fn(props => ); @@ -41,7 +41,7 @@ describe('useForm hook.', () => { mockValidator = jest.fn(data => data.field === 'invalidValue' ? {field: 'Error'} : {}); const {getByTestId, container} = render( { + document.addEventListener("mousedown", handleClickOutside); + return () => { + document.removeEventListener("mousedown", handleClickOutside); + }; + }); +} diff --git a/src/webSockets/WebSockets.js b/src/webSockets/WebSockets.js index c01407f..6548334 100644 --- a/src/webSockets/WebSockets.js +++ b/src/webSockets/WebSockets.js @@ -25,18 +25,18 @@ export class WebSockets { console.error("WS: Error observed, you aren't logged probably."); window.location.replace(ForisURLs.login); } - console.log(`WS: Error: ${e}`); + console.error(`WS: Error: ${e}`); }; this.ws.onmessage = (e) => { - console.log(`WS: Received Message: ${e.data}`); + console.debug(`WS: Received Message: ${e.data}`); const data = JSON.parse(e.data); this.dispatch(data); }; this.ws.onopen = () => { - console.log("WS: Connection open."); + console.debug("WS: Connection open."); }; this.ws.onclose = () => { - console.log("WS: Connection closed."); + console.debug("WS: Connection closed."); }; // callbacks[module][action] @@ -111,7 +111,7 @@ export class WebSockets { chain = this.callbacks[json.module][json.action]; } catch (error) { if (error instanceof TypeError) { - console.log(`Callback for this message wasn't found:${error.data}`); + console.warn(`Callback for this message wasn't found:${error.data}`); } else throw error; }