aw codes icon logo
Docs Hub

Search across every project.

Quick Create Switch project

Plugin for Filament Admin that adds a dropdown menu to the header to quickly create new items.

5.x Current

On this page

Behavior

Keyboard shortcuts

keyBindings() opens the dropdown from the keyboard. Pass one binding or several:

use Awcodes\QuickCreate\QuickCreatePlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            QuickCreatePlugin::make()
                ->keyBindings(['command+shift+a', 'ctrl+shift+a']),
        ]);
}

Bindings are written as modifier+key, and every one in the array triggers the same dropdown — the pair above is the usual way to cover macOS and Windows or Linux with one configuration.

Shortcuts are registered globally on the page, so they fire wherever focus is. Choose combinations that the browser and the operating system do not already claim.

Moving the button

Quick Create renders through Filament's render hook system, at panels::user-menu.before by default. renderUsingHook() moves it anywhere else a panel render hook exists:

use Awcodes\QuickCreate\QuickCreatePlugin;
use Filament\View\PanelsRenderHook;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            QuickCreatePlugin::make()
                ->renderUsingHook(PanelsRenderHook::SIDEBAR_NAV_END),
        ]);
}

Constants on Filament\View\PanelsRenderHook are the safest way to name a hook; the available hooks are listed in Filament's own render hooks documentation.

Hiding the menu

The button appears whenever there is at least one resource to show. hidden() suppresses it regardless:

QuickCreatePlugin::make()
    ->hidden()

A closure makes it conditional, which is the more useful form — hiding the shortcut during onboarding, for instance, or from users part-way through a setup flow:

QuickCreatePlugin::make()
    ->hidden(fn () => Filament::getTenant()->requiresOnboarding())

This hides the button only. It is a presentation choice, not an authorization boundary — creating records is still governed by each resource's own policy, which Quick Create already respects when building the menu.