first commit
This commit is contained in:
70
resources/views/components/file/dropzone.blade.php
Normal file
70
resources/views/components/file/dropzone.blade.php
Normal file
@ -0,0 +1,70 @@
|
||||
@props([
|
||||
// Identificador único
|
||||
'uid' => uniqid(),
|
||||
|
||||
// Modelo para Livewire
|
||||
'model' => '',
|
||||
|
||||
// Etiqueta y Texto de ayuda
|
||||
'message' => '',
|
||||
'note' => '',
|
||||
|
||||
// Clases generales
|
||||
'size' => 'md', // Tamaño del textarea (xxs, xs, sm, md)
|
||||
'mb0' => false, // Remover margen inferior
|
||||
'parentClass' => '',
|
||||
])
|
||||
|
||||
@php
|
||||
// **Configuración de Name, ID y Model**
|
||||
$livewireModel = $attributes->get('wire:model', $model);
|
||||
$name = $attributes->get('name', $livewireModel);
|
||||
$inputId = $attributes->get('id', $name . '_' . $uid);
|
||||
|
||||
// **Manejo de errores**
|
||||
$errorKey = $livewireModel ?: $name;
|
||||
$hasError = $errors->has($errorKey);
|
||||
$errorClass = $hasError ? 'is-invalid' : '';
|
||||
|
||||
// **Clases dinámicas**
|
||||
$sizeClassDropzone = match ($size) {
|
||||
'sm' => 'dropzone-sm',
|
||||
'xs' => 'dropzone-xs',
|
||||
'md' => 'dropzone-md',
|
||||
default => '',
|
||||
};
|
||||
|
||||
$sizeClassButton = match ($size) {
|
||||
'sm' => 'btn-sm',
|
||||
'xs' => 'btn-xs',
|
||||
default => '',
|
||||
};
|
||||
@endphp
|
||||
|
||||
<!-- Dropzone (se oculta automáticamente después de la carga) -->
|
||||
<div class="{{ $mb0 ? '' : 'mb-4 ' }} {{ $sizeClassDropzone }}">
|
||||
<div class="dropzone" id="dropzone_{{ $inputId }}"">
|
||||
<div class="dz-message">
|
||||
@if ($size == 'sm' || $size == 'xs')
|
||||
<div class="flex items-center">
|
||||
<span class="btn btn-icon {{ $sizeClassButton }} btn-label-secondary mr-2">
|
||||
<i class="ti ti-upload text-base"></i>
|
||||
</span>
|
||||
<span>
|
||||
{{ $message }}
|
||||
<span class="note needsclick">{!! $note !!}</span>
|
||||
</span>
|
||||
</div>
|
||||
@else
|
||||
{{ $message }}
|
||||
<span class="note needsclick">{!! $note !!}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<input type="file" wire:model="pdf" {{ $livewireModel ? "wire:model=$livewireModel" : '' }} id="{{ $inputId }}" accept="application/pdf" class="d-none">
|
||||
|
||||
{{-- Mensaje de error --}}
|
||||
@if ($hasError)
|
||||
<span class="text-danger">{{ $errors->first($errorKey) }}</span>
|
||||
@endif
|
||||
</div>
|
Reference in New Issue
Block a user