@@ -8,41 +8,43 @@ import { DefaultDocumentFormat } from 'src/view/actions/settings/components/defa
88import { CardsGap } from 'src/view/actions/settings/components/cards-gap' ;
99import { CardIndentationWidth } from 'src/view/actions/settings/components/card-indentation-width' ;
1010import { MaintainEditMode } from 'src/view/actions/settings/components/maintain-edit-mode' ;
11- import { Setting } from 'obsidian' ;
12- import { lang } from 'src/lang/lang' ;
1311import { InactiveCardOpacity } from 'src/view/actions/settings/components/inactive-card-opacity' ;
1412import { ActiveBranchColor } from 'src/view/actions/settings/components/active-branch-color' ;
1513import { AlwaysShowCardButtons } from 'src/view/actions/settings/components/always-show-card-buttons' ;
1614import { ControlsBarButtons } from 'src/view/actions/settings/components/controls-bar-buttons/controls-bar-buttons' ;
1715import { HeadingsFontSize } from 'src/view/actions/settings/components/headings-font-size' ;
1816import { LinkPaneType } from 'src/view/actions/settings/components/link-pane-type' ;
1917
20- export const renderSettings = ( element : HTMLElement ) => {
18+ export type SettingsTab = 'General' | 'Appearance' | 'Layout' ;
19+ export const renderSettings = ( element : HTMLElement , tab : SettingsTab ) => {
2120 const view = getView ( ) ;
2221 const settingsStore = view . plugin . settings ;
23- const render = ( ) => {
24- DefaultDocumentFormat ( element , settingsStore ) ;
25- LinkPaneType ( element , settingsStore ) ;
26- MaintainEditMode ( element , settingsStore ) ;
27- AlwaysShowCardButtons ( element , settingsStore ) ;
28- ControlsBarButtons ( element , view ) ;
29- new Setting ( element ) . setHeading ( ) . setName ( lang . settings_appearance ) ;
30- BackgroundColor ( element , settingsStore ) ;
31- ActiveBranchBackground ( element , settingsStore ) ;
32- ActiveBranchColor ( element , settingsStore ) ;
33- InactiveCardOpacity ( element , settingsStore ) ;
34- FontSize ( element , settingsStore ) ;
35- HeadingsFontSize ( element , settingsStore ) ;
36- new Setting ( element ) . setHeading ( ) . setName ( lang . settings_layout ) ;
37- CardWidth ( element , settingsStore ) ;
38- CardsGap ( element , settingsStore ) ;
39- CardIndentationWidth ( element , settingsStore ) ;
40- LimitCardHeight ( element , settingsStore ) ;
22+ const render = ( tab : SettingsTab ) => {
23+ element . empty ( ) ;
24+ if ( tab === 'General' ) {
25+ DefaultDocumentFormat ( element , settingsStore ) ;
26+ LinkPaneType ( element , settingsStore ) ;
27+ MaintainEditMode ( element , settingsStore ) ;
28+ AlwaysShowCardButtons ( element , settingsStore ) ;
29+ ControlsBarButtons ( element , view ) ;
30+ } else if ( tab === 'Appearance' ) {
31+ BackgroundColor ( element , settingsStore ) ;
32+ ActiveBranchBackground ( element , settingsStore ) ;
33+ ActiveBranchColor ( element , settingsStore ) ;
34+ InactiveCardOpacity ( element , settingsStore ) ;
35+ FontSize ( element , settingsStore ) ;
36+ HeadingsFontSize ( element , settingsStore ) ;
37+ } else if ( tab === 'Layout' ) {
38+ CardWidth ( element , settingsStore ) ;
39+ CardsGap ( element , settingsStore ) ;
40+ CardIndentationWidth ( element , settingsStore ) ;
41+ LimitCardHeight ( element , settingsStore ) ;
42+ }
4143 } ;
42- render ( ) ;
44+ render ( tab ) ;
4345 return {
44- update : ( ) => {
45- render ( ) ;
46+ update : ( tab : SettingsTab ) => {
47+ render ( tab ) ;
4648 } ,
4749 } ;
4850} ;
0 commit comments