<?php
class CustomFileUpload extends FileUpload
{
protected function setUp(): void
{
parent::setUp();
$this->afterStateHydrated(function (BaseFileUpload $component, string|array|null $state): void {
$path = ...
$component->state([((string) Str::uuid()) => $path]);
});
$this->deleteUploadedFileUsing(function ($file) {
// delete here
});
$this->afterStateUpdated(function (BaseFileUpload $component, $state) {
if ($state instanceof TemporaryUploadedFile) {
// upload via api
}
if (blank($state)) {
return;
}
if (is_array($state)) {
return;
}
$component->state([(string) Str::uuid() => $state]);
});
$this->getUploadedFileUsing(static function (BaseFileUpload $component, string $file, string|array|null $storedFileNames): ?array {
$url = ...
$file = ...
return [
'name' => basename($file),
'size' => $shouldFetchFileInformation ? $storage->size($file) : 0,
'type' => $shouldFetchFileInformation ? $storage->mimeType($file) : null,
'url' => $url,
];
});
}
}
<?php
class CustomFileUpload extends FileUpload
{
protected function setUp(): void
{
parent::setUp();
$this->afterStateHydrated(function (BaseFileUpload $component, string|array|null $state): void {
$path = ...
$component->state([((string) Str::uuid()) => $path]);
});
$this->deleteUploadedFileUsing(function ($file) {
// delete here
});
$this->afterStateUpdated(function (BaseFileUpload $component, $state) {
if ($state instanceof TemporaryUploadedFile) {
// upload via api
}
if (blank($state)) {
return;
}
if (is_array($state)) {
return;
}
$component->state([(string) Str::uuid() => $state]);
});
$this->getUploadedFileUsing(static function (BaseFileUpload $component, string $file, string|array|null $storedFileNames): ?array {
$url = ...
$file = ...
return [
'name' => basename($file),
'size' => $shouldFetchFileInformation ? $storage->size($file) : 0,
'type' => $shouldFetchFileInformation ? $storage->mimeType($file) : null,
'url' => $url,
];
});
}
}