Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Actionable Column

Actionable Column Laravel Package

shreejan/actionable-column

View on GitHub
Deep Wiki
Context7

Interactive table column with clickable actions for Filament v4 and v5

Frequently asked questions about Actionable Column
How do I add clickable actions to a Filament table column without breaking existing functionality?
Use `ActionableColumn::make()` as a direct replacement for standard columns (e.g., `TextColumn`). It extends Filament’s native column system, so it integrates with your existing table setup without overriding core logic. For example, replace `TextColumn::make('status')` with `ActionableColumn::make('status')->tapAction(...)` to add actions while keeping all other column behavior intact.
Does this package work with Filament v5’s new action system (e.g., `Action::make()` with closures)?
Yes, it fully supports Filament v5’s action system, including closures, dynamic URLs, and conditional visibility. The package reuses Filament’s native `Action` classes, so any action you define in v5 (e.g., `Action::make()->modal()`) will work seamlessly with `ActionableColumn`. Tested with both v4 and v5’s action contracts.
Can I customize the styling of action buttons or badges to match my Filament admin panel’s theme?
Absolutely. The package provides methods like `color('success')`, `actionIconColor('warning')`, and `clickableColumn()` for visual customization. For deeper theming, override default styles via `ACTIONABLE_COLUMN_CUSTOM_CSS_PATH` in your config or publish the package’s CSS assets. It supports Filament’s dark mode and custom themes out of the box.
What Laravel versions are supported, and are there any PHP version requirements?
The package requires **Laravel 9+** (due to Filament v4/v5 dependencies) and **PHP 8.1+** for type safety (e.g., Heroicon enums). It leverages Laravel’s service container and Filament’s architecture, so no additional Laravel-specific configurations are needed beyond the standard Filament setup.
How do I handle empty tables with an ‘+ Add’ button like in Filament’s default tables?
Use the `emptyStateAction()` method to define a button for empty tables. For example, `ActionableColumn::make('items')->emptyStateAction(Action::make('createItem')->label('+ Add'))`. The package automatically detects empty states (via `count()` or `whereNull()`) and renders the button only when needed, matching Filament’s native behavior.
Will this package break when Filament v6 is released, or do I need to vendorize it?
The package is explicitly tied to Filament v4/v5’s architecture, so upgrades to v6 may require updates from the author or vendorization. Monitor Filament’s roadmap and test early if you’re planning a v6 migration. The low-coupling design means vendorizing is straightforward—just copy the `src/` directory into your project and update the namespace.
Can I use custom actions with dynamic URLs or conditional visibility in ActionableColumn?
Yes, the package supports all Filament action features, including dynamic URLs (e.g., `->url(fn ($record) => route('edit', $record))`) and conditional visibility (e.g., `->visible(fn ($record) => $record->status === 'pending')`). Ensure your custom actions adhere to Filament’s contract (e.g., implement `label()`, `action()`, and `visible()` methods) to avoid runtime errors.
How do I test ActionableColumn in my CI pipeline or local development?
Test the column in isolation by creating a minimal Filament table resource with a single `ActionableColumn`. Use Filament’s built-in testing helpers (e.g., `assertTableHasColumn()`) and Laravel’s HTTP tests to verify actions, badges, and empty states. For edge cases, mock Filament’s action system with `partialMock()` to simulate custom actions without full setup.
Are there performance concerns with large datasets (e.g., 10,000+ rows) in Filament tables?
No, the package adds minimal runtime overhead—it renders as standard HTML/CSS with event listeners. For large datasets, rely on Filament’s built-in pagination or virtual scrolling (e.g., `->paginate(100)`). The package doesn’t introduce N+1 queries or heavy JavaScript; all action logic is server-side and reusable.
What alternatives exist for adding actions to Filament tables, and why choose this package?
Alternatives include manually adding `Action` buttons via `Table::modify()` or using Filament’s `ActionGroup` in table headers. However, this package provides a **column-native solution** with badge/text modes, empty-state buttons, and seamless integration with Filament’s design system. It reduces boilerplate compared to custom implementations while maintaining type safety and IDE support.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor