/** * File: page.tsx * Created by: AI Assistant * Date: 2025-11-29 * Purpose: Role registration page for kreatiVortex platform * Part of: kreatiVortex - Platform Pembelajaran Tari Online */ 'use client'; import React, { useState } from 'react'; import { useRouter } from 'next/navigation'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Textarea } from '@/components/ui/textarea'; export default function RegisterRolePage() { const router = useRouter(); const [loading, setLoading] = useState(false); const [selectedRole, setSelectedRole] = useState(''); const [formData, setFormData] = useState({ institution: '', className: '', // This will store class code for students teachingLevel: '', purpose: '', nim: '', }); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); try { const response = await fetch('/api/auth/register-role', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ role: selectedRole, ...formData, }), credentials: 'include', }); const result = await response.json(); if (result.success) { router.push('/dashboard'); router.refresh(); } else { console.error('Failed to register role:', result.message); // You could show an error message to the user here } } catch (error) { console.error('Error registering role:', error); } finally { setLoading(false); } }; const handleRoleSelect = (role: string) => { setSelectedRole(role); setFormData({ institution: '', className: '', teachingLevel: '', purpose: '', nim: '', }); }; return (

Pilih Role Anda

Upgrade akun Anda untuk mengakses fitur lengkap

{!selectedRole ? (
handleRoleSelect('CALON_PENDIDIK')}>

Calon Pendidik

Bergabung sebagai peserta didik untuk mengakses materi pembelajaran, mengerjakan tugas, dan berpartisipasi dalam forum diskusi kelas.

  • • Akses video pembelajaran
  • • Bergabung dengan kelas
  • • Mengerjakan tugas
  • • Forum diskusi kelas
handleRoleSelect('PENDIDIK')}>

Pendidik

Daftar sebagai instruktur untuk membuat kelas, mengelola konten pembelajaran, dan membimbing calon pendidik.

  • • Buat dan kelola kelas
  • • Upload video pembelajaran
  • • Berikan tugas dan revisi
  • • Moderasi forum kelas
) : (

Anda memilih role: {selectedRole === 'CALON_PENDIDIK' ? 'Calon Pendidik' : 'Pendidik'}

setFormData({ ...formData, institution: e.target.value })} required placeholder="Nama instansi pendidikan Anda" className="bg-white/10 border-white/20 text-white placeholder:text-gray-400" />
{selectedRole === 'CALON_PENDIDIK' ? ( <>
setFormData({ ...formData, className: e.target.value })} required placeholder="Masukkan kode kelas yang diberikan oleh pendidik" className="bg-white/10 border-white/20 text-white placeholder:text-gray-400" />

Hubungi pendidik Anda untuk mendapatkan kode kelas

setFormData({ ...formData, nim: e.target.value })} required placeholder="Masukkan NIM Anda" className="bg-white/10 border-white/20 text-white placeholder:text-gray-400" />
) : ( <>
setFormData({ ...formData, className: e.target.value })} required placeholder="Nama kelas yang akan Anda buat" className="bg-white/10 border-white/20 text-white placeholder:text-gray-400" />