diff --git a/src/pages/supply/MarketLeads.tsx b/src/pages/supply/MarketLeads.tsx index 8663c6b..3929d96 100644 --- a/src/pages/supply/MarketLeads.tsx +++ b/src/pages/supply/MarketLeads.tsx @@ -1,7 +1,6 @@ import { Box, Chip, - CircularProgress, Divider, Paper, Skeleton, @@ -283,8 +282,8 @@ export default function MarketLeads() { ) : leads.length === 0 ? ( - - Keine aktiven Markt-Leads gefunden. + + Keine aktiven Markt-Leads gefunden. Signale werden laufend aus öffentlichen Quellen erkannt. ) : ( diff --git a/src/provider/MockupFutureSignalProvider.ts b/src/provider/MockupFutureSignalProvider.ts index 1143780..9815d67 100644 --- a/src/provider/MockupFutureSignalProvider.ts +++ b/src/provider/MockupFutureSignalProvider.ts @@ -3,11 +3,21 @@ import type { FutureSignal } from '../domain/futureSignal' import type { ReviewStatus } from '../domain/enums' import { mockFutureSignals } from '../mock-data/futureSignals' -const store: FutureSignal[] = [...mockFutureSignals] +// Mutation overrides — applied on top of the live mockFutureSignals import. +// Reading directly from mockFutureSignals (not a copied store) ensures that +// Vite HMR changes to the mock data are always reflected immediately. +const mutationOverrides = new Map>() + +function resolve(): FutureSignal[] { + return mockFutureSignals.map(s => { + const override = mutationOverrides.get(s.id) + return override ? { ...s, ...override } : s + }) +} export const MockupFutureSignalProvider: IFutureSignalProvider = { async getAll(filters?: FutureSignalFilters) { - let results = [...store] + let results = resolve() if (filters?.signalType) results = results.filter(s => s.signalType === filters.signalType) if (filters?.minProbability !== undefined) results = results.filter(s => s.probability >= filters.minProbability!) if (filters?.organizationId) results = results.filter(s => s.organizationId === filters.organizationId) @@ -18,19 +28,19 @@ export const MockupFutureSignalProvider: IFutureSignalProvider = { return results.sort((a, b) => b.probability - a.probability) }, async getById(id) { - return store.find(s => s.id === id) ?? null + return resolve().find(s => s.id === id) ?? null }, async getByProperty(propertyId) { - return store.filter(s => s.propertyId === propertyId) + return resolve().filter(s => s.propertyId === propertyId) }, async verify(id, verifiedBy) { - const idx = store.findIndex(s => s.id === id) - store[idx] = { ...store[idx], isVerified: true, verifiedBy, verifiedAt: new Date().toISOString(), updatedAt: new Date().toISOString() } - return store[idx] + const existing = mutationOverrides.get(id) ?? {} + mutationOverrides.set(id, { ...existing, isVerified: true, verifiedBy, verifiedAt: new Date().toISOString(), updatedAt: new Date().toISOString() }) + return resolve().find(s => s.id === id)! }, async updateReviewStatus(id, status: ReviewStatus) { - const idx = store.findIndex(s => s.id === id) - store[idx] = { ...store[idx], reviewStatus: status, updatedAt: new Date().toISOString() } - return store[idx] + const existing = mutationOverrides.get(id) ?? {} + mutationOverrides.set(id, { ...existing, reviewStatus: status, updatedAt: new Date().toISOString() }) + return resolve().find(s => s.id === id)! }, }