nextcloud / nextcloud/viewer

BUG: image editor has issues

Open
#3,071 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage bug
Dominant language
JavaScript
Stars
119
Forks
72
Avg merge
18h 42m
Merged PRs (30d)
24

Description

Describe the bug
when editing a picture, under draw (left), ellipse (bottom), outer line (bottom, 3rd from left), changing the color is not possible. Neither in Safari, nor Chrome - the color chooser pops up but just disappears on clicking, no matter where I click.

To Reproduce
Steps to reproduce the behavior:

  1. when editing a picture, go to option draw (on the left),
  2. choose to draw an ellipse (on the bottom),
  3. choose to change the size & color of the outer line (bottom, 3rd from left),
  4. then click the color field to change the color.
  5. Now in the popup, changing the color is not possible. Neither in Safari, nor Chrome - the color chooser pops up but just disappears on clicking, no matter where I click.

Expected behavior
I would expect the color to change as it correctly does when you choose the main color of the elipse.

Screenshots

https://github.com/user-attachments/assets/d9523ec2-78bb-4b3c-851a-5f989e2ead99

Desktop (please complete the following information):

  • OS: Mac OS
  • Chrome and Safari, latest both
  • Safari: 26.2 (21623.1.14.11.9) Chrome: Version 144.0.7559.133 (Official Build) (arm64)

Browser log

11:02:33.606 6458451?dir=/shared:1 Refused to apply style from 'https://cloud.nextcloud.com/apps/files_versions/css/sidebar-tab.css?v=110af700-1766' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
11:02:34.953 sentry.js?v=001eea59-1766:2 Setting current user
11:02:35.444 sentry.js?v=001eea59-1766:2 Initializing unified search plugin-filters from talk
11:02:35.485 sentry.js?v=001eea59-1766:2 [WARN] @nextcloud/vue: You need to fill either the text or the ariaLabel props in the button component. {uid: 'jos', app: '@nextcloud/vue', level: 2, text: undefined, ariaLabel: null, …}
(anonymous) @ sentry.js?v=001eea59-1766:2
log @ index.mjs:44
warn @ index.mjs:62
render @ NcButton-Dz2O6cSU.mjs:236
(anonymous) @ vue.runtime.esm.js:2700
a @ vue.runtime.esm.js:3891
(anonymous) @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
(anonymous) @ vue.runtime.esm.js:3908
(anonymous) @ vue.runtime.esm.js:8797
init @ vue.runtime.esm.js:4427
(anonymous) @ vue.runtime.esm.js:6591
m @ vue.runtime.esm.js:6545
f @ vue.runtime.esm.js:6664
m @ vue.runtime.esm.js:6568
f @ vue.runtime.esm.js:6664
m @ vue.runtime.esm.js:6568
f @ vue.runtime.esm.js:6664
m @ vue.runtime.esm.js:6568
(anonymous) @ vue.runtime.esm.js:7095
(anonymous) @ vue.runtime.esm.js:3781
a @ vue.runtime.esm.js:3891
(anonymous) @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
(anonymous) @ vue.runtime.esm.js:3908
(anonymous) @ vue.runtime.esm.js:8797
init @ vue.runtime.esm.js:4427
(anonymous) @ vue.runtime.esm.js:6591
m @ vue.runtime.esm.js:6545
(anonymous) @ vue.runtime.esm.js:7095
(anonymous) @ vue.runtime.esm.js:3781
a @ vue.runtime.esm.js:3891
(anonymous) @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
(anonymous) @ vue.runtime.esm.js:3908
(anonymous) @ vue.runtime.esm.js:8797
init @ vue.runtime.esm.js:4427
(anonymous) @ vue.runtime.esm.js:6591
m @ vue.runtime.esm.js:6545
(anonymous) @ vue.runtime.esm.js:7095
(anonymous) @ vue.runtime.esm.js:3781
a @ vue.runtime.esm.js:3891
(anonymous) @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
(anonymous) @ vue.runtime.esm.js:3908
(anonymous) @ vue.runtime.esm.js:8797
init @ vue.runtime.esm.js:4427
(anonymous) @ vue.runtime.esm.js:6591
m @ vue.runtime.esm.js:6545
f @ vue.runtime.esm.js:6664
m @ vue.runtime.esm.js:6568
f @ vue.runtime.esm.js:6664
m @ vue.runtime.esm.js:6568
f @ vue.runtime.esm.js:6664
m @ vue.runtime.esm.js:6568
f @ vue.runtime.esm.js:6664
m @ vue.runtime.esm.js:6568
(anonymous) @ vue.runtime.esm.js:7095
(anonymous) @ vue.runtime.esm.js:3781
a @ vue.runtime.esm.js:3891
(anonymous) @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
(anonymous) @ vue.runtime.esm.js:3908
(anonymous) @ vue.runtime.esm.js:8797
init @ vue.runtime.esm.js:4427
(anonymous) @ vue.runtime.esm.js:6591
m @ vue.runtime.esm.js:6545
(anonymous) @ vue.runtime.esm.js:7095
(anonymous) @ vue.runtime.esm.js:3781
a @ vue.runtime.esm.js:3891
(anonymous) @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
(anonymous) @ vue.runtime.esm.js:3908
(anonymous) @ vue.runtime.esm.js:8797
init @ vue.runtime.esm.js:4427
(anonymous) @ vue.runtime.esm.js:6591
m @ vue.runtime.esm.js:6545
(anonymous) @ vue.runtime.esm.js:7133
(anonymous) @ vue.runtime.esm.js:3781
a @ vue.runtime.esm.js:3891
(anonymous) @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
(anonymous) @ vue.runtime.esm.js:3908
(anonymous) @ vue.runtime.esm.js:8797
(anonymous) @ vue.runtime.esm.js:5724
Na @ vue.runtime.esm.js:5785
(anonymous) @ UserMenu.js:15
di @ init.js:86
(anonymous) @ main.js:22
11:02:35.495 sentry.js?v=001eea59-1766:2 [WARN] @nextcloud/vue: You need to fill either the text or the ariaLabel props in the button component. {uid: 'jos', app: '@nextcloud/vue', level: 2, text: undefined, ariaLabel: null, …}
(anonymous) @ sentry.js?v=001eea59-1766:2
log @ index.mjs:44
warn @ index.mjs:62
render @ NcButton-Dz2O6cSU.mjs:236
(anonymous) @ vue.runtime.esm.js:2700
a @ vue.runtime.esm.js:3891
(anonymous) @ vue.runtime.esm.js:3462
(anonymous) @ vue.runtime.esm.js:3538
ta @ vue.runtime.esm.js:4141
(anonymous) @ vue.runtime.esm.js:3159
hn @ vue.runtime.esm.js:3081
Promise.then
un @ vue.runtime.esm.js:3106
bn @ vue.runtime.esm.js:3171
(anonymous) @ vue.runtime.esm.js:2679
render @ NcActions-B7LKaVy0.mjs:831
(anonymous) @ vue.runtime.esm.js:2700
a @ vue.runtime.esm.js:3891
(anonymous) @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
(anonymous) @ vue.runtime.esm.js:3908
(anonymous) @ vue.runtime.esm.js:8797
init @ vue.runtime.esm.js:4427
(anonymous) @ vue.runtime.esm.js:6591
m @ vue.runtime.esm.js:6545
f @ vue.runtime.esm.js:6664
m @ vue.runtime.esm.js:6568
(anonymous) @ vue.runtime.esm.js:7133
(anonymous) @ vue.runtime.esm.js:3781
a @ vue.runtime.esm.js:3891
(anonymous) @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
(anonymous) @ vue.runtime.esm.js:3908
(anonymous) @ vue.runtime.esm.js:8797
(anonymous) @ MainMenu.js:27
di @ init.js:85
(anonymous) @ main.js:22
11:02:36.217 sentry.js?v=001eea59-1766:2 Notifications permissions granted
11:02:36.220 sentry.js?v=001eea59-1766:2 Has notify_push enabled, slowing polling to 15 minutes
11:02:36.220 sentry.js?v=001eea59-1766:2 Polling interval updated to 900000
11:02:36.220 sentry.js?v=001eea59-1766:2 Started background fetcher as session_keepalive is enabled
11:02:36.223 bootstrap:19 Uncaught (in promise) TypeError: n[e] is not a function
    at o (bootstrap:19:22)
o @ bootstrap:19
Promise.then
(anonymous) @ main.js:22
n @ sentry.js?v=001eea59-1766:2
11:02:36.443 sentry.js?v=001eea59-1766:2 Got notification data, restoring default polling interval.
11:02:39.025 sentry.js?v=001eea59-1766:2 [WARN] viewer: No files provided, skipping update {app: 'viewer', uid: 'jos', level: 2}
(anonymous) @ sentry.js?v=001eea59-1766:2
log @ index.mjs:44
warn @ index.mjs:62
files @ Viewer.vue:481
Zt @ vue.runtime.esm.js:3033
e.run @ vue.runtime.esm.js:3550
Ap @ vue.runtime.esm.js:4141
(anonymous) @ vue.runtime.esm.js:3159
bs @ vue.runtime.esm.js:3081
Promise.then
Ia @ vue.runtime.esm.js:3106
Uo @ vue.runtime.esm.js:3171
sr @ vue.runtime.esm.js:4227
e.update @ vue.runtime.esm.js:3529
e.notify @ vue.runtime.esm.js:732
set @ vue.runtime.esm.js:976
open @ Viewer.js:320
gk @ viewerAction.ts:80
execDefaultAction @ FileEntryMixin.ts:330
click @ FileEntry.vue:5
sn @ vue.runtime.esm.js:3033
n @ vue.runtime.esm.js:1832
push.85471.Mr.i._wrapper @ vue.runtime.esm.js:7500
n @ sentry.js?v=001eea59-1766:2
11:02:39.756 sentry.js?v=001eea59-1766:2 File info for /shared/Screenshot 2022-09-05 at 23.08.36.png fetched {filename: '/shared/Screenshot 2022-09-05 at 23.08.36.png', basename: 'Screenshot 2022-09-05 at 23.08.36.png', lastmod: 'Mon, 05 Sep 2022 21:08:40 GMT', size: 537079, type: 'file', …}
11:02:44.055 sentry.js?v=001eea59-1766:2 [WARN] viewer: No files provided, skipping update {app: 'viewer', uid: 'jos', level: 2}
(anonymous) @ sentry.js?v=001eea59-1766:2
log @ index.mjs:44
warn @ index.mjs:62
files @ Viewer.vue:481
Zt @ vue.runtime.esm.js:3033
e.run @ vue.runtime.esm.js:3550
Ap @ vue.runtime.esm.js:4141
(anonymous) @ vue.runtime.esm.js:3159
bs @ vue.runtime.esm.js:3081
Promise.then
Ia @ vue.runtime.esm.js:3106
Uo @ vue.runtime.esm.js:3171
e.$nextTick @ vue.runtime.esm.js:2679
render @ NcActions-CzpbMJoY.mjs:784
e._render @ vue.runtime.esm.js:2700
a @ vue.runtime.esm.js:3891
e.get @ vue.runtime.esm.js:3462
e.run @ vue.runtime.esm.js:3538
Ap @ vue.runtime.esm.js:4141
(anonymous) @ vue.runtime.esm.js:3159
bs @ vue.runtime.esm.js:3081
Promise.then
Ia @ vue.runtime.esm.js:3106
Uo @ vue.runtime.esm.js:3171
sr @ vue.runtime.esm.js:4227
e.update @ vue.runtime.esm.js:3529
e.notify @ vue.runtime.esm.js:732
set @ vue.runtime.esm.js:976
lu.set @ vue.runtime.esm.js:5376
resetSlideshow @ NcModal.mjs:507
next @ NcModal.mjs:430
Zt @ vue.runtime.esm.js:3033
u @ vue.runtime.esm.js:1832
Zt @ vue.runtime.esm.js:3033
Cp.e.$emit @ vue.runtime.esm.js:3732
click @ NcButton.mjs:272
Zt @ vue.runtime.esm.js:3033
u @ vue.runtime.esm.js:1832
o._wrapper @ vue.runtime.esm.js:7500
n @ sentry.js?v=001eea59-1766:2
11:02:45.798 sentry.js?v=001eea59-1766:2 [WARN] viewer: No files provided, skipping update {app: 'viewer', uid: 'jos', level: 2}
(anonymous) @ sentry.js?v=001eea59-1766:2
log @ index.mjs:44
warn @ index.mjs:62
files @ Viewer.vue:481
Zt @ vue.runtime.esm.js:3033
e.run @ vue.runtime.esm.js:3550
Ap @ vue.runtime.esm.js:4141
(anonymous) @ vue.runtime.esm.js:3159
bs @ vue.runtime.esm.js:3081
Promise.then
Ia @ vue.runtime.esm.js:3106
Uo @ vue.runtime.esm.js:3171
e.$nextTick @ vue.runtime.esm.js:2679
render @ NcActions-CzpbMJoY.mjs:784
e._render @ vue.runtime.esm.js:2700
a @ vue.runtime.esm.js:3891
e.get @ vue.runtime.esm.js:3462
e.run @ vue.runtime.esm.js:3538
Ap @ vue.runtime.esm.js:4141
(anonymous) @ vue.runtime.esm.js:3159
bs @ vue.runtime.esm.js:3081
Promise.then
Ia @ vue.runtime.esm.js:3106
Uo @ vue.runtime.esm.js:3171
sr @ vue.runtime.esm.js:4227
e.update @ vue.runtime.esm.js:3529
e.notify @ vue.runtime.esm.js:732
set @ vue.runtime.esm.js:976
lu.set @ vue.runtime.esm.js:5376
resetSlideshow @ NcModal.mjs:507
previous @ NcModal.mjs:422
Zt @ vue.runtime.esm.js:3033
u @ vue.runtime.esm.js:1832
Zt @ vue.runtime.esm.js:3033
Cp.e.$emit @ vue.runtime.esm.js:3732
click @ NcButton.mjs:272
Zt @ vue.runtime.esm.js:3033
u @ vue.runtime.esm.js:1832
o._wrapper @ vue.runtime.esm.js:7500
n @ sentry.js?v=001eea59-1766:2
11:02:47.505 sentry.js?v=001eea59-1766:2 [WARN] viewer: No files provided, skipping update {app: 'viewer', uid: 'jos', level: 2}
(anonymous) @ sentry.js?v=001eea59-1766:2
log @ index.mjs:44
warn @ index.mjs:62
files @ Viewer.vue:481
Zt @ vue.runtime.esm.js:3033
e.run @ vue.runtime.esm.js:3550
Ap @ vue.runtime.esm.js:4141
(anonymous) @ vue.runtime.esm.js:3159
bs @ vue.runtime.esm.js:3081
Promise.then
Ia @ vue.runtime.esm.js:3106
Uo @ vue.runtime.esm.js:3171
e.$nextTick @ vue.runtime.esm.js:2679
render @ NcActions-CzpbMJoY.mjs:784
e._render @ vue.runtime.esm.js:2700
a @ vue.runtime.esm.js:3891
e.get @ vue.runtime.esm.js:3462
e.run @ vue.runtime.esm.js:3538
Ap @ vue.runtime.esm.js:4141
(anonymous) @ vue.runtime.esm.js:3159
bs @ vue.runtime.esm.js:3081
Promise.then
Ia @ vue.runtime.esm.js:3106
Uo @ vue.runtime.esm.js:3171
sr @ vue.runtime.esm.js:4227
e.update @ vue.runtime.esm.js:3529
e.notify @ vue.runtime.esm.js:732
set @ vue.runtime.esm.js:976
lu.set @ vue.runtime.esm.js:5376
resetSlideshow @ NcModal.mjs:507
next @ NcModal.mjs:430
Zt @ vue.runtime.esm.js:3033
u @ vue.runtime.esm.js:1832
Zt @ vue.runtime.esm.js:3033
Cp.e.$emit @ vue.runtime.esm.js:3732
click @ NcButton.mjs:272
Zt @ vue.runtime.esm.js:3033
u @ vue.runtime.esm.js:1832
o._wrapper @ vue.runtime.esm.js:7500
n @ sentry.js?v=001eea59-1766:2
11:02:48.818 sentry.js?v=001eea59-1766:2 Refreshing notifications are notify_push event
11:02:49.335 sentry.js?v=001eea59-1766:2 Got notification data, restoring default polling interval.
11:02:51.636 sentry.js?v=001eea59-1766:2 [Violation] 'requestAnimationFrame' handler took 221ms
11:02:56.146 sentry.js?v=001eea59-1766:2 [Violation] 'requestAnimationFrame' handler took 273ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:07.359 [Violation] Forced reflow while executing JavaScript took <N>ms
11:03:06.234 ImageEditor.vue:189 Uncaught TypeError: Cannot read properties of undefined (reading 'contains')
    at ImageEditor.vue:189:1
    at NodeList.forEach (<anonymous>)
    at ImageEditor.vue:188:1
    at Array.forEach (<anonymous>)
    at MutationObserver.<anonymous> (ImageEditor.vue:186:1)
(anonymous) @ ImageEditor.vue:189
(anonymous) @ ImageEditor.vue:188
(anonymous) @ ImageEditor.vue:186
childList
lo @ runtime-dom.esm-bundler.js:632
ic @ runtime-dom.esm-bundler.js:779
Z @ runtime-core.esm-bundler.js:5811
$ @ runtime-core.esm-bundler.js:5722
W @ runtime-core.esm-bundler.js:5549
w @ runtime-core.esm-bundler.js:5391
S @ runtime-core.esm-bundler.js:6131
run @ reactivity.esm-bundler.js:237
runIfDirty @ reactivity.esm-bundler.js:275
Ue @ runtime-core.esm-bundler.js:199
Ko @ runtime-core.esm-bundler.js:408
Promise.then
Bo @ runtime-core.esm-bundler.js:322
ms @ runtime-core.esm-bundler.js:317
b.scheduler @ runtime-core.esm-bundler.js:6173
trigger @ reactivity.esm-bundler.js:265
ps @ reactivity.esm-bundler.js:323
notify @ reactivity.esm-bundler.js:614
trigger @ reactivity.esm-bundler.js:588
set value @ reactivity.esm-bundler.js:1520
r @ index.mjs:26
n @ sentry.js?v=001eea59-1766:2
setTimeout
(anonymous) @ sentry.js?v=001eea59-1766:2
r @ index.mjs:30
n @ sentry.js?v=001eea59-1766:2
setTimeout
(anonymous) @ sentry.js?v=001eea59-1766:2
r @ index.mjs:30
n @ sentry.js?v=001eea59-1766:2
setTimeout
(anonymous) @ sentry.js?v=001eea59-1766:2
r @ index.mjs:30
n @ sentry.js?v=001eea59-1766:2
setTimeout
(anonymous) @ sentry.js?v=001eea59-1766:2
r @ index.mjs:30
n @ sentry.js?v=001eea59-1766:2
setTimeout
(anonymous) @ sentry.js?v=001eea59-1766:2
r @ index.mjs:30
n @ sentry.js?v=001eea59-1766:2
setTimeout
(anonymous) @ sentry.js?v=001eea59-1766:2
r @ index.mjs:30
n @ sentry.js?v=001eea59-1766:2
setTimeout
(anonymous) @ sentry.js?v=001eea59-1766:2
r @ index.mjs:30
(anonymous) @ index.mjs:24
Ue @ runtime-core.esm-bundler.js:199
Ot @ runtime-core.esm-bundler.js:206
Fn.l.call @ runtime-core.esm-bundler.js:880
d @ reactivity.esm-bundler.js:1849
run @ reactivity.esm-bundler.js:237
D @ reactivity.esm-bundler.js:1908
Fn.l.scheduler @ runtime-core.esm-bundler.js:890
Pi @ reactivity.esm-bundler.js:1939
Fn @ runtime-core.esm-bundler.js:908
Mc @ runtime-core.esm-bundler.js:819
jp @ index.mjs:24
setup @ NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U.mjs:21
Ue @ runtime-core.esm-bundler.js:199
Al @ runtime-core.esm-bundler.js:8040
Ml @ runtime-core.esm-bundler.js:8002
lt @ runtime-core.esm-bundler.js:5939
Q @ runtime-core.esm-bundler.js:5905
w @ runtime-core.esm-bundler.js:5403
_t @ runtime-core.esm-bundler.js:5655
ot @ runtime-core.esm-bundler.js:5578
W @ runtime-core.esm-bundler.js:5533
w @ runtime-core.esm-bundler.js:5391
_t @ runtime-core.esm-bundler.js:5655
ot @ runtime-core.esm-bundler.js:5578
W @ runtime-core.esm-bundler.js:5533
w @ runtime-core.esm-bundler.js:5391
S @ runtime-core.esm-bundler.js:6051
run @ reactivity.esm-bundler.js:237
q @ runtime-core.esm-bundler.js:6179
lt @ runtime-core.esm-bundler.js:5953
Q @ runtime-core.esm-bundler.js:5905
w @ runtime-core.esm-bundler.js:5403
_t @ runtime-core.esm-bundler.js:5655
ot @ runtime-core.esm-bundler.js:5578
W @ runtime-core.esm-bundler.js:5533
w @ runtime-core.esm-bundler.js:5391
S @ runtime-core.esm-bundler.js:6051
run @ reactivity.esm-bundler.js:237
q @ runtime-core.esm-bundler.js:6179
lt @ runtime-core.esm-bundler.js:5953
Q @ runtime-core.esm-bundler.js:5905
w @ runtime-core.esm-bundler.js:5403
S @ runtime-core.esm-bundler.js:6131
run @ reactivity.esm-bundler.js:237
d.afterLeave @ runtime-core.esm-bundler.js:1395
g @ runtime-core.esm-bundler.js:6644
$.<computed> @ runtime-core.esm-bundler.js:1570
H @ runtime-dom.esm-bundler.js:183
lt @ runtime-dom.esm-bundler.js:214
r @ runtime-dom.esm-bundler.js:290
d @ runtime-dom.esm-bundler.js:304
(anonymous) @ runtime-dom.esm-bundler.js:313
n @ sentry.js?v=001eea59-1766:2
setTimeout
(anonymous) @ sentry.js?v=001eea59-1766:2
to @ runtime-dom.esm-bundler.js:311
(anonymous) @ runtime-dom.esm-bundler.js:230
n @ sentry.js?v=001eea59-1766:2
requestAnimationFrame
(anonymous) @ sentry.js?v=001eea59-1766:2
(anonymous) @ runtime-dom.esm-bundler.js:282
n @ sentry.js?v=001eea59-1766:2
requestAnimationFrame
(anonymous) @ sentry.js?v=001eea59-1766:2
Ys @ runtime-dom.esm-bundler.js:281
onLeave @ runtime-dom.esm-bundler.js:223
Ue @ runtime-core.esm-bundler.js:199
Ot @ runtime-core.esm-bundler.js:206
ot @ runtime-core.esm-bundler.js:1481
ht @ runtime-core.esm-bundler.js:1490
leave @ runtime-core.esm-bundler.js:1583
b @ runtime-core.esm-bundler.js:6649
Ts @ runtime-core.esm-bundler.js:6653
Xt @ runtime-core.esm-bundler.js:6611
Rr @ runtime-core.esm-bundler.js:6681
Xt @ runtime-core.esm-bundler.js:6576
w @ runtime-core.esm-bundler.js:5354
S @ runtime-core.esm-bundler.js:6131
run @ reactivity.esm-bundler.js:237
runIfDirty @ reactivity.esm-bundler.js:275
Ue @ runtime-core.esm-bundler.js:199
Ko @ runtime-core.esm-bundler.js:408
Promise.then
Bo @ runtime-core.esm-bundler.js:322
ms @ runtime-core.esm-bundler.js:317
b.scheduler @ runtime-core.esm-bundler.js:6173
trigger @ reactivity.esm-bundler.js:265
ps @ reactivity.esm-bundler.js:323
Ut @ reactivity.esm-bundler.js:741
set @ reactivity.esm-bundler.js:1059
set @ runtime-core.esm-bundler.js:3386
_fetch @ NotificationsApp.vue:366
await in _fetch
mounted @ NotificationsApp.vue:224
(anonymous) @ runtime-core.esm-bundler.js:3056
Ue @ runtime-core.esm-bundler.js:199
Ot @ runtime-core.esm-bundler.js:206
Pn.e.__weh.e.__weh @ runtime-core.esm-bundler.js:3036
Ho @ runtime-core.esm-bundler.js:385
Ko @ runtime-core.esm-bundler.js:427
Promise.then
Bo @ runtime-core.esm-bundler.js:322
ms @ runtime-core.esm-bundler.js:317
b.scheduler @ runtime-core.esm-bundler.js:6173
trigger @ reactivity.esm-bundler.js:265
ps @ reactivity.esm-bundler.js:323
notify @ reactivity.esm-bundler.js:614
trigger @ reactivity.esm-bundler.js:588
set value @ reactivity.esm-bundler.js:1520
(anonymous) @ runtime-core.esm-bundler.js:2727
Promise.then
setup @ runtime-core.esm-bundler.js:2726
Ue @ runtime-core.esm-bundler.js:199
Al @ runtime-core.esm-bundler.js:8040
Ml @ runtime-core.esm-bundler.js:8002
lt @ runtime-core.esm-bundler.js:5939
Q @ runtime-core.esm-bundler.js:5905
w @ runtime-core.esm-bundler.js:5403
Os @ runtime-core.esm-bundler.js:6718
mount @ runtime-core.esm-bundler.js:4179
e.mount @ runtime-dom.esm-bundler.js:1826
(anonymous) @ main.js:13

Additional context
Add any other context about the problem here.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in the viewer's image editor and reproduce the issue using the listed ellipse outer-line color controls in both Chrome and Safari. Compare that control with the ellipse's main color control, then verify that selecting a color persists instead of closing the chooser; add or run the relevant editor test if one exists.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.