oriondevelops/filament-feedback

A Filament plugin to collect feedback.
32 3
Install
composer require oriondevelops/filament-feedback
Latest Version:v0.1.0
PHP:^8.1
License:MIT
Last Updated:Aug 18, 2024
Links: GitHub  ·  Packagist
Maintainer: oriondevelops

A Filament plugin to collect feedback

Latest Version on Packagist Total Downloads

This Filament plugin is a simple wizard that collects user feedback and forwards it to the chosen email address.

Installation

You can install the package via composer:

composer require oriondevelops/filament-feedback

Next ensure you setup a mail service.

Usage

You need to register the plugin with your preferred Filament panel providers. This can be done inside of your PanelProvider, e.g. AdminPanelProvider.

<?php

namespace App\Providers\Filament;

use Filament\Panel;
use Filament\PanelProvider;
use Orion\FilamentFeedback\FeedbackPlugin;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            // ...
            ->plugin(
                FeedbackPlugin::make()
                    ->sendResponsesTo(email: 'oriondevelops@gmail.com')
            );
    }
}

You can now click on the "Feedback" menu item in your Filament app to see the feedback plugin.

Customizing visibility

Define who can view the feedback page.

<?php

namespace App\Providers\Filament;

use Filament\Panel;
use Filament\PanelProvider;
use Orion\FilamentFeedback\FeedbackPlugin;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            // ...
            ->plugin(
                FeedbackPlugin::make()
                    ->visible(fn() => auth()->user()->can('view feedback page'))
            );
    }
}

Customizing the navigation item

<?php

namespace App\Providers\Filament;

use Filament\Panel;
use Filament\PanelProvider;
use Orion\FilamentFeedback\FeedbackPlugin;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            // ...
            ->plugin(
                FeedbackPlugin::make()
                    ->slug('feedback')
                    ->label('Feedback')
                    ->icon('heroicon-o-face-smile')
                    ->group('Help')
                    ->sort(3),
            );
    }
}

Customizing the page

<?php

namespace App\Providers\Filament;

use Filament\Panel;
use Filament\PanelProvider;
use Orion\FilamentFeedback\FeedbackPlugin;
use App\Filament\Pages\ExtendedFeedbackPage;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            // ...
            ->plugin(
                FeedbackPlugin::make()
                    ->page(ExtendedFeedbackPage::class),
            );
    }
}

Contributing

Please see CONTRIBUTING for details.

Security

Please review Security Policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

Related Packages

martinpetricko/filament-sentry-feedback

FilamentPHP package that integrates Sentry User Feedback

15,123 9
oriondevelops/filament-greeter

A Filament plugin to greet your users.

15,701 13
coddin-web/filament-userback-plugin

Userback integration plugin for Filament

2,145 3
oriondevelops/filament-backup

A Filament plugin to backup your app.

258 5
pxlrbt/filament-excel

Supercharged Excel exports for Filament Resources

2,683,966 457