@props([ 'name', 'label' => null, 'checked' => false, 'value' => 1, 'onColor' => 'success', 'offColor' => 'danger', // Cambiado a danger por defecto para contraste 'onText' => 'ACTIVO', // Texto cuando está encendido 'offText' => 'INACTIVO' // Texto cuando está apagado ]) @php // Generamos un ID único para evitar conflictos si hay varios switches $id = $attributes->get('id') ?? $name . '_' . uniqid(); // Determinamos el estado inicial (para ediciones o validaciones fallidas) $isChecked = old($name, $checked); // Definimos el color y texto inicial según el estado $currentColor = $isChecked ? 'text-' . $onColor : 'text-' . $offColor; $currentText = $isChecked ? $onText : $offText; @endphp
{{-- Label superior opcional para alineación --}} @if($label) @endif
{{-- TRUCO: Input oculto para enviar '0' si el switch está apagado --}}
@error($name) {{ $message }} @enderror
{{-- SCRIPT ÚNICO (Solo se define una vez, pero funciona para todos los switches) --}} @once @push('js') @endpush @endonce {{-- Estilos para hacer el switch un poco más grande y atractivo --}} @once @push('css') @endpush @endonce {{-- 1. Caso Clásico (Activo/Inactivo): --}} {{-- --}} {{-- Resultado: Un switch que cambia entre texto verde "ACTIVO" y rojo "INACTIVO". 2. Caso Personalizado (Visible en Web): --}}