feat(brandbook): anadir campo de URL de LinkedIn tambien en seccion LinkedIn B2B

This commit is contained in:
Marcos Fargas
2026-10-15 00:46:34 +02:00
parent b08c4ca00d
commit bcde8d8198

View File

@@ -2074,68 +2074,111 @@ export default function BrandZone({
)} )}
{section === 'b2b' && ( {section === 'b2b' && (
<div className="grid gap-3 sm:grid-cols-2"> <div className="space-y-4">
<Field label="Temas LinkedIn"> <div className="rounded-xl border border-blue-200/80 bg-gradient-to-br from-blue-50/60 via-white to-sky-50/50 p-4 shadow-xs">
<textarea <div className="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3">
className={areaCls} <div className="flex-1">
value={listToLines(book.linkedin_themes)} <label className="block text-xs font-semibold text-gray-800 mb-1">
onChange={(e) => URL de la Empresa / Página en LinkedIn (o Perfil B2B)
patch({ linkedin_themes: linesToList(e.target.value) }) </label>
} <div className="flex gap-2 items-center">
/> <input
</Field> type="url"
<Field label="Formatos LinkedIn"> placeholder="https://www.linkedin.com/company/tu-empresa/"
<textarea className="flex-1 rounded-lg border border-gray-300 bg-white px-3 py-2 text-xs text-gray-900 shadow-xs focus:border-brand-500 focus:outline-hidden focus:ring-1 focus:ring-brand-500"
className={areaCls} value={book.channel_handles.linkedin || ''}
value={listToLines(book.linkedin_formats)} onChange={(e) =>
onChange={(e) => patch({
patch({ linkedin_formats: linesToList(e.target.value) }) channel_handles: {
} ...book.channel_handles,
/> linkedin: e.target.value,
</Field> },
<Field label="Thought leadership"> })
<textarea }
className={areaCls} />
value={listToLines(book.thought_leadership)} {book.channel_handles.linkedin && (
onChange={(e) => <a
patch({ thought_leadership: linesToList(e.target.value) }) href={book.channel_handles.linkedin}
} target="_blank"
/> rel="noopener noreferrer"
</Field> className="inline-flex items-center gap-1.5 px-3 py-2 text-xs font-medium text-blue-700 bg-blue-100 hover:bg-blue-200 rounded-lg transition-colors shrink-0"
<Field label="Buyer roles"> title="Abrir página en LinkedIn"
<textarea >
className={areaCls} <ExternalLink className="w-3.5 h-3.5" />
value={listToLines(book.buyer_roles)} <span>Abrir</span>
onChange={(e) => </a>
patch({ buyer_roles: linesToList(e.target.value) }) )}
} </div>
/> <p className="mt-1 text-[11px] text-gray-500">
</Field> Este campo está sincronizado en tiempo real con la pestaña <strong>Canales</strong> (`channel_handles.linkedin`).
<Field label="Ángulos casos de estudio"> </p>
<textarea </div>
className={areaCls} </div>
value={listToLines(book.case_study_angles)} </div>
onChange={(e) =>
patch({ case_study_angles: linesToList(e.target.value) }) <div className="grid gap-3 sm:grid-cols-2">
} <Field label="Temas LinkedIn">
/> <textarea
</Field> className={areaCls}
<Field label="CTAs LinkedIn"> value={listToLines(book.linkedin_themes)}
<textarea onChange={(e) =>
className={areaCls} patch({ linkedin_themes: linesToList(e.target.value) })
value={listToLines(book.linkedin_cta)} }
onChange={(e) => />
patch({ linkedin_cta: linesToList(e.target.value) }) </Field>
} <Field label="Formatos LinkedIn">
/> <textarea
</Field> className={areaCls}
<Field label="ABM / cuentas objetivo" className="sm:col-span-2"> value={listToLines(book.linkedin_formats)}
<textarea onChange={(e) =>
className={areaCls} patch({ linkedin_formats: linesToList(e.target.value) })
value={book.abm_notes} }
onChange={(e) => patch({ abm_notes: e.target.value })} />
/> </Field>
</Field> <Field label="Thought leadership">
<textarea
className={areaCls}
value={listToLines(book.thought_leadership)}
onChange={(e) =>
patch({ thought_leadership: linesToList(e.target.value) })
}
/>
</Field>
<Field label="Buyer roles">
<textarea
className={areaCls}
value={listToLines(book.buyer_roles)}
onChange={(e) =>
patch({ buyer_roles: linesToList(e.target.value) })
}
/>
</Field>
<Field label="Ángulos casos de estudio">
<textarea
className={areaCls}
value={listToLines(book.case_study_angles)}
onChange={(e) =>
patch({ case_study_angles: linesToList(e.target.value) })
}
/>
</Field>
<Field label="CTAs LinkedIn">
<textarea
className={areaCls}
value={listToLines(book.linkedin_cta)}
onChange={(e) =>
patch({ linkedin_cta: linesToList(e.target.value) })
}
/>
</Field>
<Field label="ABM / cuentas objetivo" className="sm:col-span-2">
<textarea
className={areaCls}
value={book.abm_notes}
onChange={(e) => patch({ abm_notes: e.target.value })}
/>
</Field>
</div>
</div> </div>
)} )}