Passed
Pull Request — master (#57)
by Kyle
08:38
created

CanHide::hidden()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nc 2
nop 0
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace KyleMassacre\Menus\Traits;
4
5
use Closure;
6
use KyleMassacre\Menus\MenuBuilder;
7
use KyleMassacre\Menus\MenuItem;
8
9
trait CanHide
10
{
11
    /**
12
     * @var Closure
13
     */
14
    protected ?Closure $hideWhen = null;
15
16
    /**
17
     * Set hide condition for current menu item.
18
     *
19
     * @param Closure $callback
20
     * @return CanHide|MenuBuilder|MenuItem
21
     */
22
    public function hideWhen(Closure $callback): self
23
    {
24
        $this->hideWhen = $callback;
25
26
        return $this;
27
    }
28
29
    /**
30
     * Determine whether the menu item is hidden.
31
     *
32
     * @return boolean
33
     */
34
    public function hidden(): bool
35
    {
36
        if (is_null($this->hideWhen)) {
37
            return false;
38
        }
39
40
        return call_user_func($this->hideWhen) == false;
41
    }
42
}
43