Loading...
+
+ return (
+
+
+
Installed Mods
+
+
+
+
setSearch(e.target.value)}
+ placeholder="Filter by name or ID..."
+ className="w-full bg-neutral-800 border border-neutral-700 rounded px-3 py-2 text-sm mb-4"
+ />
+
+
+
+
+
+ | Name |
+ Source |
+ Size |
+ Status |
+ Modlists |
+ |
+
+
+
+ {filtered?.map((m, i) => (
+
+ |
+ {m.name || m.id}
+ {!m.name && m.source === 'workshop' && (
+ ({m.id})
+ )}
+ |
+
+
+ {m.source}
+
+ |
+ {fmtSize(m.size)} |
+
+
+ {m.in_use ? 'Used' : 'Orphaned'}
+
+ |
+
+ {m.modlists.length > 0 ? m.modlists.join(', ') : '-'}
+ |
+
+
+ |
+
+ ))}
+
+
+ {filtered?.length === 0 && (
+
No mods found.
+ )}
+
+
+ )
+}
diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts
index fd3efa0..d943463 100644
--- a/frontend/src/types/index.ts
+++ b/frontend/src/types/index.ts
@@ -50,3 +50,13 @@ export interface ServerPaths {
cfg_dir: string
profiles_dir: string
}
+
+export interface ModInfo {
+ id: string
+ name: string
+ source: 'workshop' | 'local'
+ path: string
+ size: number
+ in_use: boolean
+ modlists: string[]
+}