mirror of
https://github.com/lucasrcsantana/story-generator.git
synced 2025-12-18 22:37:51 +00:00
- Cria componente StudentSettingsPage - Adiciona rota de configurações - Implementa utils para classes condicionais - Atualiza navegação no dashboard do aluno
66 lines
2.3 KiB
TypeScript
66 lines
2.3 KiB
TypeScript
import { Tabs, TabsList, TabsTrigger, TabsContent } from '../../components/ui/tabs';
|
|
import { Input } from '../../components/ui/input';
|
|
import { DatePicker } from '../../components/ui/date-picker';
|
|
import { Select } from '../../components/ui/select';
|
|
import { AvatarUpload } from '../../components/ui/avatar-upload';
|
|
|
|
export function StudentSettingsPage() {
|
|
return (
|
|
<div className="max-w-4xl mx-auto">
|
|
<h1 className="text-2xl font-bold text-gray-900 mb-6">
|
|
Configurações do Perfil
|
|
</h1>
|
|
|
|
<Tabs defaultValue="personal">
|
|
<TabsList>
|
|
<TabsTrigger value="personal">Informações Pessoais</TabsTrigger>
|
|
<TabsTrigger value="preferences">Preferências</TabsTrigger>
|
|
<TabsTrigger value="accessibility">Acessibilidade</TabsTrigger>
|
|
<TabsTrigger value="notifications">Notificações</TabsTrigger>
|
|
</TabsList>
|
|
|
|
<TabsContent value="personal">
|
|
<div className="space-y-6">
|
|
<div className="flex items-center gap-4">
|
|
<AvatarUpload />
|
|
<div>
|
|
<h3 className="font-medium">Foto do Perfil</h3>
|
|
<p className="text-sm text-gray-500">
|
|
JPG ou PNG, máximo 2MB
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div className="grid grid-cols-2 gap-4">
|
|
<Input
|
|
label="Nome Completo"
|
|
name="fullName"
|
|
placeholder="Seu nome completo"
|
|
/>
|
|
<Input
|
|
label="Nome Social/Apelido"
|
|
name="nickname"
|
|
placeholder="Como prefere ser chamado"
|
|
/>
|
|
<DatePicker
|
|
label="Data de Nascimento"
|
|
name="birthDate"
|
|
/>
|
|
<Select
|
|
label="Gênero"
|
|
name="gender"
|
|
options={[
|
|
{ value: 'male', label: 'Masculino' },
|
|
{ value: 'female', label: 'Feminino' },
|
|
{ value: 'non_binary', label: 'Não-binário' },
|
|
{ value: 'other', label: 'Outro' },
|
|
{ value: 'prefer_not_to_say', label: 'Prefiro não dizer' }
|
|
]}
|
|
/>
|
|
</div>
|
|
</div>
|
|
</TabsContent>
|
|
</Tabs>
|
|
</div>
|
|
);
|
|
}
|