feat: 绑定窗口标题到活动数据集元数据,添加销毁时取消订阅功能
This commit is contained in:
@@ -3,13 +3,28 @@ import { afterNavigate } from '$app/navigation';
|
|||||||
import { activeDatasetMeta } from '$lib/stores/dataset';
|
import { activeDatasetMeta } from '$lib/stores/dataset';
|
||||||
import { currentActivate } from '$lib/stores/navigate';
|
import { currentActivate } from '$lib/stores/navigate';
|
||||||
import { invoke } from '@tauri-apps/api/core';
|
import { invoke } from '@tauri-apps/api/core';
|
||||||
import { get } from 'svelte/store';
|
import { onDestroy } from 'svelte';
|
||||||
|
import { type Unsubscriber } from 'svelte/store';
|
||||||
import DatasetInfoForm from './DatasetInfoForm.svelte';
|
import DatasetInfoForm from './DatasetInfoForm.svelte';
|
||||||
|
|
||||||
|
let unsubscribeMeta: Unsubscriber | null = null;
|
||||||
|
|
||||||
|
function bindWindowTitleToMeta() {
|
||||||
|
unsubscribeMeta = activeDatasetMeta.subscribe((meta) => {
|
||||||
|
void invoke('set_window_title', { title: meta?.name ?? '' });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
bindWindowTitleToMeta();
|
||||||
|
|
||||||
afterNavigate(() => {
|
afterNavigate(() => {
|
||||||
currentActivate.set('dataset');
|
currentActivate.set('dataset');
|
||||||
|
});
|
||||||
|
|
||||||
invoke('set_window_title', { title: get(activeDatasetMeta)?.name });
|
onDestroy(() => {
|
||||||
|
if (unsubscribeMeta) {
|
||||||
|
unsubscribeMeta();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user