@@ -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 } ,
0 commit comments