Desenvolvedores
src_
components_
LoadingSpinner.jsx

Explicação:

O código define o componente LoadingSpinner, utilizado para exibir um spinner de carregamento com uma mensagem de espera enquanto a página ou recurso está sendo carregado.

Detalhamento do código:

  • 'use client':

    • A diretiva 'use client' no início do código indica que este é um componente que será executado no lado do cliente, ou seja, apenas no navegador, e não no servidor. Isso é especialmente relevante em projetos usando Next.js, para garantir que o código seja executado no contexto correto.
    • 🌐 Carregamento no cliente: Esse componente será renderizado no navegador do usuário.
  • ImSpinner2:

    • O ícone de spinner é importado da biblioteca react-icons/im, um conjunto popular de ícones. O spinner possui a classe animate-spin que adiciona uma animação de rotação, fazendo com que o ícone gire.
    • 🔄 Animação de rotação: Um efeito visual para indicar que o carregamento está em progresso.
  • Estilo:

    • flex e flex-col são utilizados para organizar o layout em uma coluna.
    • items-center e justify-center garantem que o conteúdo (spinner e mensagem) fique centralizado na tela.
    • h-screen define a altura como 100% da altura da tela do navegador.
    • space-y-4 aplica um espaçamento entre o spinner e a mensagem.
    • 🎨 Estilo visual: Centro da tela, espaçamento agradável, e animação fluída.
  • message:

    • A propriedade message permite passar uma mensagem personalizada para o componente. Caso não seja passada uma mensagem, o valor padrão será 'Carregando...'. A mensagem é exibida abaixo do spinner com uma classe que a estiliza como texto destacado.
    • 📝 Mensagem de carregamento: "Carregando..." ou uma mensagem personalizada.

Agora, vamos para o código completo:

Código Completo:

'use client'
import React from 'react'
import { ImSpinner2 } from 'react-icons/im'
 
const LoadingSpinner = ({ message = 'Carregando...' }) => {
  return (
    <div className="flex flex-col items-center justify-center h-screen space-y-4">
      <ImSpinner2 className="animate-spin text-6xl" />
      <p className="text-lg font-semibold text-muted-foreground">{message}</p>
    </div>
  )
}
 
export default LoadingSpinner

Este é o código completo do componente LoadingSpinner. Ele exibe um spinner rotativo e uma mensagem centralizada, fornecendo uma experiência visual de espera ao usuário enquanto a página está carregando.