114 lines
4.5 KiB
PHP
114 lines
4.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Dto\OrderDto;
|
|
use App\Dto\PageDto;
|
|
use App\Models\Order;
|
|
use App\Models\Page;
|
|
use App\Models\Product;
|
|
use Diglactic\Breadcrumbs\Breadcrumbs;
|
|
use Diglactic\Breadcrumbs\Generator;
|
|
use Illuminate\Auth\Events\Login;
|
|
|
|
// * HOME
|
|
Breadcrumbs::for('fo.pages.home', function (Generator $trail): void {
|
|
$trail->push(trans('Home'), route('fo.pages.home'));
|
|
});
|
|
|
|
// * PAGES
|
|
Breadcrumbs::for('fo.pages.contact', function (Generator $trail, Page | PageDto $page): void {
|
|
$trail->parent('fo.pages.home');
|
|
$trail->push($page->title, route('fo.pages.contact'));
|
|
});
|
|
Breadcrumbs::for('fo.pages.legal-notice', function (Generator $trail, Page | PageDto $page): void {
|
|
$trail->parent('fo.pages.home');
|
|
$trail->push($page->title, route('fo.pages.legal-notice'));
|
|
});
|
|
Breadcrumbs::for('fo.pages.privacy', function (Generator $trail, Page | PageDto $page): void {
|
|
$trail->parent('fo.pages.home');
|
|
$trail->push($page->title, route('fo.pages.privacy'));
|
|
});
|
|
Breadcrumbs::for('fo.pages.faq', function (Generator $trail, Page | PageDto $page): void {
|
|
$trail->parent('fo.pages.home');
|
|
$trail->push($page->title, route('fo.pages.faq'));
|
|
});
|
|
Breadcrumbs::for('fo.pages.terms', function (Generator $trail, Page | PageDto $page): void {
|
|
$trail->parent('fo.pages.home');
|
|
$trail->push($page->title, route('fo.pages.terms'));
|
|
});
|
|
|
|
// * PRODUCTS
|
|
Breadcrumbs::for('fo.products.index', function (Generator $trail): void {
|
|
$trail->parent('fo.pages.home');
|
|
$trail->push(trans('All aisles'), route('fo.products.index'));
|
|
});
|
|
Breadcrumbs::for('fo.ranges.show', function (Generator $trail, Product $product): void {
|
|
$trail->parent('fo.products.index');
|
|
$trail->push(
|
|
str($product->range->name)->title()->value(),
|
|
route('fo.products.index', ['ranges[]' => $product->range->id])
|
|
);
|
|
});
|
|
Breadcrumbs::for('fo.products.show', function (Generator $trail, Product $product): void {
|
|
$trail->parent('fo.ranges.show', $product);
|
|
$trail->push($product->name, route('fo.products.show', $product));
|
|
});
|
|
|
|
// * ACCOUNT
|
|
Breadcrumbs::for('fo.account.dashboard', function (Generator $trail): void {
|
|
$trail->parent('fo.pages.home');
|
|
$trail->push(trans('My Account'), route('fo.account.dashboard'));
|
|
});
|
|
// * -- INFOS
|
|
Breadcrumbs::for('fo.account.edit.infos.show', function (Generator $trail): void {
|
|
$trail->parent('fo.account.dashboard');
|
|
$trail->push(trans('My details'), route('fo.account.edit.infos.show'));
|
|
});
|
|
// * -- SECURITY
|
|
Breadcrumbs::for('fo.account.edit.password.show', function (Generator $trail): void {
|
|
$trail->parent('fo.account.dashboard');
|
|
$trail->push(trans('Password'), route('fo.account.edit.password.show'));
|
|
});
|
|
// * -- ORDERS
|
|
Breadcrumbs::for('fo.account.orders.index', function (Generator $trail): void {
|
|
$trail->parent('fo.account.dashboard');
|
|
$trail->push(trans('My Orders'), route('fo.account.orders.index'));
|
|
});
|
|
Breadcrumbs::for('fo.account.orders.show', function (Generator $trail, Order | OrderDto $order): void {
|
|
$trail->parent('fo.account.orders.index');
|
|
$trail->push(
|
|
trans('Order detail of :date', ['date' => $order->created_at->isoFormat('ddd DD/MM/YY')]),
|
|
route('fo.account.orders.show', $order)
|
|
);
|
|
});
|
|
|
|
// * AUTH / REGISTER
|
|
Breadcrumbs::for(Login::class, function (Generator $trail): void {
|
|
$trail->parent('fo.pages.home');
|
|
$trail->push(trans('Login'), route(Login::class));
|
|
});
|
|
Breadcrumbs::for('fo.auth.connexion', function (Generator $trail): void {
|
|
$trail->parent('fo.pages.home');
|
|
$trail->push(trans('Login'), route('fo.auth.connexion'));
|
|
});
|
|
Breadcrumbs::for('fo.auth.register', function (Generator $trail): void {
|
|
$trail->parent('fo.pages.home');
|
|
$trail->push(trans('Register'), route('fo.auth.register'));
|
|
});
|
|
Breadcrumbs::for('fo.auth.register.post', function (Generator $trail): void {
|
|
$trail->parent('fo.pages.home');
|
|
$trail->push(trans('Register'), route('fo.auth.register.post'));
|
|
});
|
|
Breadcrumbs::for('fo.auth.activer', function (Generator $trail): void {
|
|
$trail->parent('fo.pages.home');
|
|
$trail->push(trans('Register'), route('fo.auth.verification.verify'));
|
|
});
|
|
Breadcrumbs::for('fo.auth.ask-reset-password', function (Generator $trail): void {
|
|
$trail->parent('fo.pages.home');
|
|
$trail->push(trans('Forgot Your Password?'), route('fo.auth.ask-reset-password'));
|
|
});
|
|
Breadcrumbs::for('fo.auth.reset-password', function (Generator $trail): void {
|
|
$trail->parent('fo.pages.home');
|
|
$trail->push(trans('Reset Password'));
|
|
});
|