Repeater::make('complaintDetails')
->label('Order Items')
->relationship('complaintDetails')
->schema([
Select::make('reason')
->options([
'Missing from delivery' => 'Missing from delivery',
'Damaged product' => 'Damaged product',
'Wrong item' => 'Wrong item',
'Other' => 'Other',
])
->required()
->placeholder('Select a Reason')
->disableOptionsWhenSelectedInSiblingRepeaterItems()
->native(false),
TextInput::make('other_reason_text')
->hidden(fn (Get $get) => $get('reason') !== 'Other')
->nullable()
->maxLength(255),
Select::make('user_order_item_ids')
->multiple()
->relationship('userOrderItems', 'product_name', function (Builder $query, Get $get) {
$userOrderId = $get('../../user_order_id');
if ($userOrderId) {
$query->where('user_order_id', $userOrderId);
} else {
$query->whereRaw('1 = 0');
}
})
->placeholder('Select an Order Item')
->searchable()
->preload(),
])
->grid(3)
->columnSpanFull(),
Repeater::make('complaintDetails')
->label('Order Items')
->relationship('complaintDetails')
->schema([
Select::make('reason')
->options([
'Missing from delivery' => 'Missing from delivery',
'Damaged product' => 'Damaged product',
'Wrong item' => 'Wrong item',
'Other' => 'Other',
])
->required()
->placeholder('Select a Reason')
->disableOptionsWhenSelectedInSiblingRepeaterItems()
->native(false),
TextInput::make('other_reason_text')
->hidden(fn (Get $get) => $get('reason') !== 'Other')
->nullable()
->maxLength(255),
Select::make('user_order_item_ids')
->multiple()
->relationship('userOrderItems', 'product_name', function (Builder $query, Get $get) {
$userOrderId = $get('../../user_order_id');
if ($userOrderId) {
$query->where('user_order_id', $userOrderId);
} else {
$query->whereRaw('1 = 0');
}
})
->placeholder('Select an Order Item')
->searchable()
->preload(),
])
->grid(3)
->columnSpanFull(),