mirror of
https://github.com/christianvidalwolf-prog/Craze-Data-check.git
synced 2026-08-03 12:45:24 +02:00
feat: make search filters independent per tab while maintaining persistence
This commit is contained in:
@@ -54,7 +54,7 @@ export function DimensionsView({ data, headers, onEdit, onSaveRow, onCaptureStat
|
|||||||
targetGroupKey: string;
|
targetGroupKey: string;
|
||||||
selectedIndices: number[];
|
selectedIndices: number[];
|
||||||
} | null>(null);
|
} | null>(null);
|
||||||
const [search, setSearch] = usePersistentState('global-search', '');
|
const [search, setSearch] = usePersistentState('dimensions-search', '');
|
||||||
const [lineFilter, setLineFilter] = usePersistentState<string[]>('dimensions-lineFilter', []);
|
const [lineFilter, setLineFilter] = usePersistentState<string[]>('dimensions-lineFilter', []);
|
||||||
const [classFilter, setClassFilter] = usePersistentState<string[]>('dimensions-classFilter', []);
|
const [classFilter, setClassFilter] = usePersistentState<string[]>('dimensions-classFilter', []);
|
||||||
const [openFilter, setOpenFilter] = useState<'line' | 'class' | null>(null);
|
const [openFilter, setOpenFilter] = useState<'line' | 'class' | null>(null);
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ export function HistoryView({ headers, data, onRevert, onEdit }: HistoryViewProp
|
|||||||
const [history, setHistory] = useState<HistoryEntry[]>([]);
|
const [history, setHistory] = useState<HistoryEntry[]>([]);
|
||||||
const [loading, setLoading] = useState(true);
|
const [loading, setLoading] = useState(true);
|
||||||
const [expandedId, setExpandedId] = useState<string | null>(null);
|
const [expandedId, setExpandedId] = useState<string | null>(null);
|
||||||
const [search, setSearch] = usePersistentState('global-search', '');
|
const [search, setSearch] = usePersistentState('history-search', '');
|
||||||
const [isFullscreen, setIsFullscreen] = useState(false);
|
const [isFullscreen, setIsFullscreen] = useState(false);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ interface MatrixViewProps {
|
|||||||
export function MatrixView({ data, headers, rowStatuses }: MatrixViewProps) {
|
export function MatrixView({ data, headers, rowStatuses }: MatrixViewProps) {
|
||||||
const [page, setPage] = useState(1);
|
const [page, setPage] = useState(1);
|
||||||
const [pageSize, setPageSize] = useState(25);
|
const [pageSize, setPageSize] = useState(25);
|
||||||
const [search, setSearch] = usePersistentState('global-search', '');
|
const [search, setSearch] = usePersistentState('matrix-search', '');
|
||||||
const [columnFilters, setColumnFilters] = usePersistentState<Record<number, string[]>>('matrix-columnFilters', {});
|
const [columnFilters, setColumnFilters] = usePersistentState<Record<number, string[]>>('matrix-columnFilters', {});
|
||||||
const [openFilterCol, setOpenFilterCol] = useState<number | null>(null);
|
const [openFilterCol, setOpenFilterCol] = useState<number | null>(null);
|
||||||
const [sortCol, setSortCol] = usePersistentState<number | null>('matrix-sortCol', null);
|
const [sortCol, setSortCol] = usePersistentState<number | null>('matrix-sortCol', null);
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ interface EditingState {
|
|||||||
export function MissingDataView({ data, headers, onSaveRow, onCaptureState }: MissingDataViewProps) {
|
export function MissingDataView({ data, headers, onSaveRow, onCaptureState }: MissingDataViewProps) {
|
||||||
const COLUMNS = useColumns();
|
const COLUMNS = useColumns();
|
||||||
const [activeTab, setActiveTab] = usePersistentState<TabType>('missingData-tab', 'missingLaunch');
|
const [activeTab, setActiveTab] = usePersistentState<TabType>('missingData-tab', 'missingLaunch');
|
||||||
const [search, setSearch] = usePersistentState('global-search', '');
|
const [search, setSearch] = usePersistentState('missingData-search', '');
|
||||||
const [sortCol, setSortCol] = usePersistentState<number | null>('missingData-sortCol', null);
|
const [sortCol, setSortCol] = usePersistentState<number | null>('missingData-sortCol', null);
|
||||||
const [sortDesc, setSortDesc] = usePersistentState('missingData-sortDesc', false);
|
const [sortDesc, setSortDesc] = usePersistentState('missingData-sortDesc', false);
|
||||||
const [page, setPage] = useState(1);
|
const [page, setPage] = useState(1);
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ interface PendingValidationViewProps {
|
|||||||
|
|
||||||
export function PendingValidationView({ data, pendingRows, rowStatuses, onRevertRow, onEdit }: PendingValidationViewProps) {
|
export function PendingValidationView({ data, pendingRows, rowStatuses, onRevertRow, onEdit }: PendingValidationViewProps) {
|
||||||
const COLUMNS = useColumns();
|
const COLUMNS = useColumns();
|
||||||
const [search, setSearch] = usePersistentState('global-search', '');
|
const [search, setSearch] = usePersistentState('pending-search', '');
|
||||||
const [isFullscreen, setIsFullscreen] = useState(false);
|
const [isFullscreen, setIsFullscreen] = useState(false);
|
||||||
|
|
||||||
const pendingEntries = Object.entries(pendingRows);
|
const pendingEntries = Object.entries(pendingRows);
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ function findCol(headers: string[], ...keywords: string[]): number {
|
|||||||
export function PricingView({ data, headers, onSaveRow, onCaptureState, onEdit, rowStatuses }: PricingViewProps) {
|
export function PricingView({ data, headers, onSaveRow, onCaptureState, onEdit, rowStatuses }: PricingViewProps) {
|
||||||
const COLUMNS = useColumns();
|
const COLUMNS = useColumns();
|
||||||
const [filterMode, setFilterMode] = usePersistentState<FilterMode>('pricing-filterMode', 'all_errors');
|
const [filterMode, setFilterMode] = usePersistentState<FilterMode>('pricing-filterMode', 'all_errors');
|
||||||
const [search, setSearch] = usePersistentState('global-search', '');
|
const [search, setSearch] = usePersistentState('pricing-search', '');
|
||||||
const [currentPage, setCurrentPage] = useState(1);
|
const [currentPage, setCurrentPage] = useState(1);
|
||||||
const pageSize = 100;
|
const pageSize = 100;
|
||||||
const [columnWidths, setColumnWidths] = useState<Record<string, number>>({
|
const [columnWidths, setColumnWidths] = useState<Record<string, number>>({
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export function ProductDescriptions({ data, headers, asinColumnIndex, onEdit, ro
|
|||||||
// Description columns that should only have Present/Missing filters
|
// Description columns that should only have Present/Missing filters
|
||||||
const DESCRIPTION_COLUMNS = [COLUMNS.LONG_DE, COLUMNS.LONG_EN, COLUMNS.SHORT_DE, COLUMNS.SHORT_EN, COLUMNS.DETAILS_DE, COLUMNS.DETAILS_EN];
|
const DESCRIPTION_COLUMNS = [COLUMNS.LONG_DE, COLUMNS.LONG_EN, COLUMNS.SHORT_DE, COLUMNS.SHORT_EN, COLUMNS.DETAILS_DE, COLUMNS.DETAILS_EN];
|
||||||
const [activeTab, setActiveTab] = usePersistentState<string>('descriptions-tab', 'all');
|
const [activeTab, setActiveTab] = usePersistentState<string>('descriptions-tab', 'all');
|
||||||
const [search, setSearch] = usePersistentState('global-search', '');
|
const [search, setSearch] = usePersistentState('descriptions-search', '');
|
||||||
const [lineFilter, setLineFilter] = usePersistentState('descriptions-lineFilter', '');
|
const [lineFilter, setLineFilter] = usePersistentState('descriptions-lineFilter', '');
|
||||||
const [licenseFilter, setLicenseFilter] = usePersistentState('descriptions-licenseFilter', '');
|
const [licenseFilter, setLicenseFilter] = usePersistentState('descriptions-licenseFilter', '');
|
||||||
const [sortCol, setSortCol] = usePersistentState<number | null>('descriptions-sortCol', null);
|
const [sortCol, setSortCol] = usePersistentState<number | null>('descriptions-sortCol', null);
|
||||||
|
|||||||
Reference in New Issue
Block a user