ldc-boutique-cnc-sable/routes/breadcrumbs-fo.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'));
});