-
Notifications
You must be signed in to change notification settings - Fork 43
Expand file tree
/
Copy pathPasteFoxSharePlugin.php
More file actions
66 lines (56 loc) · 1.81 KB
/
PasteFoxSharePlugin.php
File metadata and controls
66 lines (56 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
namespace FlexKleks\PasteFoxShare;
use App\Contracts\Plugins\HasPluginSettings;
use App\Traits\EnvironmentWriterTrait;
use Filament\Contracts\Plugin;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Notifications\Notification;
use Filament\Panel;
class PasteFoxSharePlugin implements HasPluginSettings, Plugin
{
use EnvironmentWriterTrait;
public function getId(): string
{
return 'pastefox-share';
}
public function register(Panel $panel): void
{
$id = str($panel->getId())->title();
$panel->discoverPages(
plugin_path($this->getId(), "src/Filament/$id/Pages"),
"FlexKleks\\PasteFoxShare\\Filament\\$id\\Pages"
);
}
public function boot(Panel $panel): void {}
public function getSettingsForm(): array
{
return [
TextInput::make('api_key')
->label('API Key')
->password()
->revealable()
->required()
->helperText('Get your API key from https://pastefox.com/dashboard')
->default(fn () => config('pastefox-share.api_key')),
Select::make('visibility')
->label('Default Visibility')
->options([
'PUBLIC' => 'Public',
'PRIVATE' => 'Private',
])
->default(fn () => config('pastefox-share.visibility', 'PUBLIC')),
];
}
public function saveSettings(array $data): void
{
$this->writeToEnvironment([
'PASTEFOX_API_KEY' => $data['api_key'],
'PASTEFOX_VISIBILITY' => $data['visibility'],
]);
Notification::make()
->title('Settings saved')
->success()
->send();
}
}