PHP code example of vitisstudio / filament-header-schema
1. Go to this page and download the library: Download vitisstudio/filament-header-schema library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
vitisstudio / filament-header-schema example snippets
use Filament\Infolists\Components\TextEntry;
use Filament\Resources\Pages\ViewRecord;
use Filament\Schemas\Components\Flex;
use Filament\Schemas\Schema;
use VitisStudio\FilamentHeaderSchema\Components\HeaderSection;
use VitisStudio\FilamentHeaderSchema\Components\Heading;
use VitisStudio\FilamentHeaderSchema\Components\Subheading;
use VitisStudio\FilamentHeaderSchema\Concerns\HasHeaderSchema;
class ViewOrder extends ViewRecord
{
use HasHeaderSchema;
protected static string $resource = OrderResource::class;
public function headerSchema(Schema $schema): Schema
{
return $schema->components([
HeaderSection::make([
Heading::make('customer_name'),
Flex::make([
TextEntry::make('status')->badge()->hiddenLabel(),
TextEntry::make('reference')->hiddenLabel(),
]),
Subheading::make('summary'),
])
->leading(ImageEntry::make('customer_avatar')->circular()->hiddenLabel())
->trailing(TextEntry::make('total')->money()->hiddenLabel()),
]);
}
}
namespace App\Filament\Resources\Orders\Schemas;
use Filament\Schemas\Schema;
use VitisStudio\FilamentHeaderSchema\Components\HeaderSection;
use VitisStudio\FilamentHeaderSchema\Components\Heading;
class OrderHeader
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
HeaderSection::make([
Heading::make('reference')
->default(fn ($livewire) => $livewire->getHeading()),
//
]),
]);
}
}
use Filament\Actions\Action;
use Filament\Schemas\Components\Flex;
use Filament\Support\Icons\Heroicon;
use VitisStudio\FilamentHeaderSchema\Concerns\HasHeaderSchema;
class ViewCustomer extends ViewRecord
{
use HasHeaderSchema;
public function headerSchema(Schema $schema): Schema
{
return $schema->components([
HeaderSection::make([
Flex::make([
Heading::make('name')->grow(false),
Action::make('favorite')
->iconButton()
->icon(fn (Customer $record): Heroicon => $record->is_priority ? Heroicon::Star : Heroicon::OutlinedStar)
->color(fn (Customer $record): string => $record->is_priority ? 'warning' : 'gray')
->tooltip(fn (Customer $record): string => $record->is_priority ? 'Unfavorite' : 'Favorite')
->action(fn (Customer $record) => $record->update(['is_priority' => ! $record->is_priority])),
])->verticallyAlignCenter(),
Subheading::make('email'),
]),
]);
}
}
public function getHeader(): ?View
{
return view('orders.header', ['record' => $this->getRecord()]);
}