Vertrag-Zugangsdaten: Externtab-Links neben Stressfrei-Select
Rechts neben dem Stressfrei-Adressen-Dropdown sitzen jetzt zwei kleine Icon-Links (nur bei gewähltem Kunden sichtbar): - ExternalLink → öffnet den Stressfrei-Tab des Kunden im neuen Tab (dort kann man die Adressen anlegen/pflegen) - Mail → öffnet den E-Mail-Postfach-Tab des Kunden im neuen Tab Damit muss man beim Vertragserstellen nicht mehr die Seite wechseln, um schnell eine Stressfrei-Adresse anzulegen oder ins Postfach zu springen. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -15,7 +15,7 @@ import { buildContractLabelParts } from '../../utils/contractLabel';
|
|||||||
import type { ContractType } from '../../types';
|
import type { ContractType } from '../../types';
|
||||||
import { formatDate } from '../../utils/dateFormat';
|
import { formatDate } from '../../utils/dateFormat';
|
||||||
import { useProviderSettings } from '../../hooks/useProviderSettings';
|
import { useProviderSettings } from '../../hooks/useProviderSettings';
|
||||||
import { Plus, Trash2, Eye, EyeOff, Info, X, ArrowLeft, ExternalLink } from 'lucide-react';
|
import { Plus, Trash2, Eye, EyeOff, Info, X, ArrowLeft, ExternalLink, Mail } from 'lucide-react';
|
||||||
|
|
||||||
// Kleine Helper-Komponente: Label + Mini-Link im neuen Tab. Wird neben
|
// Kleine Helper-Komponente: Label + Mini-Link im neuen Tab. Wird neben
|
||||||
// Select-Feldern eingesetzt, deren Stammdaten an anderer Stelle gepflegt
|
// Select-Feldern eingesetzt, deren Stammdaten an anderer Stelle gepflegt
|
||||||
@@ -1116,15 +1116,43 @@ export default function ContractForm() {
|
|||||||
<span className="text-sm">{customerEmailLabel} Adresse</span>
|
<span className="text-sm">{customerEmailLabel} Adresse</span>
|
||||||
</label>
|
</label>
|
||||||
{usernameType === 'stressfrei' && (
|
{usernameType === 'stressfrei' && (
|
||||||
<Select
|
<div className="flex items-start gap-2">
|
||||||
value={selectedStressfreiEmailId}
|
<div className="flex-1 min-w-0">
|
||||||
onChange={(e) => setSelectedStressfreiEmailId(e.target.value)}
|
<Select
|
||||||
options={stressfreiEmails.map((e: { id: number; email: string; notes?: string }) => ({
|
value={selectedStressfreiEmailId}
|
||||||
value: e.id,
|
onChange={(e) => setSelectedStressfreiEmailId(e.target.value)}
|
||||||
label: e.email + (e.notes ? ` (${e.notes})` : ''),
|
options={stressfreiEmails.map((e: { id: number; email: string; notes?: string }) => ({
|
||||||
}))}
|
value: e.id,
|
||||||
placeholder={stressfreiEmails.length === 0 ? 'Keine Stressfrei-Adressen vorhanden' : 'Adresse auswählen...'}
|
label: e.email + (e.notes ? ` (${e.notes})` : ''),
|
||||||
/>
|
}))}
|
||||||
|
placeholder={stressfreiEmails.length === 0 ? 'Keine Stressfrei-Adressen vorhanden' : 'Adresse auswählen...'}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
{customerId && (
|
||||||
|
<div className="flex items-center gap-1 pt-1.5 flex-shrink-0">
|
||||||
|
<a
|
||||||
|
href={`/customers/${customerId}?tab=stressfrei`}
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title={`${customerEmailLabel} Adressen des Kunden in neuem Tab öffnen`}
|
||||||
|
aria-label={`${customerEmailLabel} Adressen des Kunden in neuem Tab öffnen`}
|
||||||
|
className="text-gray-400 hover:text-blue-600 p-1 rounded"
|
||||||
|
>
|
||||||
|
<ExternalLink className="w-4 h-4" />
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href={`/customers/${customerId}?tab=emails`}
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
title="E-Mail-Postfach des Kunden in neuem Tab öffnen"
|
||||||
|
aria-label="E-Mail-Postfach des Kunden in neuem Tab öffnen"
|
||||||
|
className="text-gray-400 hover:text-blue-600 p-1 rounded"
|
||||||
|
>
|
||||||
|
<Mail className="w-4 h-4" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
)}
|
)}
|
||||||
{usernameType === 'stressfrei' && stressfreiEmails.length === 0 && (
|
{usernameType === 'stressfrei' && stressfreiEmails.length === 0 && (
|
||||||
<p className="text-xs text-amber-600">
|
<p className="text-xs text-amber-600">
|
||||||
|
|||||||
Reference in New Issue
Block a user