diff options
author | Danny Qiu <dqiu55@gmail.com> | 2020-05-01 05:25:56 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-01 12:25:56 +0000 |
commit | b8b42b8084442cb7ee2ab77a457c46b8eedc21bc (patch) | |
tree | c0754ab4dcae246c57ac3c662953723bbfb32018 /src | |
parent | Refactor locking feature (#693) (diff) | |
download | ferdium-app-b8b42b8084442cb7ee2ab77a457c46b8eedc21bc.tar.gz ferdium-app-b8b42b8084442cb7ee2ab77a457c46b8eedc21bc.tar.zst ferdium-app-b8b42b8084442cb7ee2ab77a457c46b8eedc21bc.zip |
Add Google Tasks to Todo providers (#695)
Also enhance URL validation
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({ |