Admin Panel (Next.js): - Dashboard with stats - Users list with relationships (watches/watched_by) - User detail pages - Deployments list and detail pages - Devices, Orders, Subscriptions pages - OTP-based admin authentication Backend Optimizations: - Fixed N+1 query problem in admin APIs - Added pagination support - Added .range() and count support to Supabase wrapper - Optimized batch queries with lookup maps Database: - Added migrations for schema evolution - New tables: push_tokens, notification_settings - Updated access model iOS Build Scripts: - build-ios.sh, clear-apple-cache.sh - EAS configuration updates 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
30 lines
569 B
JavaScript
30 lines
569 B
JavaScript
'use client';
|
|
|
|
import { useEffect } from 'react';
|
|
import { useRouter } from 'next/navigation';
|
|
|
|
export default function Home() {
|
|
const router = useRouter();
|
|
|
|
useEffect(() => {
|
|
const token = localStorage.getItem('adminToken');
|
|
if (token) {
|
|
router.replace('/dashboard');
|
|
} else {
|
|
router.replace('/login');
|
|
}
|
|
}, [router]);
|
|
|
|
return (
|
|
<div style={{
|
|
display: 'flex',
|
|
alignItems: 'center',
|
|
justifyContent: 'center',
|
|
minHeight: '100vh',
|
|
color: 'var(--text-muted)'
|
|
}}>
|
|
Loading...
|
|
</div>
|
|
);
|
|
}
|