Skip to content

Commit 5dc2747

Browse files
committed
fix crash when passing a callable instead of a string to ->if() method
1 parent b17cbea commit 5dc2747

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

src/ConditionalContainer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public function if($expression): self
6969
return $this;
7070
}
7171

72-
public function orIf(string $expression): self
72+
public function orIf($expression): self
7373
{
7474
return $this->if($expression);
7575
}

src/HasConditionalContainer.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,9 @@ public function availableFields(NovaRequest $request)
103103

104104
$fields = parent::availableFields($request);
105105
$containers = $this->findAllContainers($fields);
106-
$expressionsMap = $containers->flatMap->expressions;
106+
$expressionsMap = $containers->flatMap->expressions->map(function ($expression) {
107+
return is_callable($expression) ? $expression() : $expression;
108+
});
107109

108110
$cleanUpMethodName = $controller instanceof UpdateFieldController ?
109111
'removeNonUpdateFields' :
@@ -141,7 +143,9 @@ public function availableFields(NovaRequest $request)
141143

142144
$allFields = $this->fields($request);
143145
$containers = $this->findAllContainers($allFields);
144-
$expressionsMap = $containers->flatMap->expressions;
146+
$expressionsMap = $containers->flatMap->expressions->map(function ($expression) {
147+
return is_callable($expression) ? $expression() : $expression;
148+
});
145149

146150
$fields = $this->flattenDependencies(
147151
$request, $this->preloadRelationships($expressionsMap, $allFields)

0 commit comments

Comments
 (0)