Releases: camya/filament-import-inline
Releases · camya/filament-import-inline
v0.5.1
What's Changed
- Laravel 10 compatibility updates.
About
This package for FilamentPHP adds the form component ImportInlineInput
, which allows you to import machine-readable string data directly into your Filament form fields and validate its structure.
ImportInlineInput::make('Import')
->afterStateUpdated(
function ($state, Closure $set, ImportInlineInput $component): void {
$validator = $component->validator();
try {
$importedData = Import::jsonString($state);
} catch (\Exception $e) {
$validator->setValidationError($e->getMessage());
}
$validatedData = $validator->validate(
data: $importedData,
rules: [
'title' => [
'required',
],
'slug' => [
'required',
],
'content' => [
'required',
],
],
messages: [
'title.required' => 'title is required',
'slug.required' => 'slug is required',
'content.required' => 'content is required',
]
);
$set('title', $validatedData['title']);
$set('slug', $validatedData['slug']);
$set('content', $validatedData['content']);
$component->statusMessage('Data imported <strong>successful!</strong>');
}
)
->dataHelperHtml('Example JSON: {"title":"Lorem","slug":"ipsum","content":"Hello"}')
->dataHelperLink('https://www.camya.com/', 'Help')
v0.5.0 - Initial release
What's Changed
- Initial release
About
This package for FilamentPHP adds the form component ImportInlineInput
, which allows you to import machine-readable string data directly into your Filament form fields and validate its structure.
ImportInlineInput::make('Import')
->afterStateUpdated(
function ($state, Closure $set, ImportInlineInput $component): void {
$validator = $component->validator();
try {
$importedData = Import::jsonString($state);
} catch (\Exception $e) {
$validator->setValidationError($e->getMessage());
}
$validatedData = $validator->validate(
data: $importedData,
rules: [
'title' => [
'required',
],
'slug' => [
'required',
],
'content' => [
'required',
],
],
messages: [
'title.required' => 'title is required',
'slug.required' => 'slug is required',
'content.required' => 'content is required',
]
);
$set('title', $validatedData['title']);
$set('slug', $validatedData['slug']);
$set('content', $validatedData['content']);
$component->statusMessage('Data imported <strong>successful!</strong>');
}
)
->dataHelperHtml('Example JSON: {"title":"Lorem","slug":"ipsum","content":"Hello"}')
->dataHelperLink('https://www.camya.com/', 'Help')