1+ import { Setting } from "obsidian" ;
2+ import { AbstractColumnHandler , ColumnHandlerResponse } from "components/modals/handlers/AbstractColumnHandler" ;
3+
4+ export class MediaDimensionsHandler extends AbstractColumnHandler {
5+ settingTitle : string = 'Choose dimensions of embeded media' ;
6+ handle ( columnHandlerResponse : ColumnHandlerResponse ) : ColumnHandlerResponse {
7+ const { column, containerEl, view } = columnHandlerResponse ;
8+ const dbSettings = view . plugin . settings ;
9+ const { config } = column
10+ if ( config . enable_media_view ) {
11+ // Check if media_settings is enabled
12+ new Setting ( containerEl )
13+ . addText ( text => {
14+ text . setPlaceholder ( "Height" )
15+ . setValue ( config . media_height . toString ( ) )
16+ . onChange ( async ( value : string ) : Promise < void > => {
17+ // Common modifications of value
18+ const parsedNumber = Number ( value ) ;
19+ const validatedNumber = isNaN ( parsedNumber ) ? config . media_height : parsedNumber ;
20+ config . media_height = validatedNumber ;
21+ // Persist changes in local config
22+ view . diskConfig . updateColumnConfig ( column . key , {
23+ media_height : validatedNumber
24+ } ) ;
25+ } )
26+ } ) . addText ( text => {
27+ text . setPlaceholder ( "Width" )
28+ . setValue ( config . media_width . toString ( ) )
29+ . onChange ( async ( value : string ) : Promise < void > => {
30+ // Common modifications of value
31+ const parsedNumber = Number ( value ) ;
32+ const validatedNumber = isNaN ( parsedNumber ) ? config . media_width : parsedNumber ;
33+ // Persist changes in local config
34+ view . diskConfig . updateColumnConfig ( column . key , {
35+ media_width : validatedNumber
36+ } ) ;
37+ } )
38+ } ) . addExtraButton ( ( cb ) => {
39+ cb . setIcon ( "reset" )
40+ . setTooltip ( "Restart default values" )
41+ . onClick ( async ( ) : Promise < void > => {
42+ // Persist change
43+ view . diskConfig . updateColumnConfig ( column . key , {
44+ media_width : dbSettings . local_settings . media_settings . width ,
45+ media_height : dbSettings . local_settings . media_settings . height
46+ } ) ;
47+ // Force refresh of settings
48+ //settingsManager.reset(settingHandlerResponse);
49+ } ) ;
50+ } ) ;
51+
52+ }
53+ return this . goNext ( columnHandlerResponse ) ;
54+ }
55+ }
0 commit comments