Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .npmrc

This file was deleted.

10 changes: 5 additions & 5 deletions docs/social-features-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -2245,7 +2245,7 @@ packages/web/app/components/search-drawer/
playlist-search-results.tsx # NEW: Playlist search result list
search-dropdown.tsx # MODIFIED: Add category pill at top, switch form per category
accordion-search-form.tsx # MODIFIED: Only render when category = 'climbs'
search-pill.tsx # MODIFIED: Show active category in pill summary
search-drawer-bridge-context.tsx # EXISTING: Bridge context that exposes search drawer open/summary/filter state to GlobalHeader

packages/web/app/components/board-page/
header.tsx # MODIFIED: Search bar also appears on home page
Expand Down Expand Up @@ -2378,7 +2378,7 @@ The search drawer is extended with a **search category pill bar** at the top, al
#### Current Architecture (reference)

The existing search system consists of:
- `SearchPill` (in `header.tsx`) -- triggers `SearchDropdown`
- `SearchDrawerBridgeInjector` (in `header.tsx`) -- registers the search drawer opener with `GlobalHeader` via bridge context
- `SearchDropdown` -- full-screen swipeable drawer with `AccordionSearchForm`
- `AccordionSearchForm` -- 4 collapsible filter panels (Climb, Quality, Progress, Holds)
- `UISearchParamsProvider` -- manages filter state with 500ms debounce
Expand Down Expand Up @@ -2472,10 +2472,10 @@ The playlist search category shows a simplified form:
#### Home Page Integration

The home page (`packages/web/app/(app)/page.tsx` or equivalent) is modified to:
1. Include the `SearchPill` component in the page header (same as climb list page)
1. Use the `SearchDrawerBridgeInjector` to register a search drawer opener with `GlobalHeader` via the bridge context
2. Pass `defaultCategory="users"` to the search drawer
3. The search pill shows "Search users..." as placeholder text when on the home page
4. Tapping the pill opens the unified search drawer with the Users category pre-selected
3. The search summary in `GlobalHeader` shows "Search users..." as placeholder text when on the home page
4. Tapping the search area in the header opens the unified search drawer with the Users category pre-selected

#### Climb List Page Integration

Expand Down
7,668 changes: 3,335 additions & 4,333 deletions package-lock.json

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@
"controller:format:check": "find embedded -name '*.cpp' -o -name '*.h' | xargs clang-format --dry-run --Werror"
},
"engines": {
"node": ">=18"
"node": "22.x"
},
"dependencies": {
"react": "^19.2.4",
"react-dom": "^19.2.4"
}
}
8 changes: 4 additions & 4 deletions packages/aurora-sync/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,13 @@
"@boardsesh/crypto": "*",
"@boardsesh/db": "*",
"@neondatabase/serverless": "1.0.2",
"commander": "^12.1.0",
"dotenv": "^17.2.3",
"commander": "^14.0.3",
"dotenv": "^17.3.1",
"drizzle-orm": "^0.45.1",
"ws": "^8.18.3"
"ws": "^8.19.0"
},
"devDependencies": {
"@types/node": "^22.0.0",
"@types/node": "^25.3.3",
"@types/ws": "^8.18.1",
"tsx": "^4.21.0",
"typescript": "^5.9.3"
Expand Down
28 changes: 13 additions & 15 deletions packages/backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,39 +22,37 @@
"db:studio": "drizzle-kit studio"
},
"dependencies": {
"@aws-sdk/client-s3": "^3.958.0",
"@aws-sdk/client-s3": "^3.1000.0",
"@boardsesh/aurora-sync": "*",
"@boardsesh/crypto": "*",
"@boardsesh/db": "*",
"@boardsesh/shared-schema": "*",
"@escape.tech/graphql-armor-cost-limit": "^2.4.3",
"@escape.tech/graphql-armor-max-depth": "^2.4.2",
"@graphql-tools/schema": "^10.0.30",
"@graphql-tools/schema": "^10.0.31",
"@panva/hkdf": "^1.2.1",
"@whatwg-node/fetch": "^0.10.13",
"busboy": "^1.6.0",
"dotenv": "^17.2.3",
"dotenv": "^17.3.1",
"drizzle-orm": "^0.45.1",
"graphql": "^16.12.0",
"graphql": "^16.13.0",
"graphql-type-json": "^0.3.2",
"graphql-ws": "^6.0.6",
"graphql-ws": "^6.0.7",
"graphql-yoga": "^5.18.0",
"ioredis": "^5.4.1",
"jose": "^4.15.9",
"ioredis": "^5.10.0",
"jose": "^6.1.3",
"tsx": "^4.21.0",
"uuid": "^13.0.0",
"ws": "^8.18.3",
"zod": "^3.24.0"
"ws": "^8.19.0",
"zod": "^4.3.6"
},
"devDependencies": {
"@types/busboy": "^1.5.4",
"@types/graphql-type-json": "^0.3.5",
"@types/node": "^25.0.3",
"@types/uuid": "^11.0.0",
"@types/node": "^25.3.3",
"@types/ws": "^8.18.1",
"drizzle-kit": "^0.31.8",
"postgres": "^3.4.7",
"drizzle-kit": "^0.31.9",
"postgres": "^3.4.8",
"typescript": "^5.9.3",
"vitest": "^4.0.16"
"vitest": "^4.0.18"
}
}
Loading
Loading