Always fetching frequent tags. Not showing the most recent tags if there are no results. Handling quoted URL for tag names.

This commit is contained in:
Roland 2026-03-07 12:23:25 -07:00
parent 1913755db5
commit 3d74b4bcfc
No known key found for this signature in database
GPG key ID: 1BA620CE6C9A4680
2 changed files with 22 additions and 3 deletions

View file

@ -425,8 +425,23 @@ export function AddTagsButton({
if (open) {
setFilterText('');
setHasSelectedTag(false);
setFrequentTagsLabel('Recent Tags');
getRecentTags().then(names => setFrequentTags(names));
if (selectedTagNames && selectedTagNames.length === 1) {
setHasSelectedTag(true);
getCooccurringTags(selectedTagNames[0]).then(coTags => {
if (coTags && coTags.length > 0) {
setFrequentTags(coTags);
setFrequentTagsLabel('Frequent Tags');
} else {
setFrequentTags([]);
setFrequentTagsLabel('Recent Tags');
}
});
} else if (!selectedTagNames || selectedTagNames.length === 0) {
setFrequentTagsLabel('Recent Tags');
getRecentTags().then(names => setFrequentTags(names));
} else {
setFrequentTags([]);
}
const timeout = setTimeout(() => {
if (filterInputRef.current && window.innerWidth >= 700) {
filterInputRef.current.focus();
@ -456,12 +471,14 @@ export function AddTagsButton({
setFilterText('');
onAdd(name);
onChange(newTags, null);
if (!hasSelectedTag && newTags.length === 1) {
if (!hasSelectedTag) {
setHasSelectedTag(true);
getCooccurringTags(name).then(coTags => {
if (coTags && coTags.length > 0) {
setFrequentTags(coTags);
setFrequentTagsLabel('Frequent Tags');
} else {
setFrequentTags([]);
}
});
}

View file

@ -1,6 +1,7 @@
import asyncio
import pathlib
import re
import urllib.parse
from http import HTTPStatus
import vininfo.exceptions
@ -542,6 +543,7 @@ async def get_recent_tags_request(_: Request):
description='Get tags that frequently co-occur with the given tag',
)
async def get_cooccurring_tags_request(_: Request, tag_name: str):
tag_name = urllib.parse.unquote(tag_name)
tag_names = tags.get_cooccurring_tags(tag_name)
return json_response(dict(tag_names=tag_names))