You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a dynamic Tabs component which will generate Tab base on db query. Inside the Tab there's a form structure which only differentiated based on the value one of the input field material_usage_id. This MaterialUsage value is defined by a checkbox value (is_total).
The problem was when the checkbox is unchecked the new Tab is generated but the Repeater displayed with null item. Different from the previous option (if checked) where 1 item appears on each tab.
Code
class InventorySvac11Resource extends Resource
{
protected static ?string $model = InventorySvac11::class;
protected static ?string $navigationIcon = 'bi-fuel-pump';
public static function form(Form $form): Form
{
return $form
->schema([
/* TODO: When is_total is unchecked on create, the repeater item is null AND is still able to save */
Forms\Components\Section::make()
->schema([
Forms\Components\Hidden::make('id'), // Ensure the ID field is included
Forms\Components\Checkbox::make('is_total')
->visibleOn('create')
->label('We measure the volume of mobile and stationary combustion sources')
->live()
/* default() value on view/edit is created by mutateFormDataBeforeFill() function on EditInventorySvac11.php */
->default(true),
Forms\Components\Tabs::make('Fuels Tabs')
->tabs(function (Forms\Get $get) {
// Get the value of the 'is_total' checkbox
$isTotal = $get('is_total');
// Log::debug('is_total: ' . $isTotal);
// Define the classifications
$filter = $isTotal ?? true
? ['MOBILE-FUELS', 'STATIONARY-FUELS'] // Classification 1: Mobile and Stationary Fuels
: ['TOTAL-FUELS']; // Classification 2: Total Fuels
// Query MaterialUsage based on the classification
return MaterialUsage::whereIn('code', $filter)
->get()
->map(function ($usage) {
Log::debug('Tab usage: ' . $usage);
return Forms\Components\Tabs\Tab::make($usage->name)
->schema([
Forms\Components\Repeater::make($usage->name . ' Consumptions')
->label($usage->name . ' Consumptions')
->defaultItems(1)
->relationship('svac11Fuels', function (Builder $query) use ($usage) {
return $query->where('material_usage_id', $usage->id);
})
->dehydrated() // put after relationship()
->columns(3)
->minItems(1)
->schema([
Forms\Components\Hidden::make('material_usage_id')
->default(fn() => $usage->id),
Forms\Components\TextInput::make('consumption')
->label('Consumption')
->required()
->numeric()
->regex('/^(?!0(\.0+)?$)\d{1,8}(\.\d+)?$/')
->validationMessages([
'regex' => 'The :attribute value and field format is invalid.',
])
->extraAttributes(['step' => '0.01', 'inputmode' => 'decimal'])
->formatStateUsing(fn($state) => $state ? number_format((float) $state, 2, '.', '') : null),
]),
]);
})->toArray();
})
->columnSpanFull(),
]),
]);
}
}
Expected behavior
When is_total checkbox is unchecked, the generated Tab appears and having minimum 1 item inside Repeater.
Steps to reproduce
Default is_total checkbox is true and two tabs are generated with 1 item inside Repeater
When unchecked the new Tab ("Total") is generated but with null item (of Repeater). Hence we should click "Add item" of repeater to add a new item.
Reproduction repository (issue will be closed if this is not valid)
Package
filament/filament
Package Version
v3.2.135
Laravel Version
v11.40.0
Livewire Version
No response
PHP Version
v8.3.6
Problem description
I have a dynamic Tabs component which will generate Tab base on db query. Inside the Tab there's a form structure which only differentiated based on the value one of the input field material_usage_id. This MaterialUsage value is defined by a checkbox value (is_total).
The problem was when the checkbox is unchecked the new Tab is generated but the Repeater displayed with null item. Different from the previous option (if checked) where 1 item appears on each tab.
Code
Expected behavior
When is_total checkbox is unchecked, the generated Tab appears and having minimum 1 item inside Repeater.
Steps to reproduce
Reproduction repository (issue will be closed if this is not valid)
https://github.com/billydekid/bwcarbon
Relevant log output
The text was updated successfully, but these errors were encountered: