Skip to content

Conversation

@VictorHLi404
Copy link

Summary

Adds the basic component for admin to view volunteers and reject and approve volunteer applications.

Sets up basic API interface to access public read endpoints for items, and defines simple starting components for catalogue UI.

Related Issues
Relates to #19 as it pulls data from the defined endpoint.
Closes #9.

Changes

Adds useItems hook and API pathway for /public/items
Added basic component design for ItemCard and ItemList using CSS grid
Introduced shared search bar component with filters and API refreshment upon filter change

Testing
Currently not testable with public items API endpoint as it is still a work in progress at #19.

Screenshots / UI (if applicable)
After:

image

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request introduces a public-facing catalogue interface for browsing collection items, though there's a discrepancy with the PR description which mentions volunteer management features that aren't present in the code. The main additions include a complete data fetching layer using React Query, reusable UI components for displaying items, and a search/filter interface for the catalogue.

Key Changes:

  • Implemented API client for public items endpoint with filtering capabilities (search, platform, on-floor status, ordering)
  • Created reusable catalogue UI components (ItemCard, ItemList, CatalogueSearchBar) using CSS Grid for responsive layout
  • Added CataloguePage with search, filter, and real-time data fetching via React Query
  • Upgraded Vitest from v2.1.8 to v4.0.16 (major version jump)

Reviewed changes

Copilot reviewed 16 out of 18 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
frontend/src/vite-env.d.ts Defines TypeScript types for Vite environment variables, specifically VITE_API_BASE_URL
frontend/tsconfig.app.json Added explicit reference to vite-env.d.ts for environment variable type safety
frontend/.env.example Example configuration for API base URL environment variable
frontend/src/lib/types.ts Added PublicCollectionItem interface for public API responses
frontend/src/lib/filters.ts Defined ItemFilter interface for query parameters
frontend/src/lib/constants.ts Added ordering options for catalogue sorting
frontend/src/api/items.api.ts Implemented items API client with getAll method and query parameter handling
frontend/src/api/index.ts Exported apiClient and items API for use across the app
frontend/src/actions/useItems.ts Created React Query hook for fetching items with filters
frontend/src/actions/index.ts Exported useItems hook
frontend/src/components/items/ItemCard.tsx Display component for individual collection items with basic styling
frontend/src/components/items/ItemList.tsx Grid-based container component for rendering multiple ItemCards
frontend/src/components/items/CatalogueSearchBar.tsx Search and filter controls for catalogue (search, platform, ordering, on-floor status)
frontend/src/components/items/index.ts Barrel export for all item-related components
frontend/src/pages/public/CataloguePage.tsx Main catalogue page integrating search, filters, and item display with loading/error states
frontend/src/App.tsx Added /catalogue route to application routing
frontend/package.json Upgraded Vitest and related testing packages from v2.1.8 to v4.0.16
frontend/package-lock.json Updated dependency lockfile reflecting Vitest v4 and transitive dependencies
Files not reviewed (1)
  • frontend/package-lock.json: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@vivjd vivjd changed the title Feature/public catalogue UI feat(catalogue): public catalogue UI Jan 13, 2026
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.

Create Public Catalog Page with Search and Filtering

3 participants