forget(['selected_plant', 'selected_line', 'production_order']); $this->filtersForm->fill([ 'plant' => null, 'line' => null, 'production_order' => null, ]); } public function filtersForm(Form $form): Form { return $form ->statePath('filters') // Explicitly set where to store form data ->schema([ Select::make('plant') ->options(Plant::pluck('name', 'id')) ->label('Select Plant') ->reactive() ->afterStateUpdated(function ($state) { session(['selected_plant' => $state]); $this->triggerChartUpdate(); }), // Line Filter Select::make('line') ->options(function ($get) { $plantId = $get('plant'); return $plantId ? Plant::find($plantId)->getLineNames()->pluck('name', 'id') : []; }) ->label('Select Line') ->reactive() ->afterStateUpdated(function ($state) { session(['selected_line' => $state]); // Store in session $this->triggerChartUpdate(); }), // Production Order Text Input TextInput::make('production_order') ->label('Production Order') ->reactive() ->afterStateUpdated(function ($state) { session(['production_order' => $state]); $this->triggerChartUpdate(); }), ]) ->columns(3); } // public function triggerChartUpdate(): void // { // if (session()->has('selected_plant') && session()->has('selected_line') && session()->has('production_order')) { // $this->dispatch('productionOrderChart'); // } // } public function triggerChartUpdate(): void { $filters = $this->filtersForm->getState(); if (!empty($filters['plant']) && !empty($filters['line']) && !empty($filters['production_order'])) { $this->dispatch('productionOrderChart', filters: $filters); } } public static function canAccess(): bool { return Auth::check() && Auth::user()->can('view production order count dashboard'); } }