mirror of
https://gitlab.nic.cz/turris/reforis/foris-js.git
synced 2025-06-15 13:36:35 +02:00
Compare commits
16 Commits
v5.4.0
...
01cb1fceb3
Author | SHA1 | Date | |
---|---|---|---|
01cb1fceb3 | |||
3fc1388a9f | |||
2bbdda566c | |||
f12de3205f | |||
a971e8ce1a | |||
1297d8446c | |||
0791087d8f | |||
ce3d439005 | |||
d588291f1c | |||
bc044df7a8 | |||
b4c6a7fb70 | |||
d6563d2ffd | |||
af90d8d09d | |||
006d6ce8d9 | |||
cee08f48ce | |||
2d0ca58057 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -51,4 +51,3 @@ coverage.xml
|
|||||||
dist/
|
dist/
|
||||||
foris-*.tgz
|
foris-*.tgz
|
||||||
styleguide/
|
styleguide/
|
||||||
testUtils
|
|
||||||
|
2
Makefile
2
Makefile
@ -97,6 +97,8 @@ test-js-watch:
|
|||||||
.PHONY: test-js-update-snapshots
|
.PHONY: test-js-update-snapshots
|
||||||
test-js-update-snapshots:
|
test-js-update-snapshots:
|
||||||
npm test -- -u
|
npm test -- -u
|
||||||
|
test-js-watch:
|
||||||
|
npm test -- --watch
|
||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
|
116
package-lock.json
generated
116
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "foris",
|
"name": "foris",
|
||||||
"version": "5.4.0",
|
"version": "5.4.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "foris",
|
"name": "foris",
|
||||||
"version": "5.4.0",
|
"version": "5.4.1",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
@ -37,7 +37,7 @@
|
|||||||
"jest-mock-axios": "^3.2.0",
|
"jest-mock-axios": "^3.2.0",
|
||||||
"moment-timezone": "^0.5.34",
|
"moment-timezone": "^0.5.34",
|
||||||
"prettier": "2.0.5",
|
"prettier": "2.0.5",
|
||||||
"prop-types": "15.7.2",
|
"prop-types": "15.8.1",
|
||||||
"react": "16.9.0",
|
"react": "16.9.0",
|
||||||
"react-dom": "16.9.0",
|
"react-dom": "16.9.0",
|
||||||
"react-router-dom": "^5.1.2",
|
"react-router-dom": "^5.1.2",
|
||||||
@ -48,7 +48,7 @@
|
|||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"bootstrap": "4.4.1",
|
"bootstrap": "4.4.1",
|
||||||
"prop-types": "15.7.2",
|
"prop-types": "15.8.1",
|
||||||
"react": "16.9.0",
|
"react": "16.9.0",
|
||||||
"react-dom": "16.9.0",
|
"react-dom": "16.9.0",
|
||||||
"react-router-dom": "^5.1.2"
|
"react-router-dom": "^5.1.2"
|
||||||
@ -6901,15 +6901,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eventsource": {
|
"node_modules/eventsource": {
|
||||||
"version": "1.1.0",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz",
|
||||||
"integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==",
|
"integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
|
||||||
"original": "^1.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.12.0"
|
"node": ">=12.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/exec-sh": {
|
"node_modules/exec-sh": {
|
||||||
@ -11728,12 +11725,6 @@
|
|||||||
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
|
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/json3": {
|
|
||||||
"version": "3.3.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz",
|
|
||||||
"integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/json5": {
|
"node_modules/json5": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
|
||||||
@ -13318,15 +13309,6 @@
|
|||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/original": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
|
|
||||||
"integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"url-parse": "^1.4.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/os-tmpdir": {
|
"node_modules/os-tmpdir": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||||
@ -14025,13 +14007,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prop-types": {
|
"node_modules/prop-types": {
|
||||||
"version": "15.7.2",
|
"version": "15.8.1",
|
||||||
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
|
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
|
||||||
"integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
|
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"loose-envify": "^1.4.0",
|
"loose-envify": "^1.4.0",
|
||||||
"object-assign": "^4.1.1",
|
"object-assign": "^4.1.1",
|
||||||
"react-is": "^16.8.1"
|
"react-is": "^16.13.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/proxy-addr": {
|
"node_modules/proxy-addr": {
|
||||||
@ -16501,17 +16483,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/sockjs-client": {
|
"node_modules/sockjs-client": {
|
||||||
"version": "1.5.2",
|
"version": "1.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.1.tgz",
|
||||||
"integrity": "sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ==",
|
"integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"debug": "^3.2.6",
|
"debug": "^3.2.7",
|
||||||
"eventsource": "^1.0.7",
|
"eventsource": "^2.0.2",
|
||||||
"faye-websocket": "^0.11.3",
|
"faye-websocket": "^0.11.4",
|
||||||
"inherits": "^2.0.4",
|
"inherits": "^2.0.4",
|
||||||
"json3": "^3.3.3",
|
"url-parse": "^1.5.10"
|
||||||
"url-parse": "^1.5.3"
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://tidelift.com/funding/github/npm/sockjs-client"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/sockjs-client/node_modules/debug": {
|
"node_modules/sockjs-client/node_modules/debug": {
|
||||||
@ -18534,7 +18521,7 @@
|
|||||||
"node_modules/webpack-dev-server/node_modules/glob-parent": {
|
"node_modules/webpack-dev-server/node_modules/glob-parent": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
|
||||||
"integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
|
"integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"is-glob": "^3.1.0",
|
"is-glob": "^3.1.0",
|
||||||
@ -24455,13 +24442,10 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"eventsource": {
|
"eventsource": {
|
||||||
"version": "1.1.0",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz",
|
||||||
"integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==",
|
"integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==",
|
||||||
"dev": true,
|
"dev": true
|
||||||
"requires": {
|
|
||||||
"original": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"exec-sh": {
|
"exec-sh": {
|
||||||
"version": "0.3.6",
|
"version": "0.3.6",
|
||||||
@ -28141,12 +28125,6 @@
|
|||||||
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
|
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"json3": {
|
|
||||||
"version": "3.3.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz",
|
|
||||||
"integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"json5": {
|
"json5": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
|
||||||
@ -29378,15 +29356,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"original": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
|
|
||||||
"integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"url-parse": "^1.4.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"os-tmpdir": {
|
"os-tmpdir": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||||
@ -29906,13 +29875,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"prop-types": {
|
"prop-types": {
|
||||||
"version": "15.7.2",
|
"version": "15.8.1",
|
||||||
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
|
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
|
||||||
"integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
|
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"loose-envify": "^1.4.0",
|
"loose-envify": "^1.4.0",
|
||||||
"object-assign": "^4.1.1",
|
"object-assign": "^4.1.1",
|
||||||
"react-is": "^16.8.1"
|
"react-is": "^16.13.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"proxy-addr": {
|
"proxy-addr": {
|
||||||
@ -31827,17 +31796,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sockjs-client": {
|
"sockjs-client": {
|
||||||
"version": "1.5.2",
|
"version": "1.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.1.tgz",
|
||||||
"integrity": "sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ==",
|
"integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "^3.2.6",
|
"debug": "^3.2.7",
|
||||||
"eventsource": "^1.0.7",
|
"eventsource": "^2.0.2",
|
||||||
"faye-websocket": "^0.11.3",
|
"faye-websocket": "^0.11.4",
|
||||||
"inherits": "^2.0.4",
|
"inherits": "^2.0.4",
|
||||||
"json3": "^3.3.3",
|
"url-parse": "^1.5.10"
|
||||||
"url-parse": "^1.5.3"
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"debug": {
|
"debug": {
|
||||||
@ -33442,7 +33410,7 @@
|
|||||||
"glob-parent": {
|
"glob-parent": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
|
||||||
"integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
|
"integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-glob": "^3.1.0",
|
"is-glob": "^3.1.0",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "foris",
|
"name": "foris",
|
||||||
"version": "5.4.0",
|
"version": "5.4.1",
|
||||||
"description": "Set of components and utils for Foris and its plugins.",
|
"description": "Set of components and utils for Foris and its plugins.",
|
||||||
"author": "CZ.NIC, z.s.p.o.",
|
"author": "CZ.NIC, z.s.p.o.",
|
||||||
"repository": {
|
"repository": {
|
||||||
@ -23,7 +23,7 @@
|
|||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"bootstrap": "4.4.1",
|
"bootstrap": "4.4.1",
|
||||||
"prop-types": "15.7.2",
|
"prop-types": "15.8.1",
|
||||||
"react": "16.9.0",
|
"react": "16.9.0",
|
||||||
"react-dom": "16.9.0",
|
"react-dom": "16.9.0",
|
||||||
"react-router-dom": "^5.1.2"
|
"react-router-dom": "^5.1.2"
|
||||||
@ -49,7 +49,7 @@
|
|||||||
"jest-mock-axios": "^3.2.0",
|
"jest-mock-axios": "^3.2.0",
|
||||||
"moment-timezone": "^0.5.34",
|
"moment-timezone": "^0.5.34",
|
||||||
"prettier": "2.0.5",
|
"prettier": "2.0.5",
|
||||||
"prop-types": "15.7.2",
|
"prop-types": "15.8.1",
|
||||||
"react": "16.9.0",
|
"react": "16.9.0",
|
||||||
"react-dom": "16.9.0",
|
"react-dom": "16.9.0",
|
||||||
"react-router-dom": "^5.1.2",
|
"react-router-dom": "^5.1.2",
|
||||||
|
57
src/customizationContext/CustomizationContext.js
Normal file
57
src/customizationContext/CustomizationContext.js
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2019-2022 CZ.NIC z.s.p.o. (https://www.nic.cz/)
|
||||||
|
*
|
||||||
|
* This is free software, licensed under the GNU General Public License v3.
|
||||||
|
* See /LICENSE for more information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import React, { useContext, useEffect } from "react";
|
||||||
|
import PropTypes from "prop-types";
|
||||||
|
|
||||||
|
import { useAPIGet } from "../api/hooks";
|
||||||
|
import { ForisURLs } from "../utils/forisUrls";
|
||||||
|
|
||||||
|
import { Spinner } from "../bootstrap/Spinner";
|
||||||
|
|
||||||
|
CustomizationContextProvider.propTypes = {
|
||||||
|
children: PropTypes.oneOfType([
|
||||||
|
PropTypes.arrayOf(PropTypes.node),
|
||||||
|
PropTypes.node,
|
||||||
|
]),
|
||||||
|
};
|
||||||
|
|
||||||
|
function CustomizationContextProvider({ children }) {
|
||||||
|
const { CustomizationContext } = window;
|
||||||
|
const [getCustomizationResponse, getCustomization] = useAPIGet(
|
||||||
|
ForisURLs.about
|
||||||
|
);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
getCustomization();
|
||||||
|
}, [getCustomization]);
|
||||||
|
|
||||||
|
if (getCustomizationResponse.state !== "success") {
|
||||||
|
return <Spinner fullScreen />;
|
||||||
|
}
|
||||||
|
|
||||||
|
const deviceDetails = getCustomizationResponse.data || {};
|
||||||
|
|
||||||
|
const isCustomized = !!(
|
||||||
|
deviceDetails &&
|
||||||
|
deviceDetails.customization !== undefined &&
|
||||||
|
deviceDetails.customization === "shield"
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<CustomizationContext.Provider value={{ deviceDetails, isCustomized }}>
|
||||||
|
{children}
|
||||||
|
</CustomizationContext.Provider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function useCustomizationContext() {
|
||||||
|
const { CustomizationContext } = window;
|
||||||
|
return useContext(CustomizationContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
export { CustomizationContextProvider, useCustomizationContext };
|
3
src/customizationContext/CustomizationContext.md
Normal file
3
src/customizationContext/CustomizationContext.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
It provides customization context to the children. `CustomizationContext` allows
|
||||||
|
using `useCustomizationContext` in components to check if the reForis UI is
|
||||||
|
customized or not for specific devices.
|
@ -0,0 +1,57 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2019-2022 CZ.NIC z.s.p.o. (https://www.nic.cz/)
|
||||||
|
*
|
||||||
|
* This is free software, licensed under the GNU General Public License v3.
|
||||||
|
* See /LICENSE for more information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import React from "react";
|
||||||
|
|
||||||
|
import { render, wait } from "customTestRender";
|
||||||
|
import mockAxios from "jest-mock-axios";
|
||||||
|
|
||||||
|
import {
|
||||||
|
useCustomizationContext,
|
||||||
|
CustomizationContextProvider,
|
||||||
|
} from "../CustomizationContext";
|
||||||
|
|
||||||
|
const CUSTOM = "Description / component for customized reForis (Shield)";
|
||||||
|
const ORIGINAL = "Description / component for original reForis (other devices)";
|
||||||
|
|
||||||
|
function CustomizationTest() {
|
||||||
|
const isCustomized = useCustomizationContext();
|
||||||
|
|
||||||
|
return <p>{isCustomized ? CUSTOM : ORIGINAL}</p>;
|
||||||
|
}
|
||||||
|
|
||||||
|
describe("CustomizationContext", () => {
|
||||||
|
let componentContainer;
|
||||||
|
|
||||||
|
it("should render component without customization", async () => {
|
||||||
|
const { container, getByText } = render(
|
||||||
|
<CustomizationContextProvider>
|
||||||
|
<CustomizationTest />
|
||||||
|
</CustomizationContextProvider>
|
||||||
|
);
|
||||||
|
componentContainer = container;
|
||||||
|
|
||||||
|
mockAxios.mockResponse({ data: {} });
|
||||||
|
await wait(() => getByText(ORIGINAL));
|
||||||
|
|
||||||
|
expect(componentContainer).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should render customized component", async () => {
|
||||||
|
const { container, getByText } = render(
|
||||||
|
<CustomizationContextProvider>
|
||||||
|
<CustomizationTest />
|
||||||
|
</CustomizationContextProvider>
|
||||||
|
);
|
||||||
|
componentContainer = container;
|
||||||
|
|
||||||
|
mockAxios.mockResponse({ data: { customization: "shield" } });
|
||||||
|
await wait(() => getByText(CUSTOM));
|
||||||
|
|
||||||
|
expect(componentContainer).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,17 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`CustomizationContext should render component without customization 1`] = `
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
Description / component for original reForis (other devices)
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`CustomizationContext should render customized component 1`] = `
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
Description / component for customized reForis (Shield)
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
`;
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019-2021 CZ.NIC z.s.p.o. (http://www.nic.cz/)
|
* Copyright (C) 2019-2022 CZ.NIC z.s.p.o. (https://www.nic.cz/)
|
||||||
*
|
*
|
||||||
* This is free software, licensed under the GNU General Public License v3.
|
* This is free software, licensed under the GNU General Public License v3.
|
||||||
* See /LICENSE for more information.
|
* See /LICENSE for more information.
|
||||||
@ -91,3 +91,9 @@ export {
|
|||||||
|
|
||||||
// Alert context
|
// Alert context
|
||||||
export { AlertContextProvider, useAlert } from "./alertContext/AlertContext";
|
export { AlertContextProvider, useAlert } from "./alertContext/AlertContext";
|
||||||
|
|
||||||
|
// Customization context
|
||||||
|
export {
|
||||||
|
CustomizationContextProvider,
|
||||||
|
useCustomizationContext,
|
||||||
|
} from "./customizationContext/CustomizationContext";
|
||||||
|
@ -14,6 +14,7 @@ import { render } from "@testing-library/react";
|
|||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
|
|
||||||
import { AlertContextMock } from "./alertContextMock";
|
import { AlertContextMock } from "./alertContextMock";
|
||||||
|
import { CustomizationContextMock } from "./cutomizationContextMock";
|
||||||
|
|
||||||
Wrapper.propTypes = {
|
Wrapper.propTypes = {
|
||||||
children: PropTypes.oneOfType([
|
children: PropTypes.oneOfType([
|
||||||
@ -25,9 +26,11 @@ Wrapper.propTypes = {
|
|||||||
function Wrapper({ children }) {
|
function Wrapper({ children }) {
|
||||||
return (
|
return (
|
||||||
<AlertContextMock>
|
<AlertContextMock>
|
||||||
<StaticRouter>
|
<CustomizationContextMock>
|
||||||
<UIDReset>{children}</UIDReset>
|
<StaticRouter>
|
||||||
</StaticRouter>
|
<UIDReset>{children}</UIDReset>
|
||||||
|
</StaticRouter>
|
||||||
|
</CustomizationContextMock>
|
||||||
</AlertContextMock>
|
</AlertContextMock>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
22
src/testUtils/cutomizationContextMock.js
Normal file
22
src/testUtils/cutomizationContextMock.js
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2019-2022 CZ.NIC z.s.p.o. (https://www.nic.cz/)
|
||||||
|
*
|
||||||
|
* This is free software, licensed under the GNU General Public License v3.
|
||||||
|
* See /LICENSE for more information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import React from "react";
|
||||||
|
|
||||||
|
window.CustomizationContext = React.createContext();
|
||||||
|
|
||||||
|
const isCustomized = jest.fn();
|
||||||
|
|
||||||
|
function CustomizationContextMock({ children }) {
|
||||||
|
return (
|
||||||
|
<CustomizationContext.Provider value={isCustomized}>
|
||||||
|
{children}
|
||||||
|
</CustomizationContext.Provider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export { CustomizationContextMock };
|
@ -36,5 +36,6 @@ export const ForisURLs = {
|
|||||||
luci: "/cgi-bin/luci",
|
luci: "/cgi-bin/luci",
|
||||||
|
|
||||||
// API
|
// API
|
||||||
|
about: `${REFORIS_API_URL_PREFIX}/about`,
|
||||||
reboot: `${REFORIS_API_URL_PREFIX}/reboot`,
|
reboot: `${REFORIS_API_URL_PREFIX}/reboot`,
|
||||||
};
|
};
|
||||||
|
@ -34,6 +34,12 @@ module.exports = {
|
|||||||
exampleMode: "expand",
|
exampleMode: "expand",
|
||||||
usageMode: "expand",
|
usageMode: "expand",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "Customization Context",
|
||||||
|
components: ["src/customizationContext/CustomizationContext.js"],
|
||||||
|
exampleMode: "expand",
|
||||||
|
usageMode: "expand",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "Bootstrap components",
|
name: "Bootstrap components",
|
||||||
description: "Set of bootstrap components.",
|
description: "Set of bootstrap components.",
|
||||||
|
@ -8,15 +8,16 @@ msgstr ""
|
|||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2022-05-20 15:42+0200\n"
|
"POT-Creation-Date: 2022-05-20 15:42+0200\n"
|
||||||
"PO-Revision-Date: 2022-03-10 23:09+0000\n"
|
"PO-Revision-Date: 2022-05-25 13:20+0000\n"
|
||||||
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
|
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
|
||||||
|
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/turris/"
|
||||||
|
"foris-js/nb_NO/>\n"
|
||||||
"Language: nb_NO\n"
|
"Language: nb_NO\n"
|
||||||
"Language-Team: Norwegian Bokmål "
|
|
||||||
"<https://hosted.weblate.org/projects/turris/foris-js/nb_NO/>\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
"X-Generator: Weblate 4.13-dev\n"
|
||||||
"Generated-By: Babel 2.9.0\n"
|
"Generated-By: Babel 2.9.0\n"
|
||||||
|
|
||||||
#: src/api/utils.js:61
|
#: src/api/utils.js:61
|
||||||
@ -38,11 +39,11 @@ msgstr "Ukjent API-feil."
|
|||||||
|
|
||||||
#: src/bootstrap/CopyInput.js:55
|
#: src/bootstrap/CopyInput.js:55
|
||||||
msgid "Copied!"
|
msgid "Copied!"
|
||||||
msgstr ""
|
msgstr "Kopiert"
|
||||||
|
|
||||||
#: src/bootstrap/CopyInput.js:55
|
#: src/bootstrap/CopyInput.js:55
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr ""
|
msgstr "Kopier"
|
||||||
|
|
||||||
#: src/common/RebootButton.js:27
|
#: src/common/RebootButton.js:27
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -125,9 +126,8 @@ msgid "auto"
|
|||||||
msgstr "automatisk"
|
msgstr "automatisk"
|
||||||
|
|
||||||
#: src/common/WiFiSettings/WiFiForm.js:284
|
#: src/common/WiFiSettings/WiFiForm.js:284
|
||||||
#, fuzzy
|
|
||||||
msgid "Custom"
|
msgid "Custom"
|
||||||
msgstr "automatisk"
|
msgstr "Tilpasset"
|
||||||
|
|
||||||
#: src/common/WiFiSettings/WiFiGuestForm.js:42
|
#: src/common/WiFiSettings/WiFiGuestForm.js:42
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -395,4 +395,3 @@ msgstr "Inneholder ikke en kommainndelt liste med e-postadresser."
|
|||||||
#~ "\n"
|
#~ "\n"
|
||||||
#~ "gjeldende Wi-Fi-oppsett og tilbakestiller forvalgte verdier.\n"
|
#~ "gjeldende Wi-Fi-oppsett og tilbakestiller forvalgte verdier.\n"
|
||||||
#~ " "
|
#~ " "
|
||||||
|
|
||||||
|
@ -8,16 +8,17 @@ msgstr ""
|
|||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2022-05-20 15:42+0200\n"
|
"POT-Creation-Date: 2022-05-20 15:42+0200\n"
|
||||||
"PO-Revision-Date: 2022-03-12 06:58+0000\n"
|
"PO-Revision-Date: 2022-05-28 09:19+0000\n"
|
||||||
"Last-Translator: Алексей Леньшин <alenshin@gmail.com>\n"
|
"Last-Translator: Алексей Леньшин <alenshin@gmail.com>\n"
|
||||||
|
"Language-Team: Russian <https://hosted.weblate.org/projects/turris/foris-js/"
|
||||||
|
"ru/>\n"
|
||||||
"Language: ru\n"
|
"Language: ru\n"
|
||||||
"Language-Team: Russian <https://hosted.weblate.org/projects/turris/foris-"
|
|
||||||
"js/ru/>\n"
|
|
||||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
|
||||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||||
|
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||||
|
"X-Generator: Weblate 4.13-dev\n"
|
||||||
"Generated-By: Babel 2.9.0\n"
|
"Generated-By: Babel 2.9.0\n"
|
||||||
|
|
||||||
#: src/api/utils.js:61
|
#: src/api/utils.js:61
|
||||||
@ -38,11 +39,11 @@ msgstr "Неизвестная ошибка программного интер
|
|||||||
|
|
||||||
#: src/bootstrap/CopyInput.js:55
|
#: src/bootstrap/CopyInput.js:55
|
||||||
msgid "Copied!"
|
msgid "Copied!"
|
||||||
msgstr ""
|
msgstr "Скопировано!"
|
||||||
|
|
||||||
#: src/bootstrap/CopyInput.js:55
|
#: src/bootstrap/CopyInput.js:55
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr ""
|
msgstr "Копировать"
|
||||||
|
|
||||||
#: src/common/RebootButton.js:27
|
#: src/common/RebootButton.js:27
|
||||||
msgid "Reboot request failed."
|
msgid "Reboot request failed."
|
||||||
@ -105,9 +106,8 @@ msgid "Hide SSID"
|
|||||||
msgstr "Скрыть SSID"
|
msgstr "Скрыть SSID"
|
||||||
|
|
||||||
#: src/common/WiFiSettings/WiFiForm.js:186
|
#: src/common/WiFiSettings/WiFiForm.js:186
|
||||||
#, fuzzy
|
|
||||||
msgid "802.11n/ac/ax mode"
|
msgid "802.11n/ac/ax mode"
|
||||||
msgstr "Режим 802.11n/ac"
|
msgstr "Режим 802.11n/ac/ax"
|
||||||
|
|
||||||
#: src/common/WiFiSettings/WiFiForm.js:199
|
#: src/common/WiFiSettings/WiFiForm.js:199
|
||||||
msgid "Channel"
|
msgid "Channel"
|
||||||
@ -227,9 +227,8 @@ msgstr ""
|
|||||||
"некоторых устройствах."
|
"некоторых устройствах."
|
||||||
|
|
||||||
#: src/common/WiFiSettings/constants.js:34
|
#: src/common/WiFiSettings/constants.js:34
|
||||||
#, fuzzy
|
|
||||||
msgid "WPA2/3 pre-shared key, that is required to connect to the network."
|
msgid "WPA2/3 pre-shared key, that is required to connect to the network."
|
||||||
msgstr "Общий ключ WPA2, необходимый для подключения к сети."
|
msgstr "Общий ключ WPA2/3, необходимый для подключения к сети."
|
||||||
|
|
||||||
#: src/common/WiFiSettings/constants.js:37
|
#: src/common/WiFiSettings/constants.js:37
|
||||||
msgid "If set, network is not visible when scanning for available networks."
|
msgid "If set, network is not visible when scanning for available networks."
|
||||||
@ -250,17 +249,16 @@ msgstr ""
|
|||||||
"помещении сигнал проходит не так хорошо."
|
"помещении сигнал проходит не так хорошо."
|
||||||
|
|
||||||
#: src/common/WiFiSettings/constants.js:43
|
#: src/common/WiFiSettings/constants.js:43
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Change this to adjust 802.11n/ac/ax mode of operation. 802.11n with 40 "
|
"Change this to adjust 802.11n/ac/ax mode of operation. 802.11n with 40 "
|
||||||
"MHz wide channels can yield higher throughput but can cause more "
|
"MHz wide channels can yield higher throughput but can cause more "
|
||||||
"interference in the network. If you don't know what to choose, use the "
|
"interference in the network. If you don't know what to choose, use the "
|
||||||
"default option with 20 MHz wide channel."
|
"default option with 20 MHz wide channel."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Измените это, чтобы настроить режим работы 802.11n/ac. 802.11n с каналами"
|
"Измените это, чтобы настроить режим работы 802.11n/ac/ax. 802.11n с каналами "
|
||||||
" шириной 40 МГц обеспечивает более высокую пропускную способность, но "
|
"шириной 40 МГц обеспечивает более высокую пропускную способность, но может "
|
||||||
"может вызывать больше помех в сети. Если вы не знаете, что выбрать, "
|
"вызывать больше помех в сети. Если вы не знаете, что выбрать, используйте "
|
||||||
"используйте опцию по умолчанию с каналом шириной 20 МГц."
|
"опцию по умолчанию с каналом шириной 20 МГц."
|
||||||
|
|
||||||
#: src/common/WiFiSettings/constants.js:46
|
#: src/common/WiFiSettings/constants.js:46
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -374,4 +372,3 @@ msgstr "Не содержит списка электронных адресов
|
|||||||
#~ "конфигурации Wi-Fi и восстановлению "
|
#~ "конфигурации Wi-Fi и восстановлению "
|
||||||
#~ "значений по умолчанию.\n"
|
#~ "значений по умолчанию.\n"
|
||||||
#~ " "
|
#~ " "
|
||||||
|
|
||||||
|
@ -8,15 +8,16 @@ msgstr ""
|
|||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2022-05-20 15:42+0200\n"
|
"POT-Creation-Date: 2022-05-20 15:42+0200\n"
|
||||||
"PO-Revision-Date: 2022-03-17 17:58+0000\n"
|
"PO-Revision-Date: 2022-05-30 06:14+0000\n"
|
||||||
"Last-Translator: Atec <dr.atec@gmail.com>\n"
|
"Last-Translator: Atec <dr.atec@gmail.com>\n"
|
||||||
|
"Language-Team: Slovak <https://hosted.weblate.org/projects/turris/foris-js/"
|
||||||
|
"sk/>\n"
|
||||||
"Language: sk\n"
|
"Language: sk\n"
|
||||||
"Language-Team: Slovak <https://hosted.weblate.org/projects/turris/foris-"
|
|
||||||
"js/sk/>\n"
|
|
||||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||||
|
"X-Generator: Weblate 4.13-dev\n"
|
||||||
"Generated-By: Babel 2.9.0\n"
|
"Generated-By: Babel 2.9.0\n"
|
||||||
|
|
||||||
#: src/api/utils.js:61
|
#: src/api/utils.js:61
|
||||||
@ -37,11 +38,11 @@ msgstr "Nastala neznáma chyba v API."
|
|||||||
|
|
||||||
#: src/bootstrap/CopyInput.js:55
|
#: src/bootstrap/CopyInput.js:55
|
||||||
msgid "Copied!"
|
msgid "Copied!"
|
||||||
msgstr ""
|
msgstr "Skopírované!"
|
||||||
|
|
||||||
#: src/bootstrap/CopyInput.js:55
|
#: src/bootstrap/CopyInput.js:55
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr ""
|
msgstr "Kopírovať"
|
||||||
|
|
||||||
#: src/common/RebootButton.js:27
|
#: src/common/RebootButton.js:27
|
||||||
msgid "Reboot request failed."
|
msgid "Reboot request failed."
|
||||||
@ -104,9 +105,8 @@ msgid "Hide SSID"
|
|||||||
msgstr "Skryť SSID"
|
msgstr "Skryť SSID"
|
||||||
|
|
||||||
#: src/common/WiFiSettings/WiFiForm.js:186
|
#: src/common/WiFiSettings/WiFiForm.js:186
|
||||||
#, fuzzy
|
|
||||||
msgid "802.11n/ac/ax mode"
|
msgid "802.11n/ac/ax mode"
|
||||||
msgstr "802.11 n/ac mód"
|
msgstr "802.11 n/ac/ax mód"
|
||||||
|
|
||||||
#: src/common/WiFiSettings/WiFiForm.js:199
|
#: src/common/WiFiSettings/WiFiForm.js:199
|
||||||
msgid "Channel"
|
msgid "Channel"
|
||||||
@ -226,9 +226,8 @@ msgstr ""
|
|||||||
"problémy."
|
"problémy."
|
||||||
|
|
||||||
#: src/common/WiFiSettings/constants.js:34
|
#: src/common/WiFiSettings/constants.js:34
|
||||||
#, fuzzy
|
|
||||||
msgid "WPA2/3 pre-shared key, that is required to connect to the network."
|
msgid "WPA2/3 pre-shared key, that is required to connect to the network."
|
||||||
msgstr "WPA2 vopred zdieľaný kľúč, ktorý sa vyžaduje na pripojenie k sieti."
|
msgstr "WPA2/3 vopred zdieľaný kľúč, ktorý sa vyžaduje na pripojenie k sieti."
|
||||||
|
|
||||||
#: src/common/WiFiSettings/constants.js:37
|
#: src/common/WiFiSettings/constants.js:37
|
||||||
msgid "If set, network is not visible when scanning for available networks."
|
msgid "If set, network is not visible when scanning for available networks."
|
||||||
@ -249,17 +248,16 @@ msgstr ""
|
|||||||
"budov šíri horšie."
|
"budov šíri horšie."
|
||||||
|
|
||||||
#: src/common/WiFiSettings/constants.js:43
|
#: src/common/WiFiSettings/constants.js:43
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Change this to adjust 802.11n/ac/ax mode of operation. 802.11n with 40 "
|
"Change this to adjust 802.11n/ac/ax mode of operation. 802.11n with 40 "
|
||||||
"MHz wide channels can yield higher throughput but can cause more "
|
"MHz wide channels can yield higher throughput but can cause more "
|
||||||
"interference in the network. If you don't know what to choose, use the "
|
"interference in the network. If you don't know what to choose, use the "
|
||||||
"default option with 20 MHz wide channel."
|
"default option with 20 MHz wide channel."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Zmenou tejto položky sa nastavuje režim prevádzky 802.11n/ac. Štandard "
|
"Zmenou tejto položky sa nastavuje režim prevádzky 802.11n/ac/ax. Štandard "
|
||||||
"802.11n so šírkou kanálov 40 MHz môže priniesť vyššiu priepustnosť, ale "
|
"802.11n so šírkou kanálov 40 MHz môže priniesť vyššiu priepustnosť, ale môže "
|
||||||
"môže spôsobiť väčšie rušenie. Ak si nie ste istí, použite predvolenú "
|
"spôsobiť väčšie rušenie. Ak si nie ste istí, použite predvolenú možnosť so "
|
||||||
"možnosť so šírkou kanála 20 MHz."
|
"šírkou kanála 20 MHz."
|
||||||
|
|
||||||
#: src/common/WiFiSettings/constants.js:46
|
#: src/common/WiFiSettings/constants.js:46
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -370,4 +368,3 @@ msgstr "Neobsahuje zoznam e-mailov oddelených čiarkami."
|
|||||||
#~ "že sa tým odstráni aktuálna konfigurácia"
|
#~ "že sa tým odstráni aktuálna konfigurácia"
|
||||||
#~ " a obnovia sa východiskové hodnoty.\n"
|
#~ " a obnovia sa východiskové hodnoty.\n"
|
||||||
#~ " "
|
#~ " "
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user