79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace App\Livewire\Project\Shared\EnvironmentVariable;
 | 
						|
 | 
						|
use Livewire\Component;
 | 
						|
 | 
						|
class Add extends Component
 | 
						|
{
 | 
						|
    public $parameters;
 | 
						|
 | 
						|
    public bool $shared = false;
 | 
						|
 | 
						|
    public bool $is_preview = false;
 | 
						|
 | 
						|
    public string $key;
 | 
						|
 | 
						|
    public ?string $value = null;
 | 
						|
 | 
						|
    public bool $is_build_time = false;
 | 
						|
 | 
						|
    public bool $is_multiline = false;
 | 
						|
 | 
						|
    public bool $is_literal = false;
 | 
						|
 | 
						|
    protected $listeners = ['clearAddEnv' => 'clear'];
 | 
						|
 | 
						|
    protected $rules = [
 | 
						|
        'key' => 'required|string',
 | 
						|
        'value' => 'nullable',
 | 
						|
        'is_build_time' => 'required|boolean',
 | 
						|
        'is_multiline' => 'required|boolean',
 | 
						|
        'is_literal' => 'required|boolean',
 | 
						|
    ];
 | 
						|
 | 
						|
    protected $validationAttributes = [
 | 
						|
        'key' => 'key',
 | 
						|
        'value' => 'value',
 | 
						|
        'is_build_time' => 'build',
 | 
						|
        'is_multiline' => 'multiline',
 | 
						|
        'is_literal' => 'literal',
 | 
						|
    ];
 | 
						|
 | 
						|
    public function mount()
 | 
						|
    {
 | 
						|
        $this->parameters = get_route_parameters();
 | 
						|
    }
 | 
						|
 | 
						|
    public function submit()
 | 
						|
    {
 | 
						|
        $this->validate();
 | 
						|
        // if (str($this->value)->startsWith('{{') && str($this->value)->endsWith('}}')) {
 | 
						|
        //     $type = str($this->value)->after('{{')->before('.')->value;
 | 
						|
        //     if (! collect(SHARED_VARIABLE_TYPES)->contains($type)) {
 | 
						|
        //         $this->dispatch('error', 'Invalid  shared variable type.', 'Valid types are: team, project, environment.');
 | 
						|
 | 
						|
        //         return;
 | 
						|
        //     }
 | 
						|
        // }
 | 
						|
        $this->dispatch('saveKey', [
 | 
						|
            'key' => $this->key,
 | 
						|
            'value' => $this->value,
 | 
						|
            'is_build_time' => $this->is_build_time,
 | 
						|
            'is_multiline' => $this->is_multiline,
 | 
						|
            'is_literal' => $this->is_literal,
 | 
						|
            'is_preview' => $this->is_preview,
 | 
						|
        ]);
 | 
						|
        $this->clear();
 | 
						|
    }
 | 
						|
 | 
						|
    public function clear()
 | 
						|
    {
 | 
						|
        $this->key = '';
 | 
						|
        $this->value = '';
 | 
						|
        $this->is_build_time = false;
 | 
						|
        $this->is_multiline = false;
 | 
						|
        $this->is_literal = false;
 | 
						|
    }
 | 
						|
}
 |