diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/config.js | 1 | ||||
-rw-r--r-- | src/features/todos/components/TodosWebview.js | 16 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/config.js b/src/config.js index 2467ab706..b8af16419 100644 --- a/src/config.js +++ b/src/config.js | |||
@@ -60,6 +60,7 @@ export const TODO_APPS = { | |||
60 | 'https://app.nozbe.com/#login': 'Nozbe', | 60 | 'https://app.nozbe.com/#login': 'Nozbe', |
61 | 'https://www.rememberthemilk.com/login/': 'Remember The Milk', | 61 | 'https://www.rememberthemilk.com/login/': 'Remember The Milk', |
62 | 'https://desktop.any.do/': 'Any.do', | 62 | 'https://desktop.any.do/': 'Any.do', |
63 | 'https://tasks.google.com/embed/?origin=https%3A%2F%2Fcalendar.google.com&fullWidth=1': 'Google Tasks', | ||
63 | isUsingCustomTodoService: 'Other service', | 64 | isUsingCustomTodoService: 'Other service', |
64 | }; | 65 | }; |
65 | 66 | ||
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 |
16 | function validURL(str) { | 16 | function 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 | ||
26 | const messages = defineMessages({ | 28 | const messages = defineMessages({ |