fix: show creator name prominently in detail panels and public review pages
All checks were successful
Deploy / deploy (push) Successful in 12s
All checks were successful
Deploy / deploy (push) Successful in 12s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -365,11 +365,16 @@ export default function ArtefactDetailPanel({ artefact, onClose, onUpdate, onDel
|
|||||||
onChange={e => setEditTitle(e.target.value)}
|
onChange={e => setEditTitle(e.target.value)}
|
||||||
className="w-full text-lg font-semibold text-text-primary bg-transparent border-0 border-b border-transparent hover:border-border focus:border-brand-primary focus:outline-none focus:ring-0 px-0 py-0.5 transition-colors"
|
className="w-full text-lg font-semibold text-text-primary bg-transparent border-0 border-b border-transparent hover:border-border focus:border-brand-primary focus:outline-none focus:ring-0 px-0 py-0.5 transition-colors"
|
||||||
/>
|
/>
|
||||||
<div className="flex items-center gap-2 mt-1">
|
<div className="flex items-center gap-2 mt-1 flex-wrap">
|
||||||
<span className={`text-xs px-2 py-0.5 rounded-full ${STATUS_COLORS[artefact.status] || 'bg-surface-tertiary text-text-secondary'}`}>
|
<span className={`text-xs px-2 py-0.5 rounded-full ${STATUS_COLORS[artefact.status] || 'bg-surface-tertiary text-text-secondary'}`}>
|
||||||
{artefact.status?.replace('_', ' ')}
|
{artefact.status?.replace('_', ' ')}
|
||||||
</span>
|
</span>
|
||||||
<span className="text-xs text-text-tertiary capitalize">{artefact.type}</span>
|
<span className="text-xs text-text-tertiary capitalize">{artefact.type}</span>
|
||||||
|
{artefact.creator_name && (
|
||||||
|
<span className="text-xs text-text-secondary font-medium">
|
||||||
|
{t('review.createdBy')} <strong className="text-text-primary">{artefact.creator_name}</strong>
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center gap-1 shrink-0">
|
<div className="flex items-center gap-1 shrink-0">
|
||||||
|
|||||||
@@ -271,6 +271,11 @@ export default function PostDetailPanel({ post, onClose, onSave, onDelete, brand
|
|||||||
{brandName}
|
{brandName}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
|
{post.creator_user_name && (
|
||||||
|
<span className="text-[11px] text-text-secondary font-medium">
|
||||||
|
{t('review.createdBy')} <strong className="text-text-primary">{post.creator_user_name}</strong>
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ export default function PublicPostReview() {
|
|||||||
{platforms.length > 0 && (
|
{platforms.length > 0 && (
|
||||||
<span className="px-2 py-0.5 bg-surface-tertiary rounded-full text-xs">{platforms.join(', ')}</span>
|
<span className="px-2 py-0.5 bg-surface-tertiary rounded-full text-xs">{platforms.join(', ')}</span>
|
||||||
)}
|
)}
|
||||||
{post.creator_name && <span>{t('review.createdBy')} {post.creator_name}</span>}
|
{post.creator_name && <span className="font-medium text-text-secondary">{t('review.createdBy')} <strong>{post.creator_name}</strong></span>}
|
||||||
{post.scheduled_date && <span>• {new Date(post.scheduled_date).toLocaleDateString()}</span>}
|
{post.scheduled_date && <span>• {new Date(post.scheduled_date).toLocaleDateString()}</span>}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -200,10 +200,11 @@ export default function PublicReview() {
|
|||||||
{artefact.description && (
|
{artefact.description && (
|
||||||
<p className="text-text-secondary mb-2">{artefact.description}</p>
|
<p className="text-text-secondary mb-2">{artefact.description}</p>
|
||||||
)}
|
)}
|
||||||
<div className="flex items-center gap-3 text-sm text-text-tertiary">
|
<div className="flex items-center gap-3 text-sm text-text-tertiary flex-wrap">
|
||||||
<span className="px-2 py-0.5 bg-surface-tertiary rounded-full capitalize">{artefact.type}</span>
|
<span className="px-2 py-0.5 bg-surface-tertiary rounded-full capitalize">{artefact.type}</span>
|
||||||
{artefact.brand_name && <span>• {artefact.brand_name}</span>}
|
{artefact.brand_name && <span>• {artefact.brand_name}</span>}
|
||||||
{artefact.version_number && <span>• {t('review.version')} {artefact.version_number}</span>}
|
{artefact.version_number && <span>• {t('review.version')} {artefact.version_number}</span>}
|
||||||
|
{artefact.creator_name && <span className="font-medium text-text-secondary">{t('review.createdBy')} <strong>{artefact.creator_name}</strong></span>}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3897,6 +3897,7 @@ app.get('/api/public/review/:token', async (req, res) => {
|
|||||||
res.json({
|
res.json({
|
||||||
...artefact,
|
...artefact,
|
||||||
brand_name: await getRecordName('Brands', artefact.brand_id),
|
brand_name: await getRecordName('Brands', artefact.brand_id),
|
||||||
|
creator_name: await getRecordName('Users', artefact.created_by_user_id),
|
||||||
approvers,
|
approvers,
|
||||||
version: versionData,
|
version: versionData,
|
||||||
version_number: reviewVersionNumber,
|
version_number: reviewVersionNumber,
|
||||||
|
|||||||
Reference in New Issue
Block a user