fix(workspace): sentinel '__none__' en selector área — Radix UI prohíbe value='' en SelectItem
Some checks failed
/ Deploy to Cloudflare Pages (push) Has been cancelled

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-07-07 21:18:58 -03:00
parent 53f8a8d8cd
commit b149e1cd0c

View File

@@ -30,7 +30,7 @@ export function GlobalSettingsPanel() {
const { user } = useAuth()
const isClientRole = user?.platformRole === 'client_editor' || user?.platformRole === 'client_viewer'
const [localName, setLocalName] = useState('')
const [localAreaId, setLocalAreaId] = useState<string>('')
const [localAreaId, setLocalAreaId] = useState<string>('__none__')
const [areas, setAreas] = useState<Area[]>([])
const [areasLoading, setAreasLoading] = useState(false)
const [localCurrency, setLocalCurrency] = useState('USD')
@@ -43,7 +43,7 @@ export function GlobalSettingsPanel() {
useEffect(() => {
if (!currentProcess) return
setLocalName(currentProcess.name)
setLocalAreaId(currentProcess.areaId ?? '')
setLocalAreaId(currentProcess.areaId ?? '__none__')
// Cargar áreas de la org del proceso
if (currentProcess.orgId) {
@@ -69,7 +69,7 @@ export function GlobalSettingsPanel() {
const clampedHorizon = Math.min(10, Math.max(1, localHorizon))
await updateProcess({
name: localName.trim() || 'Proceso sin nombre',
areaId: localAreaId === '' ? null : localAreaId,
areaId: localAreaId === '__none__' ? null : localAreaId,
currency: localCurrency,
overheadPercentage: localOverhead / 100,
annualFrequency: Math.max(1, localFrequency),
@@ -115,7 +115,7 @@ export function GlobalSettingsPanel() {
<SelectValue placeholder="Sin área" />
</SelectTrigger>
<SelectContent>
<SelectItem value="" className="text-xs text-slate-400 italic">Sin área</SelectItem>
<SelectItem value="__none__" className="text-xs text-slate-400 italic">Sin área</SelectItem>
{areas.map((a) => (
<SelectItem key={a.id} value={a.id} className="text-xs">{a.name}</SelectItem>
))}