fix: don't redirect to /u/{handle}/ on private (multi-user) instances

This commit is contained in:
Davide Scaini
2026-04-10 15:06:45 +02:00
parent ceb8e28b74
commit e006175285
2 changed files with 13 additions and 2 deletions
+11
View File
@@ -22,6 +22,17 @@ export interface ShardHandle {
url: string; url: string;
} }
export function isInstancePrivate(): boolean {
try {
const dataDir = findDataDir();
if (!dataDir) return false;
const root = JSON.parse(readFileSync(join(dataDir, 'index.json'), 'utf-8'));
return root?.instance?.private === true;
} catch {
return false;
}
}
export function readShardHandles(): ShardHandle[] { export function readShardHandles(): ShardHandle[] {
try { try {
const dataDir = findDataDir(); const dataDir = findDataDir();
+2 -2
View File
@@ -1,11 +1,11 @@
--- ---
import Base from '../layouts/Base.astro'; import Base from '../layouts/Base.astro';
import ActivityFeed from '../components/ActivityFeed.svelte'; import ActivityFeed from '../components/ActivityFeed.svelte';
import { readShardHandles } from '../lib/manifest'; import { readShardHandles, isInstancePrivate } from '../lib/manifest';
const base = import.meta.env.BASE_URL; const base = import.meta.env.BASE_URL;
const shards = readShardHandles(); const shards = readShardHandles();
const isSingleUser = shards.length === 1; const isSingleUser = shards.length === 1 && !isInstancePrivate();
const singleHandle = isSingleUser ? shards[0].handle : null; const singleHandle = isSingleUser ? shards[0].handle : null;
--- ---
{isSingleUser ? ( {isSingleUser ? (