2
2
3
3
namespace Whitecube \NovaFlexibleContent ;
4
4
5
+ use Illuminate \Support \Collection ;
5
6
use Laravel \Nova \Fields \Field ;
6
7
use Laravel \Nova \Fields \SupportsDependentFields ;
7
8
use Laravel \Nova \Http \Requests \NovaRequest ;
@@ -27,21 +28,21 @@ class Flexible extends Field
27
28
/**
28
29
* The available layouts collection
29
30
*
30
- * @var Whitecube\NovaFlexibleContent\Layouts\Collection
31
+ * @var \ Whitecube\NovaFlexibleContent\Layouts\Collection
31
32
*/
32
33
protected $ layouts ;
33
34
34
35
/**
35
36
* The currently defined layout groups
36
37
*
37
- * @var Illuminate\Support\Collection
38
+ * @var \ Illuminate\Support\Collection
38
39
*/
39
40
protected $ groups ;
40
41
41
42
/**
42
43
* The field's value setter & getter
43
44
*
44
- * @var Whitecube\NovaFlexibleContent\Value\ResolverInterface
45
+ * @var \ Whitecube\NovaFlexibleContent\Value\ResolverInterface
45
46
*/
46
47
protected $ resolver ;
47
48
@@ -229,7 +230,7 @@ public function collapsed(bool $value = true)
229
230
/**
230
231
* Push a layout instance into the layouts collection
231
232
*
232
- * @param Whitecube\NovaFlexibleContent\Layouts\LayoutInterface $layout
233
+ * @param \ Whitecube\NovaFlexibleContent\Layouts\LayoutInterface $layout
233
234
* @return void
234
235
*/
235
236
protected function registerLayout (LayoutInterface $ layout )
@@ -301,7 +302,7 @@ public function isShownOnDetail(NovaRequest $request, $resource): bool
301
302
* @param string $requestAttribute
302
303
* @param object $model
303
304
* @param string $attribute
304
- * @return null| Closure
305
+ * @return void|\ Closure
305
306
*/
306
307
protected function fillAttribute (NovaRequest $ request , $ requestAttribute , $ model , $ attribute )
307
308
{
@@ -335,26 +336,26 @@ protected function fillAttribute(NovaRequest $request, $requestAttribute, $model
335
336
* @param string $requestAttribute
336
337
* @return array
337
338
*/
338
- protected function syncAndFillGroups (NovaRequest $ request , $ requestAttribute )
339
+ protected function syncAndFillGroups (NovaRequest $ request , $ requestAttribute ): array
339
340
{
340
341
if (! ($ raw = $ this ->extractValue ($ request , $ requestAttribute ))) {
341
342
$ this ->fireRemoveCallbacks (collect ());
342
343
$ this ->groups = collect ();
343
344
344
- return ;
345
+ return [] ;
345
346
}
346
347
347
348
$ callbacks = [];
348
349
349
- $ new_groups = collect ($ raw )->map (function ($ item, $ key ) use ($ request , &$ callbacks ) {
350
+ $ new_groups = collect ($ raw )->map (function ($ item ) use ($ request , &$ callbacks ) {
350
351
$ layout = $ item ['layout ' ];
351
352
$ key = $ item ['key ' ];
352
353
$ attributes = $ item ['attributes ' ];
353
354
354
355
$ group = $ this ->findGroup ($ key ) ?? $ this ->newGroup ($ layout , $ key );
355
356
356
- if (! $ group ) {
357
- return ;
357
+ if (! $ group instanceof Layout ) {
358
+ return [] ;
358
359
}
359
360
360
361
$ scope = ScopedRequest::scopeFrom ($ request , $ attributes , $ key );
@@ -373,9 +374,9 @@ protected function syncAndFillGroups(NovaRequest $request, $requestAttribute)
373
374
/**
374
375
* Fire's the remove callbacks on the layouts
375
376
*
376
- * @param $new_groups This should be (all) the new groups to bne compared against to find the removed groups
377
+ * @param Collection $new_groups This should be (all) the new groups to bne compared against to find the removed groups
377
378
*/
378
- protected function fireRemoveCallbacks ($ new_groups )
379
+ protected function fireRemoveCallbacks (Collection $ new_groups )
379
380
{
380
381
$ new_group_keys = $ new_groups ->map (function ($ item ) {
381
382
return $ item ->inUseKey ();
@@ -414,8 +415,8 @@ protected function extractValue(NovaRequest $request, $attribute)
414
415
/**
415
416
* Resolve all contained groups and their fields
416
417
*
417
- * @param Illuminate\Support\Collection $groups
418
- * @return Illuminate\Support\Collection
418
+ * @param \ Illuminate\Support\Collection $groups
419
+ * @return \ Illuminate\Support\Collection
419
420
*/
420
421
protected function resolveGroups ($ groups )
421
422
{
@@ -428,8 +429,8 @@ protected function resolveGroups($groups)
428
429
* Resolve all contained groups and their fields for display on index and
429
430
* detail views.
430
431
*
431
- * @param Illuminate\Support\Collection $groups
432
- * @return Illuminate\Support\Collection
432
+ * @param \ Illuminate\Support\Collection $groups
433
+ * @return \ Illuminate\Support\Collection
433
434
*/
434
435
protected function resolveGroupsForDisplay ($ groups )
435
436
{
@@ -444,7 +445,7 @@ protected function resolveGroupsForDisplay($groups)
444
445
*
445
446
* @param mixed $resource
446
447
* @param string $attribute
447
- * @return Illuminate\Support\Collection
448
+ * @return \ Illuminate\Support\Collection
448
449
*/
449
450
protected function buildGroups ($ resource , $ attribute )
450
451
{
@@ -473,14 +474,14 @@ protected function findGroup($key)
473
474
*
474
475
* @param string $layout
475
476
* @param string $key
476
- * @return \Whitecube\NovaFlexibleContent\Layouts\Layout
477
+ * @return null| \Whitecube\NovaFlexibleContent\Layouts\Layout
477
478
*/
478
479
protected function newGroup ($ layout , $ key )
479
480
{
480
481
$ layout = $ this ->layouts ->find ($ layout );
481
482
482
- if (! $ layout ) {
483
- return ;
483
+ if (! $ layout instanceof Layout ) {
484
+ return null ;
484
485
}
485
486
486
487
return $ layout ->duplicate ($ key );
0 commit comments