<script lang="ts">
	import { onMount } from 'svelte';
	import { goto } from '$app/navigation';
	import { session, redirectToLogin } from '$lib/session';

	function homeForSession(): string | null {
		const me = $session.me;
		if (!me) return null;
		const admin = me.organizations.find((o) => {
			const r = String(o.role ?? '').toUpperCase();
			return r === 'OWNER' || r === 'ADMIN';
		});
		const target = admin ?? me.organizations[0];
		return target ? `/admin` : null;
	}

	onMount(() => {
		const unsub = session.subscribe((s) => {
			if (s.loading) return;
			if (!s.me) {
				redirectToLogin();
				return;
			}
			const dest = homeForSession();
			if (dest) void goto(dest, { replaceState: true });
		});
		return unsub;
	});
</script>

<div class="saas-status-panel">
	<div class="flex flex-col items-center gap-3 text-surface-600">
		<svg class="h-7 w-7 animate-spin text-primary-500" viewBox="0 0 24 24" fill="none">
			<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
			<path
				class="opacity-90"
				fill="currentColor"
				d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
			></path>
		</svg>
		<p class="text-sm">正在进入工作台…</p>
	</div>
</div>
