81 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\View\Components\Form\Group;
 | |
| 
 | |
| use App\Abstracts\View\Components\Form;
 | |
| 
 | |
| class Attachment extends Form
 | |
| {
 | |
|     public $name = 'attachment';
 | |
| 
 | |
|     public $type = 'file';
 | |
| 
 | |
|     public $formGroupClass = 'sm:col-span-3';
 | |
| 
 | |
|     public $custom_attributes = [
 | |
|         'dropzone-class' => 'form-file dropzone-column w-1/2 h-32.5',
 | |
|     ];
 | |
| 
 | |
|     public $file_types;
 | |
| 
 | |
|     /**
 | |
|      * Get the view / contents that represent the component.
 | |
|      *
 | |
|      * @return \Illuminate\Contracts\View\View|string
 | |
|      */
 | |
|     public function render()
 | |
|     {
 | |
|         $this->setFileTypes();
 | |
| 
 | |
|         $this->custom_attributes = $this->setCustomAttributes();
 | |
| 
 | |
|         return view('components.form.group.attachment');
 | |
|     }
 | |
| 
 | |
|     protected function setFileTypes()
 | |
|     {
 | |
|         $this->file_types = [];
 | |
| 
 | |
|         $file_type_mimes = explode(',', config('filesystems.mimes'));
 | |
| 
 | |
|         $file_types = [];
 | |
| 
 | |
|         foreach ($file_type_mimes as $mime) {
 | |
|             $file_types[] = '.' . $mime;
 | |
|         }
 | |
| 
 | |
|         $this->file_types = implode(',', $file_types);
 | |
|     }
 | |
| 
 | |
|     protected function setCustomAttributes()
 | |
|     {
 | |
|         $attributes = [];
 | |
| 
 | |
|         if (! empty($this->required)) {
 | |
|             $attributes['required'] = $this->required;
 | |
|         }
 | |
| 
 | |
|         if (! empty($this->disabled)) {
 | |
|             $attributes['disabled'] = $this->disabled;
 | |
|         }
 | |
| 
 | |
|         if (! empty($this->readonly)) {
 | |
|             $attributes['readonly'] = $this->readonly;
 | |
|         }
 | |
| 
 | |
|         if (! empty($this->options)) {
 | |
|             $attributes['options'] = $this->options;
 | |
|         }
 | |
| 
 | |
|         if (! empty($this->multiple)) {
 | |
|             $attributes['multiple'] = $this->multiple;
 | |
|         }
 | |
| 
 | |
|         foreach ($this->custom_attributes as $key => $value) {
 | |
|             $attributes[$key] = $value;
 | |
|         }
 | |
| 
 | |
|         return $attributes;
 | |
|     }
 | |
| }
 |