feat(platform): add customer time window presets
This commit is contained in:
@@ -244,6 +244,7 @@ export default function App() {
|
||||
const updateHistoryFilters = (filters: Record<string, unknown> = {}, tab = historyTab) => {
|
||||
const hasKeywordInput = Object.prototype.hasOwnProperty.call(filters, 'keyword');
|
||||
const nextFilters = normalizeHistoryFilterValues(filters);
|
||||
setCustomerTimeWindow(timeWindowFiltersFromValues(nextFilters));
|
||||
setHistoryFilters(nextFilters);
|
||||
if (nextFilters.keyword) {
|
||||
setAnalysisVin(nextFilters.keyword);
|
||||
@@ -271,6 +272,7 @@ export default function App() {
|
||||
|
||||
const updateMileageFilters = (filters: Record<string, unknown> = {}) => {
|
||||
const nextFilters = normalizeMileageFilterValues(filters);
|
||||
setCustomerTimeWindow(timeWindowFiltersFromValues(nextFilters));
|
||||
setMileageFilters(nextFilters);
|
||||
if (nextFilters.keyword) {
|
||||
setAnalysisVin(nextFilters.keyword);
|
||||
@@ -302,11 +304,13 @@ export default function App() {
|
||||
};
|
||||
|
||||
const updateQualityFilters = (filters: Record<string, string> = {}) => {
|
||||
setCustomerTimeWindow(timeWindowFiltersFromValues(filters));
|
||||
setQualityFilters(filters);
|
||||
replaceQualityHash(filters);
|
||||
};
|
||||
|
||||
const openQuality = (filters: Record<string, string> = {}) => {
|
||||
setCustomerTimeWindow(timeWindowFiltersFromValues(filters));
|
||||
setQualityFilters(filters);
|
||||
setActivePage('alert-events');
|
||||
replaceQualityHash(filters);
|
||||
@@ -364,6 +368,7 @@ export default function App() {
|
||||
|
||||
const openHistoryWithFilters = (filters: Record<string, string> = {}) => {
|
||||
const nextFilters = normalizeHistoryFilterValues(filters);
|
||||
setCustomerTimeWindow(timeWindowFiltersFromValues(nextFilters));
|
||||
const hasKeywordInput = Object.prototype.hasOwnProperty.call(nextFilters, 'keyword');
|
||||
const nextVin = nextFilters.keyword?.trim() || (hasKeywordInput ? '' : analysisVin);
|
||||
const nextProtocol = nextFilters.protocol?.trim() ?? activeProtocol;
|
||||
@@ -399,6 +404,7 @@ export default function App() {
|
||||
|
||||
const openRawWithFilters = (filters: Record<string, string> = {}) => {
|
||||
const nextFilters = normalizeHistoryFilterValues(filters);
|
||||
setCustomerTimeWindow(timeWindowFiltersFromValues(nextFilters));
|
||||
const hasKeywordInput = Object.prototype.hasOwnProperty.call(nextFilters, 'keyword');
|
||||
const nextVin = nextFilters.keyword?.trim() || (hasKeywordInput ? '' : analysisVin);
|
||||
const nextProtocol = nextFilters.protocol?.trim() ?? activeProtocol;
|
||||
@@ -440,6 +446,7 @@ export default function App() {
|
||||
|
||||
const openMileageWithFilters = (filters: Record<string, string> = {}) => {
|
||||
const nextFilters = normalizeMileageFilterValues(filters);
|
||||
setCustomerTimeWindow(timeWindowFiltersFromValues(nextFilters));
|
||||
const nextVin = nextFilters.keyword?.trim() || analysisVin;
|
||||
const nextProtocol = nextFilters.protocol?.trim() ?? activeProtocol;
|
||||
setAnalysisVin(nextVin);
|
||||
@@ -453,30 +460,10 @@ export default function App() {
|
||||
const currentCustomerTaskTimeWindow = () => {
|
||||
const globalDateFrom = customerTimeWindow.dateFrom?.trim();
|
||||
const globalDateTo = customerTimeWindow.dateTo?.trim();
|
||||
if (globalDateFrom || globalDateTo) {
|
||||
return {
|
||||
...(globalDateFrom ? { dateFrom: globalDateFrom } : {}),
|
||||
...(globalDateTo ? { dateTo: globalDateTo } : {})
|
||||
};
|
||||
}
|
||||
const candidates = activePage === 'mileage'
|
||||
? [mileageFilters, historyFilters, qualityFilters]
|
||||
: activePage === 'history' || activePage === 'history-query'
|
||||
? [historyFilters, mileageFilters, qualityFilters]
|
||||
: activePage === 'alert-events' || activePage === 'quality'
|
||||
? [qualityFilters, historyFilters, mileageFilters]
|
||||
: [historyFilters, mileageFilters, qualityFilters];
|
||||
for (const filters of candidates) {
|
||||
const dateFrom = filters.dateFrom?.trim();
|
||||
const dateTo = filters.dateTo?.trim();
|
||||
if (dateFrom || dateTo) {
|
||||
return {
|
||||
...(dateFrom ? { dateFrom } : {}),
|
||||
...(dateTo ? { dateTo } : {})
|
||||
};
|
||||
}
|
||||
}
|
||||
return {};
|
||||
return {
|
||||
...(globalDateFrom ? { dateFrom: globalDateFrom } : {}),
|
||||
...(globalDateTo ? { dateTo: globalDateTo } : {})
|
||||
};
|
||||
};
|
||||
|
||||
const openCustomerTask = (page: PageKey) => {
|
||||
@@ -555,9 +542,15 @@ export default function App() {
|
||||
}
|
||||
|
||||
function timeWindowFiltersFromRoute(route: ReturnType<typeof parseAppHash>): Record<string, string> {
|
||||
return timeWindowFiltersFromValues(route.filters ?? {});
|
||||
}
|
||||
|
||||
function timeWindowFiltersFromValues(filters: Record<string, unknown>): Record<string, string> {
|
||||
const dateFrom = String(filters.dateFrom ?? '').trim();
|
||||
const dateTo = String(filters.dateTo ?? '').trim();
|
||||
return {
|
||||
...(route.filters?.dateFrom ? { dateFrom: route.filters.dateFrom } : {}),
|
||||
...(route.filters?.dateTo ? { dateTo: route.filters.dateTo } : {})
|
||||
...(dateFrom ? { dateFrom } : {}),
|
||||
...(dateTo ? { dateTo } : {})
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user