refactor: remove Schattenmarkt from all user-visible UI strings

- Pipeline.tsx: FUTURE_AVAILABILITY label → 'Future Availability'
- ReminderTypeBadge: SCHATTENMARKT_RELEASE label → 'Pre-Market'
- ReminderFilterBar: SCHATTENMARKT_RELEASE label → 'Pre-Market'
- ReminderKpiBar: 'Schattenmarkt-Risiko' → 'Pre-Market Risiko'
- ReminderDetailDrawer: section title + switch label → 'Pre-Market'
- mock-data/matches: explainabilitySummary → 'Pre-Market freigegeben'
- mock-data/reminders: notes → 'Pre-Market Freigabe'

Internal identifiers (schattenmarktRelease field, useSchattenmarktSignals hook,
signal ID prefix schattenmarkt-*) are unchanged — renaming them touches too many
call sites for no user-visible gain.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Sutter
2026-05-21 00:11:35 +02:00
parent 99e99d66c5
commit 69b96f293a
7 changed files with 11 additions and 11 deletions
@@ -226,9 +226,9 @@ export function ReminderDetailDrawer() {
<Divider /> <Divider />
{/* 5. Schattenmarkt */} {/* 5. Pre-Market */}
<Box> <Box>
<SectionTitle icon={<Eye size={15} color="#64748b" />}>Schattenmarkt-Risiko</SectionTitle> <SectionTitle icon={<Eye size={15} color="#64748b" />}>Pre-Market Risiko</SectionTitle>
<Box className="flex flex-col gap-2"> <Box className="flex flex-col gap-2">
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}> <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
<Box <Box
@@ -248,7 +248,7 @@ export function ReminderDetailDrawer() {
control={<Switch checked={reminder.schattenmarktEnabled} size="small" readOnly />} control={<Switch checked={reminder.schattenmarktEnabled} size="small" readOnly />}
label={ label={
<Typography variant="caption"> <Typography variant="caption">
Schattenmarkt aktiviert Pre-Market aktiviert
</Typography> </Typography>
} }
/> />
+1 -1
View File
@@ -11,7 +11,7 @@ const TYPE_LABELS: Record<ReminderTypeType, string> = {
INSPECTION: 'Inspektion', INSPECTION: 'Inspektion',
INSURANCE_RENEWAL: 'Versicherung', INSURANCE_RENEWAL: 'Versicherung',
MAINTENANCE: 'Unterhalt', MAINTENANCE: 'Unterhalt',
SCHATTENMARKT_RELEASE: 'Schattenmarkt', SCHATTENMARKT_RELEASE: 'Pre-Market',
CUSTOM: 'Individuell', CUSTOM: 'Individuell',
} }
+1 -1
View File
@@ -86,7 +86,7 @@ export function ReminderKpiBar() {
/> />
<KpiItem <KpiItem
icon={<Eye size={18} color="#be185d" />} icon={<Eye size={18} color="#be185d" />}
label="Schattenmarkt-Risiko" label="Pre-Market Risiko"
value={insights.schattenmarktReadyCount} value={insights.schattenmarktReadyCount}
color="#be185d" color="#be185d"
/> />
+1 -1
View File
@@ -19,7 +19,7 @@ const CONFIG: Record<ReminderType, { Icon: LucideIcon; label: string; color: str
INSPECTION: { Icon: ClipboardCheck, label: 'Inspektion', color: '#065f46' }, INSPECTION: { Icon: ClipboardCheck, label: 'Inspektion', color: '#065f46' },
INSURANCE_RENEWAL: { Icon: Shield, label: 'Versicherung', color: '#92400e' }, INSURANCE_RENEWAL: { Icon: Shield, label: 'Versicherung', color: '#92400e' },
MAINTENANCE: { Icon: Wrench, label: 'Unterhalt', color: '#374151' }, MAINTENANCE: { Icon: Wrench, label: 'Unterhalt', color: '#374151' },
SCHATTENMARKT_RELEASE:{ Icon: Eye, label: 'Schattenmarkt', color: '#be185d' }, SCHATTENMARKT_RELEASE:{ Icon: Eye, label: 'Pre-Market', color: '#be185d' },
CUSTOM: { Icon: Tag, label: 'Individuell', color: '#64748b' }, CUSTOM: { Icon: Tag, label: 'Individuell', color: '#64748b' },
} }
+1 -1
View File
@@ -1627,7 +1627,7 @@ export const mockMatches: Match[] = [
tradeoffs: [ tradeoffs: [
{ criterion: 'Timing', concern: 'Einzug frühestens Oktober 2026 möglich', severity: 'LOW', mitigation: 'Frühzeitige Reservierungsanfrage sichert Priorität' }, { criterion: 'Timing', concern: 'Einzug frühestens Oktober 2026 möglich', severity: 'LOW', mitigation: 'Frühzeitige Reservierungsanfrage sichert Priorität' },
], ],
explainabilitySummary: 'Idealer Match: Zürich-West exakt, 850m², im Budget. Vertragsende verifiziert — Verwaltung hat Objekt für Schattenmarkt freigegeben.', explainabilitySummary: 'Idealer Match: Zürich-West exakt, 850m², im Budget. Vertragsende verifiziert — Verwaltung hat Einheit für Pre-Market freigegeben.',
confidenceLevel: 0.92, confidenceLevel: 0.92,
riskLevel: RiskLevel.LOW, riskLevel: RiskLevel.LOW,
uncertaintyIndicators: ['Verfügbar ab Oktober 2026'], uncertaintyIndicators: ['Verfügbar ab Oktober 2026'],
+3 -3
View File
@@ -193,9 +193,9 @@ export const mockReminders: Reminder[] = [
currency: 'CHF', currency: 'CHF',
shadowMarketRisk: ShadowMarketRisk.HIGH, shadowMarketRisk: ShadowMarketRisk.HIGH,
schattenmarktEnabled: false, schattenmarktEnabled: false,
note: 'Objekt noch nicht im Schattenmarkt aktiviert. 14 Monate Lead Time empfohlen.', note: 'Einheit noch nicht für Pre-Market freigegeben. 14 Monate Lead Time empfohlen.',
activity: [ activity: [
{ at: '2026-04-18T10:00:00Z', by: 'Thomas Huber', action: 'CREATED', note: 'Schattenmarkt-Aktivierung ausstehend' }, { at: '2026-04-18T10:00:00Z', by: 'Thomas Huber', action: 'CREATED', note: 'Pre-Market-Freigabe ausstehend' },
{ at: '2026-05-02T11:00:00Z', by: 'Thomas Huber', action: 'NOTED', note: 'Eigentümer informiert, Freigabe ausstehend' }, { at: '2026-05-02T11:00:00Z', by: 'Thomas Huber', action: 'NOTED', note: 'Eigentümer informiert, Freigabe ausstehend' },
], ],
organizationId: 'org-wincasa', organizationId: 'org-wincasa',
@@ -357,7 +357,7 @@ export const mockReminders: Reminder[] = [
currency: 'CHF', currency: 'CHF',
shadowMarketRisk: ShadowMarketRisk.HIGH, shadowMarketRisk: ShadowMarketRisk.HIGH,
schattenmarktEnabled: false, schattenmarktEnabled: false,
note: 'Schattenmarkt-Aktivierung 9 Monate vor Vertragsende. Eigentümer-Freigabe einholen.', note: 'Pre-Market Freigabe 9 Monate vor Vertragsende. Eigentümer-Freigabe einholen.',
activity: [ activity: [
{ at: '2026-04-25T11:00:00Z', by: 'Anna Meier', action: 'CREATED' }, { at: '2026-04-25T11:00:00Z', by: 'Anna Meier', action: 'CREATED' },
], ],
+1 -1
View File
@@ -23,7 +23,7 @@ const RESULT_TYPE_LABEL: Record<PipelineItem['resultType'], string> = {
VERIFIED_PORTFOLIO: 'Portfolio', VERIFIED_PORTFOLIO: 'Portfolio',
EXTERNAL_MARKET: 'Direktinserat', EXTERNAL_MARKET: 'Direktinserat',
MAISON_WORK: 'Maison Work', MAISON_WORK: 'Maison Work',
FUTURE_AVAILABILITY: 'Schattenmarkt', FUTURE_AVAILABILITY: 'Future Availability',
} }
const RESULT_TYPE_COLOR: Record<PipelineItem['resultType'], string> = { const RESULT_TYPE_COLOR: Record<PipelineItem['resultType'], string> = {