simedkom/app/Filament/Pages/Settings/ManageSocialMediaSettings.php

86 lines
3.3 KiB
PHP

<?php
namespace App\Filament\Pages\Settings;
use App\Filament\Support\CheerfulNotification;
use App\Settings\SocialMediaSettings;
use BackedEnum;
use BezhanSalleh\FilamentShield\Traits\HasPageShield;
use Filament\Forms\Components\TextInput;
use Filament\Notifications\Notification;
use Filament\Pages\SettingsPage;
use Filament\Schemas\Components\Grid;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use UnitEnum;
class ManageSocialMediaSettings extends SettingsPage
{
use HasPageShield;
protected static string|UnitEnum|null $navigationGroup = 'Pengaturan';
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedShare;
protected static ?string $navigationLabel = 'Media Sosial';
protected static ?int $navigationSort = 2;
protected static string $settings = SocialMediaSettings::class;
public function getTitle(): string
{
return CheerfulNotification::getMessage('Media Sosial 🔗✨', 'Media Sosial');
}
public function getSubheading(): ?string
{
return CheerfulNotification::getMessage('Hubungkan semua kanal media sosial kita agar jangkauan informasi makin luas! 🔗🌐', 'Halaman ini digunakan untuk mengelola tautan media sosial resmi.');
}
public function form(Schema $schema): Schema
{
return $schema
->components([
Section::make(fn () => CheerfulNotification::getMessage('Link Media Sosial 🔗✨', 'Tautan Media Sosial'))
->description(fn () => CheerfulNotification::getMessage('Hubungkan semua media sosial resmi kita di sini untuk menjangkau lebih banyak orang! 🌐🤩', 'Silakan masukkan tautan media sosial resmi perusahaan pada bagian ini.'))
->schema([
Grid::make(2)
->schema([
TextInput::make('facebook')
->label('Facebook')
->placeholder('https://facebook.com/username')
->autofocus()
->autocomplete(false)
->url(),
TextInput::make('twitter')
->label('Twitter')
->placeholder('https://twitter.com/username')
->autocomplete(false)
->url(),
TextInput::make('instagram')
->label('Instagram')
->placeholder('https://instagram.com/username')
->autocomplete(false)
->url(),
TextInput::make('youtube')
->label('YouTube')
->placeholder('https://youtube.com/username')
->autocomplete(false)
->url(),
]),
])
->columnSpanFull(),
]);
}
public function getSavedNotification(): ?Notification
{
return CheerfulNotification::update();
}
}