38 lines
761 B
PHP
38 lines
761 B
PHP
<?php
|
|
|
|
namespace Laravel\Prompts\Concerns;
|
|
|
|
use Laravel\Prompts\Exceptions\NonInteractiveValidationException;
|
|
|
|
trait Interactivity
|
|
{
|
|
/**
|
|
* Whether to render the prompt interactively.
|
|
*/
|
|
protected static bool $interactive;
|
|
|
|
/**
|
|
* Set interactive mode.
|
|
*/
|
|
public static function interactive(bool $interactive = true): void
|
|
{
|
|
static::$interactive = $interactive;
|
|
}
|
|
|
|
/**
|
|
* Return the default value if it passes validation.
|
|
*/
|
|
protected function default(): mixed
|
|
{
|
|
$default = $this->value();
|
|
|
|
$this->validate($default);
|
|
|
|
if ($this->state === 'error') {
|
|
throw new NonInteractiveValidationException($this->error);
|
|
}
|
|
|
|
return $default;
|
|
}
|
|
}
|