99import type PodNotes from "../../main" ;
1010import PodcastQueryGrid from "./PodcastQueryGrid.svelte" ;
1111import PlaylistManager from "./PlaylistManager.svelte" ;
12+ import { mount , unmount } from "svelte" ;
1213import {
1314 DownloadPathTemplateEngine ,
1415 FilePathTemplateEngine ,
@@ -23,8 +24,8 @@ import { clearFeedCache } from "src/services/FeedCacheService";
2324export class PodNotesSettingsTab extends PluginSettingTab {
2425 plugin : PodNotes ;
2526
26- private podcastQueryGrid ! : PodcastQueryGrid ;
27- private playlistManager ! : PlaylistManager ;
27+ private podcastQueryGrid : Record < string , unknown > | null = null ;
28+ private playlistManager : Record < string , unknown > | null = null ;
2829
2930 private settingsTab : PodNotesSettingsTab ;
3031
@@ -51,7 +52,7 @@ export class PodNotesSettingsTab extends PluginSettingTab {
5152 . setDesc ( "Search for podcasts by name or custom feed URL." ) ;
5253
5354 const queryGridContainer = settingsContainer . createDiv ( ) ;
54- this . podcastQueryGrid = new PodcastQueryGrid ( {
55+ this . podcastQueryGrid = mount ( PodcastQueryGrid , {
5556 target : queryGridContainer ,
5657 } ) ;
5758
@@ -61,7 +62,7 @@ export class PodNotesSettingsTab extends PluginSettingTab {
6162 . setDesc ( "Add playlists to gather podcast episodes." ) ;
6263
6364 const playlistManagerContainer = settingsContainer . createDiv ( ) ;
64- this . playlistManager = new PlaylistManager ( {
65+ this . playlistManager = mount ( PlaylistManager , {
6566 target : playlistManagerContainer ,
6667 } ) ;
6768
@@ -76,8 +77,15 @@ export class PodNotesSettingsTab extends PluginSettingTab {
7677 }
7778
7879 override hide ( ) : void {
79- this . podcastQueryGrid ?. $destroy ( ) ;
80- this . playlistManager ?. $destroy ( ) ;
80+ if ( this . podcastQueryGrid ) {
81+ void unmount ( this . podcastQueryGrid ) ;
82+ this . podcastQueryGrid = null ;
83+ }
84+
85+ if ( this . playlistManager ) {
86+ void unmount ( this . playlistManager ) ;
87+ this . playlistManager = null ;
88+ }
8189 }
8290
8391 private addDefaultPlaybackRateSetting ( container : HTMLElement ) : void {
0 commit comments