diff --git a/manifest.json b/manifest.json index fcffcb3..0adf486 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-book-tracker", "name": "Book Tracker", - "version": "1.6.1", + "version": "1.7.0", "minAppVersion": "0.15.0", "description": "Simplifies tracking your reading progress and managing your book collection in Obsidian.", "author": "FiFiTiDo", diff --git a/package.json b/package.json index fa67faf..588c3f7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-book-tracker", - "version": "1.6.1", + "version": "1.7.0", "description": "Simplifies tracking your reading progress and managing your book collection in Obsidian.", "main": "main.js", "scripts": { diff --git a/src/ui/components/setting/FileSuggestItem.svelte b/src/ui/components/setting/FileSuggestItem.svelte index 32b04cd..c2a1d05 100644 --- a/src/ui/components/setting/FileSuggestItem.svelte +++ b/src/ui/components/setting/FileSuggestItem.svelte @@ -13,6 +13,6 @@ {#snippet control()} - + {/snippet} diff --git a/src/ui/components/setting/FolderSuggestItem.svelte b/src/ui/components/setting/FolderSuggestItem.svelte index 767cf36..805ef36 100644 --- a/src/ui/components/setting/FolderSuggestItem.svelte +++ b/src/ui/components/setting/FolderSuggestItem.svelte @@ -13,6 +13,6 @@ {#snippet control()} - + {/snippet} diff --git a/src/ui/components/setting/PropertySuggestItem.svelte b/src/ui/components/setting/PropertySuggestItem.svelte index f5a09a8..4971356 100644 --- a/src/ui/components/setting/PropertySuggestItem.svelte +++ b/src/ui/components/setting/PropertySuggestItem.svelte @@ -20,6 +20,6 @@ {#snippet control()} - + {/snippet} diff --git a/src/ui/components/suggesters/FileSuggest.svelte b/src/ui/components/suggesters/FileSuggest.svelte index 12785e0..d0fdabd 100644 --- a/src/ui/components/suggesters/FileSuggest.svelte +++ b/src/ui/components/suggesters/FileSuggest.svelte @@ -3,42 +3,39 @@ import TextInputSuggest, { type Item } from "./TextInputSuggest.svelte"; import type { StringKeys } from "@utils/types"; import { getAppContext } from "@ui/stores/app"; + import { isInAnyFolder } from "@utils/fs"; type Props = { id: string; - asString?: boolean; property?: StringKeys; - inFolder?: string; - value?: TFile | string; + folderFilter?: string[]; + value?: string; disabled?: boolean; - onSelected?: (fileOrPath: TFile | string) => void; + onSelected?: (propertyValue: string) => void; }; let { id, - asString, property = "path", - inFolder, + folderFilter, value = $bindable(), disabled, onSelected, }: Props = $props(); const app = getAppContext(); - let items: Item[] = $state([]); + let items: Item[] = $state([]); function handleChange(query: string) { items = app.vault .getMarkdownFiles() .filter( (f) => - (inFolder === undefined || f.path.startsWith(inFolder)) && + (folderFilter === undefined || + isInAnyFolder(f, folderFilter)) && f[property].toLowerCase().includes(query.toLowerCase()), ) - .map((f) => ({ - text: f[property], - value: asString ? f[property] : f, - })); + .map((f) => f[property]); } diff --git a/src/ui/components/suggesters/FolderSuggest.svelte b/src/ui/components/suggesters/FolderSuggest.svelte index 0138c3a..474db4a 100644 --- a/src/ui/components/suggesters/FolderSuggest.svelte +++ b/src/ui/components/suggesters/FolderSuggest.svelte @@ -3,22 +3,21 @@ import TextInputSuggest, { type Item } from "./TextInputSuggest.svelte"; import type { StringKeys } from "@utils/types"; import { getAppContext } from "@ui/stores/app"; + import { isInAnyFolder } from "@utils/fs"; type Props = { id: string; - asString?: boolean; property?: StringKeys; - inFolder?: string; - value?: TFolder | string; + folderFilter?: string[]; + value?: string; disabled?: boolean; - onSelected?: (folderOrPath: TFolder | string) => void; + onSelected?: (propertyValue: string) => void; }; let { id, - asString, property = "path", - inFolder, + folderFilter, value = $bindable(), disabled, onSelected, @@ -32,13 +31,11 @@ .getAllFolders() .filter( (f) => - (inFolder === undefined || f.path.startsWith(inFolder)) && + (folderFilter === undefined || + isInAnyFolder(f, folderFilter)) && f[property].toLowerCase().includes(query.toLowerCase()), ) - .map((f) => ({ - text: f[property], - value: asString ? f[property] : f, - })); + .map((f) => f[property]); } diff --git a/src/ui/components/suggesters/PropertySuggest.svelte b/src/ui/components/suggesters/PropertySuggest.svelte index f41b808..3ce023e 100644 --- a/src/ui/components/suggesters/PropertySuggest.svelte +++ b/src/ui/components/suggesters/PropertySuggest.svelte @@ -12,16 +12,14 @@ type Props = { id: string; - asString?: boolean; - value?: Property | string; + value?: string; accepts?: string[]; disabled?: boolean; - onSelected?: (propertyOrName: Property | string) => void; + onSelected?: (propertyName: string) => void; }; let { id, - asString, value = $bindable(), accepts, disabled, @@ -29,7 +27,7 @@ }: Props = $props(); const app = getAppContext(); - let items: Item[] = $state([]); + let items: Item[] = $state([]); async function handleChange(query: string) { const typesContent = await app.vault.adapter.read( @@ -45,10 +43,7 @@ return name.toLowerCase().includes(query.toLowerCase()); }) - .map(([name, type]) => ({ - text: name, - value: asString ? name : { name, type }, - })); + .map(([name, _]) => name); } diff --git a/src/ui/components/suggesters/TextInputSuggest.svelte b/src/ui/components/suggesters/TextInputSuggest.svelte index fd1e430..0f9ed10 100644 --- a/src/ui/components/suggesters/TextInputSuggest.svelte +++ b/src/ui/components/suggesters/TextInputSuggest.svelte @@ -1,8 +1,10 @@