benjaminhansen/filament-draftable

Provides a draftable interface to save long forms as a draft in a browser cookie.

v1.0.1.1 2025-04-29 05:37 UTC

This package is auto-updated.

Last update: 2025-04-29 05:37:58 UTC


README

Installation

Install the package via composer:

composer require benjaminhansen/filament-draftable

Usage

<?php

namespace App\Filament\Resources\PostResource\Pages;

use BenjaminHansen\FilamentDraftable\Traits\Draftable;
use Filament\Resources\Pages\CreateRecord;

class CreatePost extends CreateRecord
{
    use Draftable;

    // add exclusions to this array to prevent them from being saved in the draft
    public ?array $excludeFromDraft = ['password'];

    // set how long the cookie should be valid for
    public ?int $saveDraftFor = 3600;

    // add/modify this method
    protected function getFormActions(): array
    {
        return [
            // load the existing/default form actions
            ...parent::getFormActions(),

            // append the draftable actions
            // we can use all of Filament's Action methods to customize the draftable actions
            $this->saveDraftAction(),
                // ->icon('')
                // ->label('')

            $this->loadDraftAction(),
                // ->icon('')
                // ->label('')
        ]
    }
}