This commit is contained in:
seb
2026-09-19 06:37:42 +02:00
parent 02e9a555d6
commit abe078ff05
14 changed files with 1197 additions and 560 deletions

View File

@@ -9,8 +9,7 @@ import Paper from '@mui/material/Paper';
import TextField from '@mui/material/TextField';
import Typography from '@mui/material/Typography';
import SearchIcon from '@mui/icons-material/Search';
import ClearIcon from '@mui/icons-material/Clear';
import { StorageManagerContext } from '../../api/storageManagerContext';
import { StorageManagerContext, getStorageManager } from '../../api/storageManagerContext';
import BackendError from '../../components/BackendError';
import { formatPrice } from '../../utils/price';
import {
@@ -83,6 +82,10 @@ function initialSearchState(searchParams) {
class ArtikelSearchPage extends Component {
static contextType = StorageManagerContext;
get storageManager() {
return this.context || getStorageManager();
}
state = initialSearchState(this.props.searchParams);
listSlotRef = { current: null };
rowMeasureRef = { current: null };
@@ -171,7 +174,7 @@ class ArtikelSearchPage extends Component {
// Kick off initial search (empty input = show all products).
const { input } = this.state;
this.context.doSearch({
this.storageManager?.doSearch({
target: input,
filter: this.props.searchParams.get('filter') || undefined,
offset: 0,
@@ -220,7 +223,7 @@ class ArtikelSearchPage extends Component {
const value = event.target.value;
this.setState({ input: value });
this.context.doSearch({
this.storageManager?.doSearch({
target: value,
filter: this.props.searchParams.get('filter') || undefined,
offset: 0,
@@ -240,7 +243,7 @@ class ArtikelSearchPage extends Component {
// Delegate fetch + debounce to the global StorageManager.
// The callback pushes results into local component state.
this.context.doSearch({
this.storageManager?.doSearch({
target: trimmed,
filter: filter || undefined,
offset,