Browse Source

External Link configurabile 2

Sviluppo_Carrello_Immagini
parent
commit
41c4a24c62
2 changed files with 28 additions and 18 deletions
  1. +23
    -13
      app/admin/page.tsx
  2. +5
    -5
      components/PublicGrid.tsx

+ 23
- 13
app/admin/page.tsx View File

@@ -502,26 +502,36 @@ export default function AdminDashboard() {
{EXTERNAL_LINK_ENABLED && <option value="EXTERNAL_LINK">External Link</option>}
</select>
</div>
<div>
{isEditing.cardType === 'EXTERNAL_LINK' ? (
<>
{isEditing.cardType === 'EXTERNAL_LINK' ? (
<>
<div>
<label className="block text-sm font-semibold text-gray-800 mb-1">URL</label>
<input
type="url"
value={isEditing.actionUrl || ''}
onChange={e => setIsEditing({ ...isEditing, actionUrl: e.target.value })}
className={inputClasses}
placeholder="https://esempio.it/pagina"
/>
</div>
<div>
<label className="block text-sm font-semibold text-gray-800 mb-1">Testo del link</label>
<input
type="text"
value={isEditing.shortDescription || ''}
onChange={e => setIsEditing({ ...isEditing, shortDescription: e.target.value })}
className={inputClasses}
placeholder="https://esempio.it/pagina"
placeholder="es. Visita il sito ufficiale"
/>
<p className="text-xs text-gray-500 mt-1">Aprendo la card, il testo sarà cliccabile e porterà a questo indirizzo.</p>
</>
) : (
<>
<label className="block text-sm font-semibold text-gray-800 mb-1">Short Description</label>
<textarea value={isEditing.shortDescription || ''} onChange={e => setIsEditing({ ...isEditing, shortDescription: e.target.value })} className={`${inputClasses} h-24 resize-none`} placeholder="Brief summary..." />
</>
)}
</div>
<p className="text-xs text-gray-500 mt-1">Testo visualizzato come link cliccabile nel modale. Se vuoto, viene mostrata l&rsquo;URL stessa.</p>
</div>
</>
) : (
<div>
<label className="block text-sm font-semibold text-gray-800 mb-1">Short Description</label>
<textarea value={isEditing.shortDescription || ''} onChange={e => setIsEditing({ ...isEditing, shortDescription: e.target.value })} className={`${inputClasses} h-24 resize-none`} placeholder="Brief summary..." />
</div>
)}
<div className="bg-gray-50 p-3 rounded-lg border border-gray-200 space-y-3">
<label className="flex items-start gap-3 cursor-pointer">
<input


+ 5
- 5
components/PublicGrid.tsx View File

@@ -517,22 +517,22 @@ export default function PublicGrid({ cards, maxCols = 5 }: { cards: Card[], maxC
title="Close"
>✕</button>
</div>
{(activeCard.title || activeCard.shortDescription || activeCard.fullContent) && (
{(activeCard.title || activeCard.shortDescription || activeCard.fullContent || activeCard.actionUrl) && (
<div className="p-8">
<div className="text-xs text-blue-600 font-bold tracking-wider uppercase mb-2">{activeCard.cardType.replace('_', ' ')}</div>
{activeCard.title && (
<h2 className={`text-3xl font-bold text-gray-900 ${(activeCard.shortDescription || activeCard.fullContent) ? 'mb-4' : ''}`}>
<h2 className={`text-3xl font-bold text-gray-900 ${(activeCard.shortDescription || activeCard.fullContent || activeCard.actionUrl) ? 'mb-4' : ''}`}>
{activeCard.title}
</h2>
)}
{activeCard.cardType === 'EXTERNAL_LINK' && activeCard.shortDescription ? (
{activeCard.cardType === 'EXTERNAL_LINK' && (activeCard.actionUrl || activeCard.shortDescription) ? (
<a
href={activeCard.shortDescription}
href={activeCard.actionUrl || activeCard.shortDescription}
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-2 text-blue-600 hover:text-blue-800 underline break-all text-lg font-medium"
>
<span>{activeCard.shortDescription}</span>
<span>{activeCard.shortDescription || activeCard.actionUrl}</span>
<span aria-hidden>↗</span>
</a>
) : activeCard.fullContent ? (


Loading…
Cancel
Save