diff --git a/src/components/tags/TagSelector.tsx b/src/components/tags/TagSelector.tsx
index b6b58ca..3fd3771 100644
--- a/src/components/tags/TagSelector.tsx
+++ b/src/components/tags/TagSelector.tsx
@@ -87,17 +87,60 @@ export default function TagSelector({ mediaKey }: Props) {
return (
- {/* Assigned tags */}
+ {/* Assigned tags grouped by category */}
{assigned.tags.length > 0 && (
- {assigned.tags.map((tag) => (
- toggleTag(tag)}
- />
- ))}
+ {(() => {
+ const groups = new Map()
+ const ungrouped: Tag[] = []
+ for (const tag of assigned.tags) {
+ if (tag.categoryId) {
+ const arr = groups.get(tag.categoryId) ?? []
+ arr.push(tag)
+ groups.set(tag.categoryId, arr)
+ } else {
+ ungrouped.push(tag)
+ }
+ }
+ return (
+ <>
+ {Array.from(groups.entries()).map(([catId, tags]) => {
+ const cat = assignedCategoryMap[catId]
+ return (
+
+ {cat?.name}:
+ {tags.map((tag) => (
+
+ {tag.name}
+
+
+ ))}
+
+ )
+ })}
+ {ungrouped.map((tag) => (
+ toggleTag(tag)} />
+ ))}
+ >
+ )
+ })()}
)}