Revert "feat: implement real tenant creation and listing"
All checks were successful
Build and Deploy / build-and-push (push) Successful in 3m17s

This reverts commit 2742bafb00.
This commit is contained in:
Cauê Faleiros
2026-02-24 14:10:53 -03:00
parent 2742bafb00
commit 37f6ae042d
3 changed files with 8 additions and 108 deletions

View File

@@ -3,7 +3,7 @@ import {
Building2, Users, MessageSquare, Plus, Search, MoreHorizontal,
Edit, Trash2, Shield, Calendar, ChevronDown, ChevronUp, ChevronsUpDown, X
} from 'lucide-react';
import { getTenants, createTenant } from '../services/dataService';
import { TENANTS, MOCK_ATTENDANCES, USERS } from '../constants';
import { Tenant } from '../types';
import { DateRangePicker } from '../components/DateRangePicker';
import { KPICard } from '../components/KPICard';
@@ -18,8 +18,7 @@ export const SuperAdmin: React.FC = () => {
});
const [selectedTenantId, setSelectedTenantId] = useState<string>('all');
const [searchQuery, setSearchQuery] = useState('');
const [tenants, setTenants] = useState<Tenant[]>([]);
const [loading, setLoading] = useState(true);
const [tenants, setTenants] = useState<Tenant[]>(TENANTS);
const [isModalOpen, setIsModalOpen] = useState(false);
const [editingTenant, setEditingTenant] = useState<Tenant | null>(null);
@@ -27,18 +26,6 @@ export const SuperAdmin: React.FC = () => {
const [sortKey, setSortKey] = useState<keyof Tenant>('created_at');
const [sortDirection, setSortDirection] = useState<'asc' | 'desc'>('desc');
// Load Tenants from API
const loadTenants = async () => {
setLoading(true);
const data = await getTenants();
setTenants(data);
setLoading(false);
};
React.useEffect(() => {
loadTenants();
}, []);
// --- Metrics ---
const totalTenants = tenants.length;
// Mock aggregation for demo
@@ -95,31 +82,16 @@ export const SuperAdmin: React.FC = () => {
const handleDelete = (id: string) => {
if (confirm('Tem certeza que deseja excluir esta organização? Esta ação não pode ser desfeita.')) {
// TODO: Implement delete API
setTenants(prev => prev.filter(t => t.id !== id));
}
};
const handleSaveTenant = async (e: React.FormEvent) => {
const handleSaveTenant = (e: React.FormEvent) => {
e.preventDefault();
const form = e.target as HTMLFormElement;
// Extract values manually or use state. For simplicity using form elements
const name = (form.elements.namedItem('name') as HTMLInputElement).value;
const slug = (form.elements.namedItem('slug') as HTMLInputElement).value;
const admin_email = (form.elements.namedItem('admin_email') as HTMLInputElement).value;
const status = (form.elements.namedItem('status') as HTMLSelectElement).value;
const success = await createTenant({ name, slug, admin_email, status });
if (success) {
setIsModalOpen(false);
setEditingTenant(null);
loadTenants(); // Reload list
alert('Organização salva com sucesso!');
} else {
alert('Erro ao salvar organização. Verifique o console.');
}
// Logic to save (mock)
setIsModalOpen(false);
setEditingTenant(null);
alert('Organização salva com sucesso (Mock)');
};
// --- Helper Components ---
@@ -325,7 +297,6 @@ export const SuperAdmin: React.FC = () => {
<label className="text-sm font-medium text-slate-700">Nome da Organização</label>
<input
type="text"
name="name"
defaultValue={editingTenant?.name}
className="w-full px-3 py-2 bg-slate-50 border border-slate-200 rounded-lg text-sm focus:ring-2 focus:ring-blue-100 outline-none"
placeholder="ex. Acme Corp"
@@ -338,7 +309,6 @@ export const SuperAdmin: React.FC = () => {
<label className="text-sm font-medium text-slate-700">Slug</label>
<input
type="text"
name="slug"
defaultValue={editingTenant?.slug}
className="w-full px-3 py-2 bg-slate-50 border border-slate-200 rounded-lg text-sm focus:ring-2 focus:ring-blue-100 outline-none"
placeholder="ex. acme-corp"
@@ -347,7 +317,6 @@ export const SuperAdmin: React.FC = () => {
<div className="space-y-2">
<label className="text-sm font-medium text-slate-700">Status</label>
<select
name="status"
defaultValue={editingTenant?.status || 'active'}
className="w-full px-3 py-2 bg-slate-50 border border-slate-200 rounded-lg text-sm focus:ring-2 focus:ring-blue-100 outline-none"
>
@@ -362,7 +331,6 @@ export const SuperAdmin: React.FC = () => {
<label className="text-sm font-medium text-slate-700">E-mail do Admin</label>
<input
type="email"
name="admin_email"
defaultValue={editingTenant?.admin_email}
className="w-full px-3 py-2 bg-slate-50 border border-slate-200 rounded-lg text-sm focus:ring-2 focus:ring-blue-100 outline-none"
placeholder="admin@empresa.com"