diff --git a/src/app/(dashboard)/dashboard/matches/schedule/page.tsx b/src/app/(dashboard)/dashboard/matches/schedule/page.tsx index 95b10b6..8362ae4 100644 --- a/src/app/(dashboard)/dashboard/matches/schedule/page.tsx +++ b/src/app/(dashboard)/dashboard/matches/schedule/page.tsx @@ -225,18 +225,14 @@ export default function ScheduleMatchPage() { ))} -
- -
- - setRecurrenceEndDate(e.target.value)} - className="ui-input w-full pl-10 h-12 [color-scheme:dark] text-sm bg-surface" - min={date ? date.split('T')[0] : undefined} - /> -
+
+

Deixe em branco para repetir indefinidamente (será criado à medida que as peladas forem finalizadas).

diff --git a/src/app/error.tsx b/src/app/error.tsx new file mode 100644 index 0000000..b03d038 --- /dev/null +++ b/src/app/error.tsx @@ -0,0 +1,85 @@ +'use client' + +import { useEffect } from 'react' +import { AlertOctagon, RefreshCcw, Home } from 'lucide-react' +import { motion } from 'framer-motion' + +export default function Error({ + error, + reset, +}: { + error: Error & { digest?: string } + reset: () => void +}) { + useEffect(() => { + console.error(error) + }, [error]) + + const primaryColor = '#ef4444' + + return ( +
+ {/* Background Effects */} +
+ + + {/* Icon Section */} +
+
+ +
+
+ +
+

+ Erro no Sistema +

+
+

+ Ocorreu um erro técnico inesperado. Nossa equipe de arbitragem (VAR) já foi notificada. +

+ {error.digest && ( +

+ ID do Erro: {error.digest} +

+ )} +
+ +
+ + + + + + Ir para o Painel + +
+ +
+ +
+ ) +} diff --git a/src/app/not-found-pelada/page.tsx b/src/app/not-found-pelada/page.tsx index cc2b209..640c6da 100644 --- a/src/app/not-found-pelada/page.tsx +++ b/src/app/not-found-pelada/page.tsx @@ -1,56 +1,81 @@ 'use client' import { motion } from 'framer-motion' -import { AlertTriangle, Home, Plus } from 'lucide-react' +import { AlertTriangle, Home, Plus, Search, Ghost } from 'lucide-react' export default function PeladaNotFound() { + const primaryColor = '#ef4444' // Red for error + return ( -
- {/* Background gradient */} -
+
+ {/* Background Effects */} +
+ + {/* Animación de Gramado/Grid */} +
- {/* Icon */} -
- + {/* Icon Section */} +
+
+ + +
- {/* Title */} -

- Pelada não encontrada -

+
+

+ Pelada Não Encontrada +

+
+

+ O grupo que você buscou não está registrado em nosso sistema ou o endereço está incorreto. + Verifique o link ou comece um novo esquadrão agora mesmo. +

+
- {/* Description */} -

- O grupo que você está procurando não existe ou foi removido. - Verifique o endereço e tente novamente. -

- - {/* Actions */} -
+
- - Voltar ao início + + + Página Inicial + +
+ - - Criar nova pelada + + + Criar Nova Pelada + + - {/* Footer */} -

- Erro 404 - Grupo não existe no sistema + {/* Funny Footer */} +

+ Erro 404 • Grupo inexistente

diff --git a/src/app/not-found.tsx b/src/app/not-found.tsx new file mode 100644 index 0000000..544af7c --- /dev/null +++ b/src/app/not-found.tsx @@ -0,0 +1,81 @@ +import Link from 'next/link' +import { getActiveGroup } from '@/lib/auth' +import { Trophy, ArrowLeft, Ghost } from 'lucide-react' + +export default async function NotFound() { + // Tenta pegar o grupo para aplicar as cores personalizadas + const group = await getActiveGroup().catch(() => null) + const primaryColor = group?.primaryColor || '#10b981' + + return ( +
+ {/* Background Effects */} +
+ + {/* Animación de Gramado/Grid */} +
+ +
+ {/* Icon Section */} +
+
+ + +
+ {/* Pulsing rings */} +
+
+ +
+

+ 404 +

+
+

+ Você furou a pelada! +

+

+ A página que você está procurando foi substituída ou levada para o vestiário. + Parece que esse lance foi out. +

+
+ +
+ + + + Voltar para o Jogo + +
+ + + + Página Inicial + +
+ + {/* Funny Footer */} +

+ Cuidado com o carrinho • TemFut Engine +

+
+
+ ) +}