From bf37348fd69e8d54f7dd6cd27c0537ce200b89ad Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Fri, 10 Nov 2023 11:33:41 +0800 Subject: [PATCH] Allow configuring the auto dismiss time for the extension --- .../src/images/extension/icon-19.png | Bin 0 -> 1738 bytes .../src/images/extension/icon-38.png | Bin 0 -> 3647 bytes .../src/images/extension/icon-70.png | Bin 0 -> 4770 bytes pkg/extension/src/manifest.json | 4 +-- pkg/extension/src/scripts/content/toast.js | 30 ++++++++++++++---- pkg/extension/src/scripts/options.js | 23 +++++++++++++- pkg/extension/src/views/options.html | 14 ++++++-- 7 files changed, 58 insertions(+), 13 deletions(-) create mode 100644 pkg/extension/src/images/extension/icon-19.png create mode 100644 pkg/extension/src/images/extension/icon-38.png create mode 100644 pkg/extension/src/images/extension/icon-70.png diff --git a/pkg/extension/src/images/extension/icon-19.png b/pkg/extension/src/images/extension/icon-19.png new file mode 100644 index 0000000000000000000000000000000000000000..9c5f2a8eece2421f61a4cb05bed1e2eab3e34f3f GIT binary patch literal 1738 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQmUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lxRtf@J#ddWzYh$IT% zsd^Q;1t47vHWgMtW^QUpqC!P(PF}H9g{=};g%ywu64qBz04piUwpEJo4N!2-FG^J~ z(=*UBP_pAvP*AWbN=dT{a&d!d2l8x{GD=Dctn~HE%ggo3jrH=2()A53EiLs8jP#9+ zbb%^#i!1X=5-W7`ij^UTz|3(;Elw`VEGWs$&r<-Io0ybeT4JlD1hNPYAnq*5Ohed| zR}A$Q(1ZFQ8GS=N1AVyJK&>_)Q7iwV%v7MwAoJ}EZNMr~#Gv-r=z}araty?$U{Rn~ z?YM08;lXCdB^mdS9hiu`JzX3_ECfqKYJH}L%G90vU8p~u`@7bi>YW~aOEs6}O#Ixe zncZT>ljE8#u`6dr^k@0!Cw5-D9#+3$hMBvWnDh_Fo0Hb|+s{&s-t6L#**9~g#H0X) zg8fHM|E+sp?YF;JRxfJq+q>20ZvM1={?m5<^KyxQ=^Pi=CaKNfe<4?p=oC6RphbS2 zt>Cd4Kh_(3d+)2b>kY>TFU2E@%e4F(FA7$A1vV@(Wbd22;X|Iw`}jof*^mDB#51V< znX4*rs?cJSx#BDZfusq~9?TIIYs~zzl1rHL@R9?39A9mp-F-Woy@o@LN&Omk@SN0L z&zc0>bS7P4T4-rjbG!e+UWq$D%hp7_YrFpVNz}A+iJLQKbbnVky{p@@j7=qh&F4&M zrGS4uYwYR;Yrm|WJ^9ve_w$d>#XH*U-N6mmX( zPw%R&dV6;4lUuuZRTo&Rsw;kJv`bzlBhFqiG_YyQ3M!QyqRC1gJvUYZ_UW2$z@ z&o%Xw)yyoNc`5DIb&hARnQqusRG6G1b@i*R#Z}vm`|JG|?cB;fJKIj-0>iW^6@>-m znpNz_C;Ckc3DQ{|wn|`A@U_Mo*Qw7Xe|4y>YzoY|9o459FQWRiU4U!(hZtW~Ay4Of zy?b0OKeQ)F-afJQq)R6oYv4`=dCu~Ay^?J+KMFr*5|!=>43BPmb?P{W%Y%a7syd6N zq&gldHhf}LbfU|p`t~t}Mzfbazk3v&yX==p(l#P34cqzQwT(YVo?XA_HX@#dQ&-Phz zs9E31 z+yk4RM|(})bzs%=r_Yz%yA$84{66IID_{9*VYO|qw=Y}q#pmdKI;Vst00jf8 AxBvhE literal 0 HcmV?d00001 diff --git a/pkg/extension/src/images/extension/icon-38.png b/pkg/extension/src/images/extension/icon-38.png new file mode 100644 index 0000000000000000000000000000000000000000..1041a3f2a0b8f25187fd4e26ecdb33357216152a GIT binary patch literal 3647 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 uXp%F9s5iFWqnm_%Di&t0Kf) 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 VmaNE>{kr_~qNT2{R&^Z{@jq2wZA1V7 literal 0 HcmV?d00001 diff --git a/pkg/extension/src/manifest.json b/pkg/extension/src/manifest.json index e9b8fceb2..958648b27 100644 --- a/pkg/extension/src/manifest.json +++ b/pkg/extension/src/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "process.env.EXTENSION_NAME", "short_name": "process.env.EXTENSION_NAME", - "version": "2.6.2", + "version": "2.8.0", "description": "Save PDFs and Articles to your Omnivore library", "author": "Omnivore Media, Inc", "default_locale": "en", @@ -95,4 +95,4 @@ "web_accessible_resources": [ "views/toast.html" ] -} \ No newline at end of file +} diff --git a/pkg/extension/src/scripts/content/toast.js b/pkg/extension/src/scripts/content/toast.js index 443bb6941..cf2031716 100644 --- a/pkg/extension/src/scripts/content/toast.js +++ b/pkg/extension/src/scripts/content/toast.js @@ -247,13 +247,29 @@ // Auto hide if everything went well and the user // has not initiated any interaction. - hideToastTimeout = setTimeout(function () { - console.log('hiding: ', currentToastEl, doNotHide) - if (!doNotHide) { - currentToastEl.remove() - currentToastEl = undefined - } - }, 2500) + const handleAutoDismiss = (autoDismissTime) => { + const dismissTime = + autoDismissTime && !Number.isNaN(Number(autoDismissTime)) + ? Number(autoDismissTime) + : 2500 + console.log('setting dismiss time: ', dismissTime) + hideToastTimeout = setTimeout(function () { + console.log('hiding toast timeout') + if (!doNotHide) { + currentToastEl.remove() + currentToastEl = undefined + } + }, dismissTime) + } + + getStorageItem('autoDismissTime') + .then((autoDismissTime) => { + handleAutoDismiss(autoDismissTime) + }) + .catch(() => { + handleAutoDismiss('2500') + }) + getStorageItem('disableAutoDismiss').then((disable) => { console.log('got disableAutoDismiss', disable) if (disable) { diff --git a/pkg/extension/src/scripts/options.js b/pkg/extension/src/scripts/options.js index e2a14efaa..6e8eb4856 100644 --- a/pkg/extension/src/scripts/options.js +++ b/pkg/extension/src/scripts/options.js @@ -49,6 +49,21 @@ function autoDismissChanged(event) { }) } +function saveAutoDismissTime() { + const value = document.getElementById('auto-dismiss-time').value + + if (value.length < 1 || Number.isNaN(Number(value))) { + alert('Invalid value') + return + } + + setStorage({ + autoDismissTime: value, + }).then(() => { + console.log('autoDismissTime updated', value) + }) +} + ;(() => { document .getElementById('save-api-key-btn') @@ -61,7 +76,6 @@ function autoDismissChanged(event) { .addEventListener('click', clearAPIKey) getStorageItem('disableAutoDismiss').then((value) => { - console.log('disableAutoDismiss updated', value) document.getElementById('disable-auto-dismiss').checked = value ? true : false @@ -70,4 +84,11 @@ function autoDismissChanged(event) { document .getElementById('disable-auto-dismiss') .addEventListener('change', autoDismissChanged) + + getStorageItem('autoDismissTime').then((value) => { + document.getElementById('auto-dismiss-time').value = value ?? '2500' + }) + document + .getElementById('auto-dismiss-time-btn') + .addEventListener('click', saveAutoDismissTime) })() diff --git a/pkg/extension/src/views/options.html b/pkg/extension/src/views/options.html index 538989d73..6d94b26c6 100644 --- a/pkg/extension/src/views/options.html +++ b/pkg/extension/src/views/options.html @@ -1,7 +1,7 @@ - API Key Storage + Omnivore Extension Settings @@ -35,8 +35,16 @@

Settings

- - +

+ + +

+ +

+ + + +