'use client'
import { useState } from 'react'
import type { TabId } from '../types'
interface CreateModalProps {
type: TabId
tenantId: string
onClose: () => void
onSave: (data: any) => void
}
function getTitle(type: TabId): string {
switch (type) {
case 'tenants': return 'Neuer Mandant'
case 'namespaces': return 'Neuer Namespace'
case 'roles': return 'Neue Rolle'
case 'users': return 'Rolle zuweisen'
case 'policies': return 'Neue LLM-Policy'
}
}
function TenantForm({ formData, setFormData }: { formData: any; setFormData: (d: any) => void }) {
return (
<>
setFormData({ ...formData, name: e.target.value })}
className="w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-primary-500"
/>
setFormData({ ...formData, slug: e.target.value })}
className="w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-primary-500"
/>
>
)
}
function NamespaceForm({ formData, setFormData }: { formData: any; setFormData: (d: any) => void }) {
return (
<>
setFormData({ ...formData, name: e.target.value })}
className="w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-primary-500"
/>
setFormData({ ...formData, slug: e.target.value })}
className="w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-primary-500"
/>
>
)
}
function RoleForm({ formData, setFormData }: { formData: any; setFormData: (d: any) => void }) {
return (
<>
setFormData({ ...formData, name: e.target.value })}
className="w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-primary-500"
/>
setFormData({ ...formData, permissions: e.target.value.split(',').map((s: string) => s.trim()) })}
placeholder="compliance:read, llm:query"
className="w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-primary-500"
/>
setFormData({ ...formData, hierarchy_level: parseInt(e.target.value) })}
className="w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-primary-500"
/>
>
)
}
function PolicyForm({ formData, setFormData }: { formData: any; setFormData: (d: any) => void }) {
return (
<>
setFormData({ ...formData, name: e.target.value })}
className="w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-primary-500"
/>
setFormData({ ...formData, allowed_data_categories: e.target.value.split(',').map((s: string) => s.trim()) })}
placeholder="salary, compensation, finance"
className="w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-primary-500"
/>
setFormData({ ...formData, blocked_data_categories: e.target.value.split(',').map((s: string) => s.trim()) })}
placeholder="health, personal, salary"
className="w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-primary-500"
/>
{formData.require_pii_redaction && (
)}
>
)
}
export function CreateModal({ type, tenantId, onClose, onSave }: CreateModalProps) {
const [formData, setFormData] = useState({})
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault()
onSave(formData)
}
const renderForm = () => {
switch (type) {
case 'tenants':
return
case 'namespaces':
return
case 'roles':
return
case 'policies':
return
default:
return Nicht unterstuetzt
}
}
return (
)
}