Skip to content

feature/fetching-skeleton - #208

Open
Robin-deng617 wants to merge 2 commits into
mainfrom
feature/fetching-skeleton
Open

Robin-deng617 wants to merge 2 commits into
mainfrom
feature/fetching-skeleton

Conversation

@Robin-deng617

@Robin-deng617 Robin-deng617 commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds a skeleton to all components that require fetching

Type of change

  • Feature
  • Bug fix
  • Chore / config
  • Hotfix

Checklist

  • My branch follows the naming convention (feature/, fix/, chore/, hotfix/)
  • My commit messages follow the conventional commits format
  • CI checks pass

Linked Issues

Closes #
Addresses #204
Related to #

@vercel

vercel Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
ssa Ready Ready Preview Oct 20, 2026 12:18am UTC

@Robin-deng617 Robin-deng617 changed the title added join card and highlight card skeleton feature/fetching-skeleton Oct 20, 2026

@joengy joengy left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Only few small changes Robin, sorry for the delay in comments was really busy last week. Shouldn't take too long to fix just let me know if you have any issues.

queryFn: () =>
fetchFromCMS<EventsResponse>('/events?depth=1&limit=100&sort=-date'),
select: (data) => data.docs,
export function useExecs() {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I think this file got overwritten by mistake.

useEvents.ts now holds an exact copy of useExecs (same name, same code) instead of the events hooks it had before. Nothing imports from useEvents.ts at the moment, so nothing breaks yet. But we'd end up with two useExecs hooks, and if someone later imports useEvents they'll get the wrong thing with no warning.

Suggested fix: revert this file to what's on main (git checkout origin/main -- web/src/hooks/useEvents.ts). If the events hooks aren't needed any more, deleting the file is fine too. Just not a copy of useExecs.

import SponsorsControlsPlaceholder from './components/SponsorsControlsPlaceholder'
import SponsorsGridSkeleton from './components/SponsorsGridSkeleton'

export default function SponsorsLoading() {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This file copies most of the sponsors page layout (hero, heading, the mascot / "Contact Us" section, footer) so the loading state looks the same.

You already used a nicer pattern on the home page in this PR: move the part that fetches data into its own small async component and wrap only that in <Suspense fallback={...}>. For sponsors that would mean:

  • page.tsx renders the hero, heading and contact section straight away (they don't need data),
  • the sponsor-of-the-week card and the grid sit inside <Suspense> with HighlightCardSkeleton / SponsorsGridSkeleton as the fallback.

Then this loading.tsx file and SponsorsControlsPlaceholder aren't needed. As a bonus, people won't see a search box that looks usable but ignores what they type while the page is loading.

This branch was successfully deployed

1 active deployment
Preview — 191aac35 Deployed Oct 20, 2026 by vercel[bot]
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