Skip to Content
TemplatesSettings

Settings Template

Página de configurações do Orchids Crisis Manager. Organizada em seções com formulário de campos.

Estrutura

┌─────────────────────────────────────────────┐ │ Header │ │ Configurações │ ├─────────────────────────────────────────────┤ │ Sidebar (seções) │ Form Content │ │ ├─ Perfil │ ┌──────────────────┐ │ │ ├─ Notificações │ │ FormField │ │ │ ├─ Integrações │ │ FormField │ │ │ ├─ Equipe │ │ FormField │ │ │ └─ Conta │ │ [Salvar] [Cancelar]│ │ │ └──────────────────┘ │ └────────────────────┴───────────────────────┘

Componentes Utilizados

SeçãoComponentes
NavegaçãoSidebar, Button (ghost)
FormuláriosForm, FormField, Input, Switch, Select
IntegraçõesCard, Badge, Button
EquipeTable, Avatar, DropdownMenu
ContaDialog (confirmar ações)

Padrão de Formulário

import { Form, FormField, FormLabel, FormControl, FormMessage } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { Switch } from "@/components/ui/switch"; import { Button } from "@/components/ui/button"; export default function SettingsForm() { return ( <form className="flex flex-col gap-6"> {/* Perfil */} <div> <h2 className="text-lg font-semibold mb-4">Perfil</h2> <div className="flex flex-col gap-4"> <FormField label="Nome" required> <Input placeholder="Seu nome" /> </FormField> <FormField label="Email" required> <Input type="email" placeholder="email@exemplo.com" /> </FormField> </div> </div> {/* Notificações */} <div> <h2 className="text-lg font-semibold mb-4">Notificações</h2> <div className="flex flex-col gap-4"> <div className="flex items-center justify-between"> <div> <p className="font-medium">Alertas por email</p> <p className="text-sm text-muted-foreground"> Receba alertas de novas crises </p> </div> <Switch /> </div> </div> </div> {/* Ações */} <div className="flex gap-2 justify-end"> <Button variant="outline">Cancelar</Button> <Button variant="default">Salvar</Button> </div> </form> ); }

Validação

  • Campos obrigatórios marcados com asterisco
  • Erros inline abaixo do campo com FormMessage
  • Botão salvar desabilitado até o form ser válido
  • Toast de confirmação após salvar com sucesso
Last updated on