Skip to content

Commit e029ab0

Browse files
committed
feat: scroll to setting
1 parent 2e742c2 commit e029ab0

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

src/utils/settings/index.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,11 @@ function createSetting(setting = defaultSetting) {
8888
const { key, type } = setting;
8989
events.emit(`create:${key}`);
9090
ret.addClass(getCSSName(type.name));
91+
events.on(`scroll:${key}`, () => {
92+
$('.target-setting').removeClass('target-setting');
93+
ret.addClass('target-setting')
94+
.get(0).scrollIntoView();
95+
});
9196
const container = $(`<div>`).addClass('flex-stretch');
9297
const name = translateText(setting.name);
9398
const el = $(type.element(setting.value, (...args) => {
@@ -232,13 +237,17 @@ export function register(data) {
232237
return {
233238
get key() { return key; },
234239
value: () => registeredSetting.value,
235-
// TODO: This ruins dynamic values such as arrays
236240
set: (val) => registeredSetting.update(val),
237241
on: (func) => {
238242
events.on(key, func);
239243
},
240244
get disabled() { return registeredSetting.disabled; },
241-
show: () => open(page, key),
245+
show(scroll) {
246+
open(page, key);
247+
if (scroll) {
248+
events.once('open', () => events.emit(`scroll:${key}`));
249+
}
250+
},
242251
refresh: () => {
243252
events.emit(`refresh:${key}`);
244253
},

src/utils/settings/settings.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@
4646
cursor: not-allowed;
4747
}
4848

49+
.underscript-dialog .target-setting {
50+
border: 2px solid yellow;
51+
}
52+
4953
/*
5054
.underscript-dialog .modal-content {
5155
background: #000 url(../images/backgrounds/2.png) -380px -135px;

0 commit comments

Comments
 (0)