diff --git a/src/components/CrewForm.tsx b/src/components/CrewForm.tsx index d722e72..9ace413 100644 --- a/src/components/CrewForm.tsx +++ b/src/components/CrewForm.tsx @@ -428,6 +428,12 @@ export function CrewForm({ existing }: CrewFormProps) { return; } + // An invalid coordinator would be silently dropped on save — tell the user. + if (coordinatorInput.trim() && !parsedCoordinator) { + toast({ title: t('socialUi.coordinator.invalid'), variant: 'destructive' }); + return; + } + try { const identifier = existing?.identifier ?? `crew-${Date.now().toString(36)}`; @@ -1091,8 +1097,7 @@ export function CrewForm({ existing }: CrewFormProps) { {t('socialUi.coordinator.customTitle')} {t('socialUi.coordinator.customBadge')}

- {t('socialUi.coordinator.customDescA')} {t('socialUi.coordinator.customDescB')}{' '} - {t('socialUi.coordinator.customRunOwn')}{' '} + {t('socialUi.coordinator.customDescShort')}{' '} {t('socialUi.coordinator.cordnCoordinator')} - {' '} - {t('socialUi.coordinator.customDescC')} + + .

- setCoordinatorInput(e.target.value)} - className="bg-gray-800 border-gray-700 font-mono text-xs" - spellCheck={false} - /> +
+ setCoordinatorInput(e.target.value)} + className="bg-gray-800 border-gray-700 font-mono text-xs" + spellCheck={false} + /> + {coordinatorInput.trim() !== '' && ( + + )} +
{coordinatorInput.trim() !== '' && (parsedCoordinator ? (

@@ -1134,6 +1154,7 @@ export function CrewForm({ existing }: CrewFormProps) { {t('socialUi.coordinator.useMine')} )} +

{t('socialUi.coordinator.pointerNote')}

); @@ -1281,19 +1302,19 @@ export function CrewForm({ existing }: CrewFormProps) { {bioBlock} {vibeBlock} {crewTypeBlock} - {agentBlock} {openCallBlock} - {treasuryBlock} {membersBlock} {spotsBlock} - {labLinkBlock} - {videoBlock} - {sponsorBlock} - {coordinatorBlock} {locationBlock} {nip05Block} {linksBlock} {bandBlock} + {agentBlock} + {videoBlock} + {sponsorBlock} + {treasuryBlock} + {labLinkBlock} + {coordinatorBlock}