diff options
| author | Ben Woodward <benjamindwoodward@gmail.com> | 2020-06-07 10:02:44 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-07 10:02:44 -0700 |
| commit | ac25489c2b5ac02ed4ebd4501eb176466b8d2ea6 (patch) | |
| tree | 38d8e2f3518d24daf362b8ab065ab6a3a8b71b48 /src/components/Card.js | |
| parent | 72ace876ca9117297b85adf8f3dec80197fba9da (diff) | |
:bug: Escape special chars (#6)
Escapes special characters `";,:\`
Fixes #3
Diffstat (limited to 'src/components/Card.js')
| -rw-r--r-- | src/components/Card.js | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/components/Card.js b/src/components/Card.js index 2373b26..dfe804f 100644 --- a/src/components/Card.js +++ b/src/components/Card.js | |||
| @@ -7,8 +7,26 @@ const Card = () => { | |||
| 7 | const [password, setPassword] = useState(''); | 7 | const [password, setPassword] = useState(''); |
| 8 | const [qrvalue, setQrvalue] = useState(''); | 8 | const [qrvalue, setQrvalue] = useState(''); |
| 9 | 9 | ||
| 10 | const escape = (v) => { | ||
| 11 | const needsEscape = ['"', ';', ',', ':', '\\']; | ||
| 12 | |||
| 13 | let escaped = ''; | ||
| 14 | for (let i = 0; i < v.length; i++) { | ||
| 15 | let c = v[i]; | ||
| 16 | if (needsEscape.includes(c)) { | ||
| 17 | c = '\\' + c; | ||
| 18 | } | ||
| 19 | escaped += c; | ||
| 20 | } | ||
| 21 | |||
| 22 | return escaped; | ||
| 23 | } | ||
| 24 | |||
| 10 | useEffect(() => { | 25 | useEffect(() => { |
| 11 | setQrvalue(`WIFI:T:WPA;S:${ssid};P:${password};;`); | 26 | let _ssid = escape(ssid), |
| 27 | _password = escape(password); | ||
| 28 | |||
| 29 | setQrvalue(`WIFI:T:WPA;S:${_ssid};P:${_password};;`); | ||
| 12 | }, [ssid, password]); | 30 | }, [ssid, password]); |
| 13 | 31 | ||
| 14 | return ( | 32 | return ( |
