Skip to content

feat: implement community discovery page and components - #719

Open
Ikechukwu-Patrick wants to merge 2 commits into
BigNathan1:mainfrom
Ikechukwu-Patrick:feature/community-discovery-296-299
Open

feat: implement community discovery page and components#719
Ikechukwu-Patrick wants to merge 2 commits into
BigNathan1:mainfrom
Ikechukwu-Patrick:feature/community-discovery-296-299

Conversation

@Ikechukwu-Patrick

Copy link
Copy Markdown

Closes #296
Closes #297
Closes #298
Closes #299

Summary
This PR implements the community discovery experience, allowing users to browse, search, and navigate available cooperatives on the CoopLumen platform. It establishes the core components (CommunityList and CommunityCard) alongside the /communities routing, complete with automated test coverage.

Changes Proposed

Definition of Done / Acceptance Criteria Checklist

  • Implemented on a branch and PR references the correct GitHub issues.
  • The UI matches the existing design system (CSS custom properties, dark-mode support).
  • Components have test coverage.
  • Keyboard and screen-reader accessibility is preserved (labels, focus order, ARIA).
  • CHANGELOG.md has been updated under [Unreleased].

@drips-wave

drips-wave Bot commented Sep 1, 2026

Copy link
Copy Markdown

@Ikechukwu-Patrick Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@BigNathan1

Copy link
Copy Markdown
Owner

Thanks @Ikechukwu-Patrick. I updated this branch against main for you — it was 36 commits behind and predated a repository reorganisation, so its earlier failures were partly not your fault. Now that it is current, four real issues remain. Requesting changes.

1. lucide-react is not a dependency. CommunityList.tsx imports it, but it appears nowhere in frontend/package.json, so npm ci in CI installs a tree without it and both the type-check and the build fail:

src/components/CommunityList.tsx(5,24): error TS2307: Cannot find module 'lucide-react'

Either add it (npm install lucide-react in frontend/, committing the lockfile change) or use an inline SVG. The existing components draw their own icons — see Alert.tsx or ToastDisplay.tsx — so there is no icon library in the project today, and adding one is a decision worth making deliberately rather than as a side effect of one component.

2. The import path does not match where the file is. Two files import @/components/communities/CommunityList, but the component is at src/components/CommunityList.tsx — there is no communities/ directory:

src/app/communities/page.tsx(3,31): error TS2307: Cannot find module '@/components/communities/CommunityList'
src/components/CommunityList.test.tsx(3,31): error TS2307: same

main now groups feature components by domain — components/loans/, components/reputation/, components/wallet/ — so components/communities/CommunityList.tsx is exactly the right home. Moving the file (with its stylesheet) makes both imports correct and matches the surrounding structure.

3. Two Community types are in conflict.

src/components/CommunityList.tsx(77,17): error TS2322: Type 'Community' is not assignable to ...
  Type 'Community' is missing the following properties: asset_code, asset_issuer, issuer_public_key, created_at

The new src/types/community.ts declares a Community that CommunityCard does not accept, because the card expects the shape the API actually returns. Please reuse the existing type rather than introducing a second one — a community with no asset_code cannot be rendered by the card, and the compiler is pointing at a real gap, not a nuisance.

4. Test file placement. CommunityList.test.tsx sits beside the component; every other suite lives in a __tests__/ directory next to what it tests. With the move in point 2 it belongs at components/communities/__tests__/CommunityList.test.tsx.

None of this is structural — the feature itself reads well, and the discovery page is a good addition. Run npm run type-check and npm test in frontend/ before pushing and CI should go green. Happy to re-review as soon as it does.

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

Labels

None yet

Projects

None yet

2 participants