Return early instead of throwing exceptions for missing product or recipe during breadcrumb generation to improve user experience.
79 lines
2.2 KiB
PHP
79 lines
2.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Models\Product;
|
|
use App\Models\Recipe;
|
|
use Diglactic\Breadcrumbs\Breadcrumbs;
|
|
use Diglactic\Breadcrumbs\Generator;
|
|
use Illuminate\Support\Str;
|
|
|
|
Breadcrumbs::for('back.products.index', function (Generator $trail) {
|
|
$trail->parent('back.dashboard.index');
|
|
$trail->push(
|
|
Str::ucfirst(trans_choice('models.classes.product', \INF)),
|
|
route('back.products.index')
|
|
);
|
|
});
|
|
|
|
Breadcrumbs::for('back.products.create', function (Generator $trail) {
|
|
$trail->parent('back.products.index');
|
|
$trail->push(
|
|
Str::ucfirst(trans_choice('models.classes.product', 1)),
|
|
route('back.products.create')
|
|
);
|
|
});
|
|
|
|
Breadcrumbs::for('back.products.edit', function (Generator $trail) {
|
|
$product = request()->route('product');
|
|
|
|
if (! $product instanceof Product) {
|
|
return;
|
|
}
|
|
|
|
$trail->parent('back.products.index');
|
|
$trail->push(
|
|
$product->name ?? Str::ucfirst(trans('uwil-backend::crud.actions.edit')),
|
|
route('back.products.edit', $product)
|
|
);
|
|
});
|
|
|
|
Breadcrumbs::for('back.products.trash', function (Generator $trail) {
|
|
$trail->parent('back.products.index');
|
|
$trail->push(Str::ucfirst(trans('uwil-backend::back.archives')));
|
|
});
|
|
|
|
Breadcrumbs::for('back.recipes.index', function (Generator $trail) {
|
|
$trail->parent('back.dashboard.index');
|
|
$trail->push(
|
|
Str::ucfirst(trans_choice('models.classes.recipe', \INF)),
|
|
route('back.recipes.index')
|
|
);
|
|
});
|
|
|
|
Breadcrumbs::for('back.recipes.create', function (Generator $trail) {
|
|
$trail->parent('back.recipes.index');
|
|
$trail->push(
|
|
Str::ucfirst(trans_choice('models.classes.recipe', 1)),
|
|
route('back.recipes.create')
|
|
);
|
|
});
|
|
|
|
Breadcrumbs::for('back.recipes.edit', function (Generator $trail) {
|
|
$recipe = request()->route('recipe');
|
|
|
|
if (! $recipe instanceof Recipe) {
|
|
return;
|
|
}
|
|
|
|
$trail->parent('back.recipes.index');
|
|
$trail->push(
|
|
$recipe->name ?? Str::ucfirst(trans('uwil-backend::crud.actions.edit')),
|
|
route('back.recipes.edit', $recipe)
|
|
);
|
|
});
|
|
|
|
Breadcrumbs::for('back.recipes.trash', function (Generator $trail) {
|
|
$trail->parent('back.recipes.index');
|
|
$trail->push(Str::ucfirst(trans('uwil-backend::back.archives')));
|
|
});
|