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