aboutsummaryrefslogtreecommitdiffstats
path: root/src/features/todos/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/features/todos/components')
-rw-r--r--src/features/todos/components/TodosWebview.js16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/features/todos/components/TodosWebview.js b/src/features/todos/components/TodosWebview.js
index 2626186e9..663f1e48d 100644
--- a/src/features/todos/components/TodosWebview.js
+++ b/src/features/todos/components/TodosWebview.js
@@ -14,13 +14,15 @@ import UpgradeButton from '../../../components/ui/UpgradeButton';
14 14
15// NOTE: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url 15// NOTE: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url
16function validURL(str) { 16function validURL(str) {
17 const pattern = new RegExp('^(https?:\\/\\/)?' // protocol 17 let url;
18 + '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' // domain name 18
19 + '((\\d{1,3}\\.){3}\\d{1,3}))' // OR ip (v4) address 19 try {
20 + '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' // port and path 20 url = new URL(str);
21 + '(\\?[;&a-z\\d%_.~+=-]*)?' // query string 21 } catch (_) {
22 + '(\\#[-a-z\\d_]*)?$', 'i'); // fragment locator 22 return false;
23 return !!pattern.test(str); 23 }
24
25 return url.protocol === 'http:' || url.protocol === 'https:';
24} 26}
25 27
26const messages = defineMessages({ 28const messages = defineMessages({