diff --git a/src/App.tsx b/src/App.tsx index 9ed5be7..5be6992 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,7 +1,78 @@ +import { useEffect, useState } from 'react' +import { supabase } from '@/lib/supabase' +import type { Database } from '@/types/database' + +type Marca = Database['reserva_hotel']['Tables']['marcas']['Row'] + export default function App() { + const [marcas, setMarcas] = useState([]) + const [loading, setLoading] = useState(true) + const [error, setError] = useState(null) + + useEffect(() => { + async function loadMarcas() { + const { data, error } = await supabase + .from('marcas') + .select('*') + .eq('ativa', true) + .order('nome', { ascending: true }) + + if (error) { + setError(error.message) + } else { + setMarcas(data ?? []) + } + setLoading(false) + } + loadMarcas() + }, []) + return ( -
-

Reserva Rede 1001

-
+
+
+

+ Experiência exclusiva +

+

+ Reserva Rede 1001 +

+

Escolha uma das nossas marcas para começar

+
+ + {loading &&

Carregando marcas...

} + + {error && ( +
+ Erro ao carregar: {error} +
+ )} + + {!loading && !error && marcas.length === 0 && ( +

Nenhuma marca cadastrada ainda.

+ )} + + {!loading && !error && marcas.length > 0 && ( +
    + {marcas.map((marca) => ( +
  • +

    {marca.nome}

    + {marca.descricao &&

    {marca.descricao}

    } + {marca.categorias && marca.categorias.length > 0 && ( +

    + {marca.categorias.join(' · ')} +

    + )} +
  • + ))} +
+ )} + + +
) }