filament-import-inline

"Import Inline Input" - Directly paste, import, and validate machine readable data in form fields. (PHP / Laravel / Livewire)

MIT License

Downloads
706
Stars
18
Committers
1

Bot releases are visible (Hide)

filament-import-inline - v0.5.1 Latest Release

Published by camya over 1 year ago

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')
filament-import-inline - v0.5.0 - Initial release

Published by camya almost 2 years ago

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')
Package Rankings
Top 25.32% on Packagist.org
Badges
Extracted from project README
Video
Related Projects