Skip to content

Activity feed: financial types + redesigned cards - #981

Open
nicktytarenko wants to merge 3 commits into
mainfrom
stack/01-activity-feed-redesign
Open

Activity feed: financial types + redesigned cards#981
nicktytarenko wants to merge 3 commits into
mainfrom
stack/01-activity-feed-redesign

Conversation

@nicktytarenko

@nicktytarenko nicktytarenko commented Aug 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Add financial/related-work activity feed transformers and service scope support
  • Rebuild activity cards around work previews, header messaging, and fund CTAs
  • Update compact sidebar activity card and shared feed/comment helpers to match

Stack

  1. This PR ← foundation
  2. Fund sidebar widgets Fund sidebar: power card + recently visited #982
  3. Homepage (Activity / Fund / Proposals) Homepage hub: Activity / Fund / Proposals shared shell #983
  4. Navigation Navigration: Your Funding, Peer Review, Post menu #984

Introduce related-work/funding activity transformers and rebuild activity cards around work previews and header messaging so financial events render correctly.

Co-authored-by: Cursor <cursoragent@cursor.com>
@nicktytarenko
nicktytarenko requested a review from a team as a code owner August 1, 2026 13:38
@vercel

vercel Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
web Ready Ready Preview Aug 2, 2026 2:20pm

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1286d5d635

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

const [isContributeModalOpen, setIsContributeModalOpen] = useState(false);

if (!title) return null;
if (!work) return null;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Render self-contained activity entries

When the activity payload is a top-level document event (for example PAPER or RESEARCHHUBPOST for a published paper/grant/proposal) and does not include related_work, this early return drops the row entirely even though transformFeedEntry still builds the document from content_object. The previous activity card fell back to the entry content via getEntryMeta, so these entries remained visible; please add a fallback work context from the entry content instead of requiring entry.relatedWork.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there conditions in which work would be available on an activity feed item?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

related_work should be added to all entries
ResearchHub/researchhub-backend#3653
Every FeedEntry has a required unified_document. and related_work is built from that

@sonarqubecloud

sonarqubecloud Bot commented Aug 2, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
4.6% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

export const ActivityCardFull: FC<ActivityCardFullProps> = ({ entry }) => {
const { title, author, href } = getEntryMeta(entry);
const [reviewExpanded, setReviewExpanded] = useState(false);
const work = getActivityWorkContext(entry);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we rename getActivityWorkContext to something like getActivityWork ? context throws me off and makes me think of hooks

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure. will rename

)}

<div className="mt-5 -ml-[42px] tablet:!ml-0">
<WorkPreviewCard

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the WorkPreviewCard relies on presentation and accepts a "big bag of props"

Could we do something like:

<WorkPreviewCard work={work}>
  <WorkPreviewCard.Metadata>
    <ActivityWorkMetadata entry={entry} work={work} />
  </WorkPreviewCard.Metadata>

  <WorkPreviewCard.Actions>
    <ActivityWorkActions entry={entry} work={work} />
  </WorkPreviewCard.Actions>
</WorkPreviewCard>

And also in WorkPreviewCard.Actions we include modals and things of that nature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants