class CustomerReview extends BasePage
{
protected static string $view = 'filament.pages.customer-review';
protected static ?string $model = LineItem::class;
public LineItem $record;
public array $settings;
public function mount(
AppSettings $settings,
int $lineItem,
): void
{
$this->record = static::$model::find($lineItem);
$this->settings = $settings->toArray();
}
/**
* @param Form $form
* @return Form
*/
public function form(Form $form): Form
{
$formComponents = [];
foreach ($this->record->postOrderRequests as $postOrderRequest) {
$request = $postOrderRequest->request;
if (!$request->workflow->terminated) {
if ($request->type === 'need_picture_request') {
$formComponents[] = Forms\Components\Repeater::make('request-' . $postOrderRequest->id)
->schema([
Forms\Components\FileUpload::make('image')
->label(__('request-builder.post_request.message'))
->disk('s3')
->image()
->required(),
Forms\Components\Textarea::make('response')
->label(__('request-builder.post_request.message'))
->rows(8)
->required(),
])
->minItems(1)
->columns(2)
->maxItems(3);
} else {
$formComponents[] = Forms\Components\TextInput::make('response-' . $postOrderRequest->id)
->required();
}
}
}
return $form
->schema($formComponents);
}
}