Skip to content

Commit 6d9f56e

Browse files
committed
refactor: ♻️ refactor display method into smaller, focused methods.
1 parent 31f0a1e commit 6d9f56e

File tree

1 file changed

+30
-4
lines changed

1 file changed

+30
-4
lines changed

src/ui/settings-tab.ts

+30-4
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,18 @@ export default class ReadwiseMirrorSettingTab extends PluginSettingTab {
161161
const { containerEl } = this;
162162
containerEl.empty();
163163

164-
// Add debug mode setting
164+
this.renderDebugMode(containerEl);
165+
this.renderAuthentication(containerEl);
166+
this.renderLibrarySettings(containerEl);
167+
this.renderSyncSettings(containerEl);
168+
this.renderAuthorSettings(containerEl);
169+
this.renderHighlightSettings(containerEl);
170+
this.renderFilenameSettings(containerEl);
171+
this.renderSyncLogging(containerEl);
172+
this.renderTemplates(containerEl);
173+
}
174+
175+
private renderDebugMode(containerEl: HTMLElement): void {
165176
new Setting(containerEl)
166177
.setName('Debug mode')
167178
.setDesc('Enable debug logging')
@@ -173,10 +184,9 @@ export default class ReadwiseMirrorSettingTab extends PluginSettingTab {
173184
await this.plugin.saveSettings();
174185
})
175186
);
187+
}
176188

177-
// Rest of settings...
178-
179-
// Authentication section inspired by the official Readwise plugin
189+
private renderAuthentication(containerEl: HTMLElement): void {
180190
new Setting(containerEl).setName('Authentication').setHeading();
181191

182192
let hasValidToken: boolean | null = null;
@@ -303,7 +313,9 @@ export default class ReadwiseMirrorSettingTab extends PluginSettingTab {
303313
.setValue(maskedToken)
304314
.setDisabled(true);
305315
});
316+
}
306317

318+
private renderLibrarySettings(containerEl: HTMLElement): void {
307319
new Setting(containerEl).setName('Library').setHeading();
308320

309321
new Setting(containerEl)
@@ -319,7 +331,9 @@ export default class ReadwiseMirrorSettingTab extends PluginSettingTab {
319331
await this.plugin.saveSettings();
320332
})
321333
);
334+
}
322335

336+
private renderSyncSettings(containerEl: HTMLElement): void {
323337
new Setting(containerEl).setName('Sync').setHeading();
324338

325339
new Setting(containerEl)
@@ -331,7 +345,9 @@ export default class ReadwiseMirrorSettingTab extends PluginSettingTab {
331345
await this.plugin.saveSettings();
332346
})
333347
);
348+
}
334349

350+
private renderAuthorSettings(containerEl: HTMLElement): void {
335351
new Setting(containerEl)
336352
.setName('Author names')
337353
.setHeading()
@@ -380,7 +396,9 @@ export default class ReadwiseMirrorSettingTab extends PluginSettingTab {
380396
await this.plugin.saveSettings();
381397
})
382398
);
399+
}
383400

401+
private renderHighlightSettings(containerEl: HTMLElement): void {
384402
new Setting(containerEl).setName('Highlight organization').setHeading();
385403

386404
new Setting(containerEl)
@@ -428,7 +446,9 @@ export default class ReadwiseMirrorSettingTab extends PluginSettingTab {
428446
await this.plugin.saveSettings();
429447
})
430448
);
449+
}
431450

451+
private renderFilenameSettings(containerEl: HTMLElement): void {
432452
new Setting(containerEl).setName('Filenames').setHeading();
433453

434454
new Setting(containerEl)
@@ -512,7 +532,9 @@ export default class ReadwiseMirrorSettingTab extends PluginSettingTab {
512532
})
513533
);
514534
}
535+
}
515536

537+
private renderSyncLogging(containerEl: HTMLElement): void {
516538
new Setting(containerEl).setName('Sync logging').setHeading();
517539

518540
new Setting(containerEl)
@@ -522,6 +544,8 @@ export default class ReadwiseMirrorSettingTab extends PluginSettingTab {
522544
toggle.setValue(this.plugin.settings.logFile).onChange(async (value) => {
523545
this.plugin.settings.logFile = value;
524546
await this.plugin.saveSettings();
547+
// Trigger re-render to show/hide log filename setting
548+
this.display();
525549
})
526550
);
527551

@@ -541,7 +565,9 @@ export default class ReadwiseMirrorSettingTab extends PluginSettingTab {
541565
})
542566
);
543567
}
568+
}
544569

570+
private renderTemplates(containerEl: HTMLElement): void {
545571
new Setting(containerEl)
546572
.setName('Templates')
547573
.setHeading()

0 commit comments

Comments
 (0)