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;
 | 
						|
    }
 | 
						|
}
 |