This commit is contained in:
2026-03-20 21:17:26 +01:00
parent 1a62fcb81d
commit 29c3ff8572
229 changed files with 13147 additions and 2577 deletions

View File

@@ -6,11 +6,65 @@ import ActivityReactions from './ActivityReactions'
function ActivityHeadline({ activity }) {
const artworkLink = activity?.artwork?.url
const artworkTitle = activity?.artwork?.title || 'an artwork'
const storyLink = activity?.story?.url
const storyTitle = activity?.story?.title || 'a story'
const mentionedUser = activity?.mentioned_user
const reaction = activity?.reaction
const commentAuthor = activity?.comment?.author
const targetUser = activity?.target_user
switch (activity?.type) {
case 'upload':
if (storyLink) {
return (
<p className="text-sm leading-6 text-white/70">
<span className="font-medium text-white">published </span>
{storyLink ? <a href={storyLink} className="text-sky-300 hover:text-sky-200">{storyTitle}</a> : <span className="text-white">{storyTitle}</span>}
</p>
)
}
return (
<p className="text-sm leading-6 text-white/70">
<span className="font-medium text-white">published </span>
{artworkLink ? <a href={artworkLink} className="text-sky-300 hover:text-sky-200">{artworkTitle}</a> : <span className="text-white">{artworkTitle}</span>}
</p>
)
case 'favorite':
return (
<p className="text-sm leading-6 text-white/70">
<span className="font-medium text-white">favorited </span>
{artworkLink ? <a href={artworkLink} className="text-sky-300 hover:text-sky-200">{artworkTitle}</a> : <span className="text-white">{artworkTitle}</span>}
</p>
)
case 'follow':
return (
<p className="text-sm leading-6 text-white/70">
<span className="font-medium text-white">followed </span>
{targetUser?.profile_url ? <a href={targetUser.profile_url} className="text-sky-300 hover:text-sky-200">@{targetUser.username || targetUser.name}</a> : <span className="text-white">another creator</span>}
</p>
)
case 'award':
return (
<p className="text-sm leading-6 text-white/70">
<span className="font-medium text-white">awarded </span>
{artworkLink ? <a href={artworkLink} className="text-sky-300 hover:text-sky-200">{artworkTitle}</a> : <span className="text-white">{artworkTitle}</span>}
</p>
)
case 'story_like':
return (
<p className="text-sm leading-6 text-white/70">
<span className="font-medium text-white">liked </span>
{storyLink ? <a href={storyLink} className="text-sky-300 hover:text-sky-200">{storyTitle}</a> : <span className="text-white">{storyTitle}</span>}
</p>
)
case 'story_comment':
return (
<p className="text-sm leading-6 text-white/70">
<span className="font-medium text-white">commented on </span>
{storyLink ? <a href={storyLink} className="text-sky-300 hover:text-sky-200">{storyTitle}</a> : <span className="text-white">{storyTitle}</span>}
</p>
)
case 'comment':
return (
<p className="text-sm leading-6 text-white/70">
@@ -80,7 +134,7 @@ export default function ActivityCard({ activity, isLoggedIn = false }) {
</div>
<div className="sm:ml-auto">
<ActivityArtworkPreview artwork={activity.artwork} />
<ActivityArtworkPreview artwork={activity.artwork} story={activity.story} />
</div>
</div>
</article>