mirror of
https://gitlab.nic.cz/turris/reforis/foris-js.git
synced 2025-06-15 13:36:35 +02:00
Compare commits
28 Commits
Author | SHA1 | Date | |
---|---|---|---|
4b94c470c3 | |||
e1b5a25ddd | |||
95af86c776 | |||
02b5583712 | |||
3c7a67783f | |||
4500e85a40 | |||
ce955095fd | |||
00b861531e | |||
fad5b97a2e | |||
aa639596d4 | |||
1ee41f4f14 | |||
bf8c2d28bf | |||
dbb840d51c | |||
ba772be869 | |||
70da1c3c00 | |||
8e68bbc91f | |||
c453a35763 | |||
57bebc92c7 | |||
388860d51e | |||
605f682356 | |||
03e071d5ee | |||
b8555247f2 | |||
1e6278abdf | |||
bb90800945 | |||
51ba380cf0 | |||
a8d8c872f9 | |||
25ddb5949c | |||
8d1d5b57fd |
5421
package-lock.json
generated
5421
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "foris",
|
||||
"version": "4.2.0",
|
||||
"version": "4.4.0",
|
||||
"description": "Set of components and utils for Foris and its plugins.",
|
||||
"author": "CZ.NIC, z.s.p.o.",
|
||||
"repository": {
|
||||
@ -41,7 +41,7 @@
|
||||
"babel-polyfill": "^6.26.0",
|
||||
"eslint": "^6.8.0",
|
||||
"eslint-config-reforis": "^1.0.0",
|
||||
"jest": "^24.9.0",
|
||||
"jest": "^25.1.0",
|
||||
"jest-mock-axios": "^3.2.0",
|
||||
"moment-timezone": "^0.5.27",
|
||||
"prop-types": "15.7.2",
|
||||
|
@ -9,7 +9,7 @@ import {
|
||||
useCallback, useEffect, useReducer, useState,
|
||||
} from "react";
|
||||
|
||||
import { ForisURLs } from "../forisUrls";
|
||||
import { ForisURLs } from "../utils/forisUrls";
|
||||
import {
|
||||
API_ACTIONS, API_METHODS, API_STATE, getErrorPayload, HEADERS, TIMEOUT,
|
||||
} from "./utils";
|
||||
|
@ -17,6 +17,7 @@ Modal.propTypes = {
|
||||
shown: PropTypes.bool.isRequired,
|
||||
/** Callback to manage modal visibility */
|
||||
setShown: PropTypes.func.isRequired,
|
||||
scrollable: PropTypes.bool,
|
||||
|
||||
/** Modal content use following: `ModalHeader`, `ModalBody`, `ModalFooter` */
|
||||
children: PropTypes.oneOfType([
|
||||
@ -25,7 +26,9 @@ Modal.propTypes = {
|
||||
]).isRequired,
|
||||
};
|
||||
|
||||
export function Modal({ shown, setShown, children }) {
|
||||
export function Modal({
|
||||
shown, setShown, scrollable, children,
|
||||
}) {
|
||||
const dialogRef = useRef();
|
||||
|
||||
useClickOutside(dialogRef, () => setShown(false));
|
||||
@ -33,7 +36,11 @@ export function Modal({ shown, setShown, children }) {
|
||||
return (
|
||||
<Portal containerId="modal-container">
|
||||
<div className={`modal fade ${shown ? "show" : ""}`} role="dialog">
|
||||
<div ref={dialogRef} className="modal-dialog modal-dialog-centered" role="document">
|
||||
<div
|
||||
ref={dialogRef}
|
||||
className={`modal-dialog modal-dialog-centered${scrollable ? " modal-dialog-scrollable" : ""}`}
|
||||
role="document"
|
||||
>
|
||||
<div className="modal-content">
|
||||
{children}
|
||||
</div>
|
||||
|
@ -17,7 +17,12 @@ RadioSet.propTypes = {
|
||||
/** Choices . */
|
||||
choices: PropTypes.arrayOf(PropTypes.shape({
|
||||
/** Choice lable . */
|
||||
label: PropTypes.string.isRequired,
|
||||
label: PropTypes.oneOfType([
|
||||
PropTypes.string,
|
||||
PropTypes.element,
|
||||
PropTypes.node,
|
||||
PropTypes.arrayOf(PropTypes.node),
|
||||
]).isRequired,
|
||||
/** Choice value . */
|
||||
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
|
||||
})).isRequired,
|
||||
@ -58,7 +63,12 @@ export function RadioSet({
|
||||
}
|
||||
|
||||
Radio.propTypes = {
|
||||
label: PropTypes.string.isRequired,
|
||||
label: PropTypes.oneOfType([
|
||||
PropTypes.string,
|
||||
PropTypes.element,
|
||||
PropTypes.node,
|
||||
PropTypes.arrayOf(PropTypes.node),
|
||||
]).isRequired,
|
||||
id: PropTypes.string.isRequired,
|
||||
helpText: PropTypes.string,
|
||||
};
|
||||
|
@ -10,7 +10,7 @@ import PropTypes from "prop-types";
|
||||
|
||||
import { useAPIPost } from "../api/hooks";
|
||||
import { API_STATE } from "../api/utils";
|
||||
import { ForisURLs } from "../forisUrls";
|
||||
import { ForisURLs } from "../utils/forisUrls";
|
||||
|
||||
import { Button } from "../bootstrap/Button";
|
||||
import {
|
||||
|
@ -9,7 +9,7 @@ import React, { useState } from "react";
|
||||
import QRCode from "qrcode.react";
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
import { ForisURLs } from "../../forisUrls";
|
||||
import { ForisURLs } from "../../utils/forisUrls";
|
||||
import { Button } from "../../bootstrap/Button";
|
||||
import {
|
||||
Modal, ModalBody, ModalFooter, ModalHeader,
|
||||
|
@ -12,7 +12,7 @@ import {
|
||||
validateIPv6Address,
|
||||
validateIPv6Prefix,
|
||||
validateMAC,
|
||||
} from "validations";
|
||||
} from "utils/validations";
|
||||
|
||||
describe("Validation functions", () => {
|
||||
it("validateIPv4Address valid", () => {
|
||||
|
@ -67,7 +67,7 @@ export { useClickOutside } from "./utils/hooks";
|
||||
export { toLocaleDateString } from "./utils/datetime";
|
||||
|
||||
// Foris URL
|
||||
export { ForisURLs, REFORIS_URL_PREFIX } from "./forisUrls";
|
||||
export { ForisURLs, REFORIS_URL_PREFIX } from "./utils/forisUrls";
|
||||
|
||||
// Validation
|
||||
export {
|
||||
@ -78,7 +78,7 @@ export {
|
||||
validateDUID,
|
||||
validateMAC,
|
||||
validateMultipleEmails,
|
||||
} from "./validations";
|
||||
} from "./utils/validations";
|
||||
|
||||
// Alert context
|
||||
export { AlertContextProvider, useAlert } from "./alertContext/AlertContext";
|
||||
|
@ -10,6 +10,8 @@ export const REFORIS_API_URL_PREFIX = `${REFORIS_URL_PREFIX}/api`;
|
||||
|
||||
export const ForisURLs = {
|
||||
login: `${REFORIS_URL_PREFIX}/login`,
|
||||
logout: `${REFORIS_URL_PREFIX}/logout`,
|
||||
|
||||
static: `${REFORIS_URL_PREFIX}/static/reforis`,
|
||||
wifi: `${REFORIS_URL_PREFIX}/network-settings/wifi`,
|
||||
|
@ -23,7 +23,7 @@ const REs = {
|
||||
IPv4: /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,
|
||||
IPv6: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,
|
||||
IPv6Prefix: /^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))$/,
|
||||
domain: /^([a-zA-Z0-9-]{1,63}\.?)*$/,
|
||||
domain: /^[A-Za-z0-9][A-Za-z0-9.-]{1,255}$/,
|
||||
DUID: /^([0-9a-fA-F]{2}){4}([0-9a-fA-F]{2})*$/,
|
||||
MAC: /^([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}$/,
|
||||
MultipleEmails: /^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+ *)( *, *[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+ *)*$/,
|
@ -7,7 +7,7 @@
|
||||
|
||||
/* eslint no-console: "off" */
|
||||
|
||||
import { ForisURLs } from "../forisUrls";
|
||||
import { ForisURLs } from "../utils/forisUrls";
|
||||
|
||||
const PROTOCOL = window.location.protocol === "http:" ? "ws" : "wss";
|
||||
|
||||
|
Reference in New Issue
Block a user