Files
ntspi-app/app/Filament/Components/Forms/ItemForm/Blocks/VideoBlock.php
T
F4ilji c01016a154 Migrate backend to Porto architecture and fix minor bugs
- Fully transitioned the backend to the Porto architectural pattern
- Improved code organization and maintainability
- Fixed minor bugs and inconsistencies
2025-05-12 08:47:43 +05:00

46 lines
1.6 KiB
PHP

<?php
namespace App\Filament\Components\Forms\ItemForm\Blocks;
use Filament\Forms\Components\FileUpload;
use Filament\Forms\Components\TextInput;
class VideoBlock implements BlockSchema
{
public static function schema(): array
{
return [
TextInput::make('mime')
->label('Тип видео')
->readOnly()
->helperText('Определяется автоматически'),
TextInput::make('title')
->label('Название видео')
->placeholder('Введите название видео')
->required()
->maxLength(255)
->autofocus()
->helperText('Это название будет отображаться перед видео'),
FileUpload::make('path')
->label('Видеофайл')
->required()
->acceptedFileTypes([
'video/mp4',
'video/quicktime',
'video/x-msvideo',
'video/x-ms-wmv',
'video/avi',
'video/webm',
'video/ogg',
'video/3gpp',
'video/3gpp2',
'video/x-m4v',
])
->disk('public')
->directory('videos')
->helperText('Поддерживаются популярные видеоформаты (MP4, MOV, AVI и др.)')
->afterStateUpdated(fn (callable $set, $state) => $set('mime', $state?->getMimeType())),
];
}
}