• Stars
    star
    63
  • Rank 484,938 (Top 10 %)
  • Language
    PHP
  • License
    MIT License
  • Created almost 3 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A collection of reusable components for Filament.

laravel-filament-components

A collection of reusable components for Filament.

This package is a collection of handy components for you to use in all your Filament projects. It provides handy components that can be used in almost any project, like sidebars, timestamps & more.

PRs are welcome, so if you've made a handy component yourself, feel free to send a pull request!

Installation

You can install the package via composer:

composer require ralphjsmit/laravel-filament-components

Usage

Currently, the following components are available:

  1. Sidebar
  2. Timestamps
  3. UpdatedAt
  4. CreatedAt
  5. DeletedAt
  6. Timestamp

Sidebar

You can use the Sidebar component to split the form into two distinct sections, like a sidebar:

use RalphJSmit\Filament\Components\Forms\Sidebar;

Sidebar::make()->schema([
    // Components for the main section here
],[
    // Components for the sidebar section here
])->getSchema()[0]

If you're using it in the Admin panel, you can directly return the Sidebar component from the form() in your resource:

use Filament\Forms\Components\Card;
use Filament\Forms\Components\TextInput;
use Filament\Resources\Form;
use RalphJSmit\Filament\Components\Forms\Timestamps;
use RalphJSmit\Filament\Components\Forms\Sidebar;

public static function form(Form $form): Form
{
    return Sidebar::make($form)->schema([
        Card::make([
            TextInput::make('title')->label('Title'),
            // ...
        ]),
        // ...
    ], [
        Card::make([
            ...Timestamps::make(),
            // ...
        ]),
        // ...
    ]);
}

Sidebars work very nicely with the card component to define distinct and easily scannable sections in your interface.

Timestamps

Use the Timestamps component to display a 'Created at' and 'Updated at' timestamp for your record:

use RalphJSmit\Filament\Components\Forms\Timestamps;

return $form->schema([
    ...Timestamps::make(),
    //
]);

The Timestamps component returns an array with the CreatedAt and UpdatedAt components below, so you should use array spreading like in the example to merge the components into your own array.

CreatedAt

Use the CreatedAt component to display the created_at timestamp for your record:

use RalphJSmit\Filament\Components\Forms\CreatedAt;

return $form->schema([
    CreatedAt::make(),
    //
]);

UpdatedAt

Use the UpdatedAt component to display the updated_at timestamp for your record:

use RalphJSmit\Filament\Components\Forms\UpdatedAt;

return $form->schema([
    UpdatedAt::make(),
    //
]);

DeletedAt

Use the DeletedAt component to display the deleted_at timestamp for your soft-delete record:

use RalphJSmit\Filament\Components\Forms\DeletedAt;

return $form->schema([
    DeletedAt::make(),
    //
]);

Timestamp

Use the Timestamp component to display a custom timestamp for your record. Internally, all of the above timestamps use this component.

use RalphJSmit\Filament\Components\Forms\Timestamp;

return $form->schema([
    Timestamp::make('email_verified_at'),
    //
]);

General

🐞 If you spot a bug, please submit a detailed issue and I'll try to fix it as soon as possible.

πŸ” If you discover a vulnerability, please review our security policy.

πŸ™Œ If you want to contribute, please submit a pull request. All PRs will be fully credited. If you're unsure whether I'd accept your idea, feel free to contact me!

πŸ™‹β€β™‚οΈ Ralph J. Smit