Commit Graph

221 Commits

Author SHA1 Message Date
Your Name b86d7eb28b improve post gallery interactions 2026-01-02 01:40:17 -05:00
Your Name 0d4dc7ebf8 fix media preview for uploads 2026-01-02 01:36:11 -05:00
Your Name c37d90500a show gallery preview while uploading 2026-01-02 01:28:43 -05:00
Your Name 97f8ce3c11 allow multiple images when creating posts 2026-01-02 01:23:34 -05:00
Your Name 3babb277d0 a 2026-01-02 01:12:56 -05:00
Your Name 842f777c34 Force fetch when view shifts 2025-12-31 02:49:37 -05:00
Your Name d9d3b9df20 Commit remaining frontend tweaks 2025-12-31 02:41:50 -05:00
Your Name c955b122e3 Smooth filter transitions 2025-12-31 02:36:59 -05:00
Your Name 0647dc823b Reset cluster focus on time change 2025-12-30 21:11:51 -05:00
Your Name fd5748f8df Fix startup crash after filter changes 2025-12-30 20:38:29 -05:00
Your Name 7ecf7a9779 Hard reset posts on time filter switch 2025-12-30 20:04:21 -05:00
Your Name e9195b3f49 Always apply time window on visible posts 2025-12-30 19:57:10 -05:00
Your Name bd512ba04d Switch time filters to hours-based range 2025-12-30 19:54:21 -05:00
Your Name d854da7c1b Stop over-filtering visible posts by bounds 2025-12-30 19:36:40 -05:00
Your Name 1e4807e6f2 Avoid filter flicker during smart-feed refresh 2025-12-30 19:24:34 -05:00
Your Name df242014bc Prevent stale fetches on filter change 2025-12-30 19:20:48 -05:00
Your Name 8fca9af710 Adjust time windows for map filters 2025-12-30 19:13:37 -05:00
Your Name 794b083356 Fix recent filter and ship pending UI tweaks 2025-12-30 18:11:28 -05:00
Your Name 5cc21194a0 Fix time filter refresh and polish search UI 2025-12-30 18:01:11 -05:00
Your Name d7700b154b Force map fetch on time filter change 2025-12-30 17:50:02 -05:00
Your Name 9014189e73 Trust server RECENT filter in map view 2025-12-30 17:42:08 -05:00
Your Name 378fd90dcd Loosen recent filter when date missing 2025-12-30 16:55:32 -05:00
Your Name c99dc9d8ff Fallback to created_at for time filter 2025-12-30 16:52:50 -05:00
Your Name bc9700d522 Use published_at for pruning and search radius 2025-12-29 22:39:05 -05:00
Your Name 0bd4988ad7 Adjust map radius and fetch limits 2025-12-29 22:25:59 -05:00
Your Name a9bc4d02e6 fix: tighten search bar layout 2025-12-28 23:48:41 -05:00
Your Name 972ba1afe5 feat: refine create flow and island UI 2025-12-28 22:50:32 -05:00
Your Name 909715c2d7 Improve map UX, theming, and privacy page 2025-12-27 14:50:18 -05:00
Your Name 55ecfbd34e Fix fakalyzer UI and realtime updates 2025-12-26 21:11:22 -05:00
Your Name b8ac7d2010 Enhance analytics, map overlay, and UI fixes 2025-12-26 19:21:04 -05:00
Your Name 6417194d90 Limit visible posts to 45 2025-12-26 02:34:30 -05:00
Your Name 453e17b6eb Always push history for modal back behavior 2025-12-26 02:32:21 -05:00
Your Name f6cda99b4c Fix back button closing modal 2025-12-26 02:27:39 -05:00
Your Name 8adab752ff Cap visible posts at 60 2025-12-26 02:01:26 -05:00
Your Name 09562d8876 Raise smart feed request limit to 60 2025-12-26 02:00:38 -05:00
Your Name 2eb182fccc Restrict map to bounds-only posts 2025-12-26 01:48:59 -05:00
Your Name d7bf3e22cb Show fallback posts when bounds empty 2025-12-26 01:40:11 -05:00
Your Name 68cb21fc23 Relax map bounds filter and add radius fallback 2025-12-26 01:34:25 -05:00
Your Name 92e9cfc566 Send zoom to smart feed and rely on reco 2025-12-26 01:16:13 -05:00
Your Name e15c78e950 Backfill smart feed with posts when sparse 2025-12-26 01:10:59 -05:00
Your Name 5685668d18 Debounce map fetch and cap feed size 2025-12-26 01:01:39 -05:00
Your Name 903622e523 Refine search picks and cap map fetch 2025-12-26 00:49:01 -05:00
Your Name 252c6b3891 Adjust search behavior and add GA tag 2025-12-26 00:41:20 -05:00
Your Name 81c64999c4 Filter map results when picking search suggestions 2025-12-26 00:28:12 -05:00
Your Name 43fefaf235 Limit visible posts in map view 2025-12-26 00:24:40 -05:00
Your Name 40b1924a77 Cap smart feed results and add search fetch 2025-12-26 00:20:04 -05:00
Your Name 80b266ca56 Add post visibility controls and island profile avatar 2025-12-25 23:29:52 -05:00
Your Name 1fcff38e56 Add asset privacy controls for post images 2025-12-25 22:37:10 -05:00
Your Name d06819181e Wire islands API and avatar uploads 2025-12-25 21:54:59 -05:00
Your Name e1e5999617 Close fullscreen modal on back 2025-12-25 21:28:27 -05:00
Your Name 406d1f5886 Add Keycloak Google SSO login UI 2025-12-25 21:19:10 -05:00
Your Name 5a9c49ab87 Use event date for modal and tighten truth rail 2025-12-25 17:09:03 -05:00
Your Name 3d7a33b06e Add truth rail and remove duplicate modal content 2025-12-25 16:39:10 -05:00
Your Name c4b7f6cb90 Normalize map image URLs 2025-12-25 02:29:55 -05:00
Your Name 8fa842ecb7 Refine sociowall feed and post media fallbacks 2025-12-25 00:45:15 -05:00
Your Name ffeaee6e88 Improve post modal auth flow and share handling 2025-12-24 23:02:11 -05:00
Your Name 40bc03d90d Add map clustering with priority pins 2025-12-24 14:59:14 -05:00
Your Name eca8c6c270 Improve map fetch, search UX, and filters 2025-12-24 14:30:44 -05:00
Your Name e38238d199 Fix: Offset upward for new posts and clear filters on pick
1. New post pin offset upward
   - Changed from {x: 0, y: 0} to {x: 0, y: -80}
   - Negative Y = moves UP on screen
   - Compensates for anchor:bottom positioning
   - Pin now appears at crosshair position

2. Clear filters when picking post from suggestions
   - When clicking a post in search results
   - Set mainFilter and subFilter to "All"
   - Ensures the post is visible
   - No more "post hidden by filters" issue

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 20:27:48 -05:00
Your Name 366cfc0417 Fix: Auto-adjust filters on search and fix post pin position
1. Auto-clear category filters when searching
   - When user searches, set mainFilter and subFilter to "All"
   - Ensures search results are visible regardless of category
   - No more hidden results due to filter mismatch

2. Fix post pin offset after creation
   - New posts (< 10 seconds old) have NO smart offset
   - Respects crosshair position chosen by user
   - Pin appears exactly where user aimed
   - Older posts still get smart offset to avoid overlaps

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 20:20:55 -05:00
Your Name 964a133f5b Feature: Intelligent zoom and fix dropdown z-index
1. Fixed dropdown z-index
   - Set .map-overlay-top z-index to 500
   - Now dropdown appears above filter buttons (z-index: 300)

2. Intelligent zoom when searching
   - 1 result: Zoom to that post (zoom level 14)
   - Multiple results: Calculate bounding box and fitBounds()
   - Shows all matching posts together on map
   - Padding of 100px on all sides
   - MaxZoom 15 to avoid zooming too close

When you search and press Enter, the map automatically adjusts
to show all matching results optimally.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 20:13:02 -05:00
Your Name b013a71ea6 Feature: Add clear button and fix dropdown z-index
Changes:
1. Added clear (X) button in search bar
   - Only appears when there's text
   - Clears search query AND filters
   - Clean X icon with hover effect

2. Fixed dropdown z-index
   - Changed from z-index: 50 to z-index: 9999
   - Now appears above all other UI elements

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 20:05:32 -05:00
Your Name 797859ac80 Feature: Add search filtering on Enter key
Users can now:
1. Type a query and press Enter (without selecting a suggestion) to filter posts on the map
2. When picking a post suggestion, it navigates AND filters by that post's title
3. When picking a city/place, it navigates but clears the filter

Changes:
- SmartSearchBar: Added onSearch prop, triggers on Enter with no active item
- MapView: Added handleSearch() to set searchQuery for filtering
- Posts are automatically filtered by usePostsEngine's matchesSearch()

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 16:10:06 -05:00
Your Name 9d906fb4a4 Fix: Simplify marker DOM structure for better map anchoring
Removed intermediate sw-simple-pin-container div that was causing
issues with MapLibre GL marker positioning. The root element is now
directly a flex container, which should fix pins staying at screen
position instead of following map geography during pan/rotation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 16:03:58 -05:00
Your Name 266292eba2 Final polish: Remove duplicate buttons, fix pin anchoring
1. Remove Duplicate Buttons (MapView.jsx):
   - Removed "My spot" and "New wire" buttons from map-top-actions
   - These functions already available in SmartSearchBar icons
   - Cleaner UI, less clutter

2. Fix Pin Anchoring - Pins Stay Fixed Now! (markerManager.js):
   - Root element now has fixed dimensions: width:40px, height:52px
   - Pin container positioned absolute bottom:0 (ensures correct anchor point)
   - Hover card uses bottom:100% instead of fixed pixel value
   - Transform includes translateY(-6px) for proper spacing
   - Result: Pins remain perfectly fixed at geographic position during zoom/pan

Pin DOM structure now:
```
<div root style="width:40px;height:52px"> (anchor bottom here)
  <div container style="position:absolute;bottom:0">
    <circle>image</circle>
    <triangle>point</triangle>
  </div>
  <div hover-card style="bottom:100%">preview</div>
</div>
```

The key: Root has explicit height, pin container at bottom,
so MapLibre anchor:"bottom" aligns triangle point with lat/lon

Tested: Pins now stay locked to position on zoom/pan 

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 15:48:01 -05:00
Your Name 28e760d616 Major UX improvements: Smart search, navigation, fixed markers
1. Smart Search Integration (MapView.jsx, SmartSearchBar.jsx):
   - Replace simple search bar with SmartSearchBar component
   - Suggestions appear on focus (popular cities/regions)
   - Suggestions update as user types (debounced 150ms)
   - Click suggestion → fly to location with appropriate zoom
   - Search triggers even with empty query for popular results

2. Navigation to Cities (MapView.jsx):
   - New handlePickSuggestion() function
   - Extracts coords from suggestion (supports coords array or lat/lon)
   - Uses map.flyTo() with smart zoom levels per type:
     * Cities: zoom 11
     * Regions: zoom 7
     * Posts: zoom 16
     * Profiles: zoom 14
   - Clears search after navigation

3. Fixed Marker Anchoring (markerManager.js):
   - Changed anchor: "center" → "bottom"
   - Markers now stay fixed at geographic position
   - Pin design: circle image + triangular point (52px height)
   - Point positioned at exact lat/lon location
   - No more drifting when map moves!

4. Improved Pin Design:
   - Circle (32px) with category color background
   - White border + shadow for visibility
   - Triangular point (16px) below circle
   - Image inside circle if available
   - Hover card positioned above pin (bottom: 58px)
   - Smooth transitions on hover/click

Mobile-friendly: Works on cellphone without console, visual feedback

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 15:39:58 -05:00
Your Name 069072dc14 Fix: Allow search suggestions with empty query for popular results
Changes:
- Comment out early return when query is empty
- Allow recoSearch to be called with empty/trimmed query
- Backend returns popular cities/regions when query is empty
- Enables showing suggestions immediately on focus (UX improvement)

Backend test confirms it works:
$ curl "http://localhost:8081/api/suggestions?q="
Returns: 6 popular suggestions (Montreal, Quebec City, Toronto, etc.)

$ curl "http://localhost:8081/api/suggestions?q=to"
Returns: Toronto, Seattle, Boston

Now users will see suggestions as they type + popular items on focus

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 15:30:45 -05:00
Your Name c659c0267d Fix: Hide PWA install button when installed, improve clustering, add debug logs
Fixes three major issues:

1. PWA Install Button (TopBar.jsx):
   - Import isRunningAsPWA() and canInstall() from pwaInstall.js
   - Add state to track if button should be shown
   - Listen to beforeinstallprompt and appinstalled events
   - Hide button when app is already installed or running as PWA

2. Search Suggestions Debug (SmartSearchBar.jsx, recoSearch.js):
   - Add console.log statements to trace search flow
   - Track: search query, results count, errors
   - Helps diagnose why suggestions don't appear
   - recoSearch: Log each endpoint attempt and response

3. Clustering Improvements (usePostsEngine.js, postPriority.js):
   - Reduce maxFullCards: 15 → 12 (fewer full cards)
   - Increase clusterRadius: 0.0015 → 0.002 (~200m for better grouping)
   - Increase minScoreForCard: 35 → 50 (stricter threshold)
   - Reduce default recoScore: 50 → 40 (lower baseline)
   - Add console.log for prioritization results
   - Result: More posts shown as simple markers, less clutter

Debug logs will be visible in browser console to diagnose issues

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 15:23:44 -05:00
Your Name 76adb74833 Add intelligent post clustering and simple markers
Implement smart prioritization system to reduce map clutter:
- Create priority scoring based on reco score, category, freshness, distance, engagement
- Cluster nearby posts and show best post as full card, others as simple markers
- Simple markers: circular icons with category colors, hover preview, click to expand
- Max 15 full cards displayed, rest shown as compact markers
- Optimize search debounce: 220ms → 150ms for faster suggestions

New files:
- postPriority.js: Scoring and clustering algorithm

Updated:
- markerManager.js: Add createSimpleMarkerForPost() with hover cards
- usePostsEngine.js: Use prioritizePosts() to separate full cards vs simple markers
- SmartSearchBar.jsx: Faster debounce (150ms), increased limit to 12 suggestions

Result: Less visual clutter, better UX with prioritized content

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 15:15:53 -05:00
Your Name 290e713796 Add autocomplete suggestions with smart zoom
- Update recoSearch to use /api/suggestions endpoint
- Improve zoom levels for different types:
  * Cities: zoom 11
  * Regions: zoom 7
  * Posts: zoom 16
  * Profiles: zoom 14
- Support lat/lon in normalized results
- Real-time suggestions as user types

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 11:59:11 -05:00
Your Name a3903906df Integrate smart feed and unified search
- Update fetchSmartFeed() to call backend /api/smart-feed
- Update fetchUnifiedSearch() to call backend /api/unified-search
- Replace fetchPosts() with fetchSmartFeed() in usePostsEngine
- Add /api/unified-search as primary search endpoint
- Search now queries posts, profiles, and places together
- Map now shows personalized and trending posts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 11:32:59 -05:00
Your Name 2c3722146a Fix map center drift by using geographic center instead of bounds center
Problem: Map position drifted north/higher on each reload because
bounds.getCenter() returns a visually offset center when pitch is applied

Solution:
- Use map.getCenter() for accurate geographic center (not affected by pitch)
- Save and restore bearing (rotation) along with pitch
- Store: lat, lon, zoom, pitch, bearing

Before: bounds.getCenter() → visual center (offset by 3D tilt)
After: map.getCenter() → true geographic center

This ensures the map returns to the exact same position after reload,
regardless of the 3D tilt angle.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 23:05:44 -05:00
Your Name f22b9dfe06 Fix pitch persistence to prevent view drift on reload
Problem: Map pitch was always forced to 45° instead of being restored,
causing the view to appear shifted higher after each reload

- Save current pitch value to localStorage on moveend
- Restore pitch from localStorage on map initialization
- Remove forced pitch=45 on map load event
- Default to 45° only if no saved pitch exists

This prevents the map from drifting north/higher with each page reload
while maintaining the 3D tilt effect.

Auth: Session persistence already implemented via localStorage tokens
- Tokens are saved in localStorage and restored on mount
- Auto-refresh runs every 30s to keep session alive
- If session issues persist, check browser console for specific errors

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 22:59:30 -05:00
Your Name d845fd7a5a Fix marker stability and reduce image preview size
- Use deterministic hash-based offset calculation for stable marker positions
- Markers now stay in same position across zoom/pan operations
- Check geographic distance instead of pixel distance for clustering
- Reduce image preview from 60px to 40px for compact modal
- Reduce button font size to save space

Fixes: Markers no longer jump around when zooming
Fixes: Modal stays compact with image preview

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 22:51:05 -05:00
Your Name c3e9426e64 Improve map UX: compact modal, visible crosshair, smart marker overlap
- Reduce create post modal height (max 45vh) and add scroll
- Lower modal position (bottom: 8%) to keep map visible
- Move crosshair higher (top: 30%) for better visibility
- Implement smart marker offsetting for nearby posts
- Add visual connection line from offset markers to true position
- Create cascade effect for clustered markers (45° circular pattern)
- Maintain pointer accuracy when zooming

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 22:44:50 -05:00
Your Name 2c4c9a7065 Add image upload and category icons to map cards
- Add image upload functionality with file picker and URL input
- Display custom uploaded images or category-specific FontAwesome icons
- Add icon styles for all themes (dark, blue, light)
- Map unique icons to each category and subcategory (News, Friends, Events, Market)
- Update card templates to show 72x72px icon/image on the left
- Add image preview and validation (max 5MB, images only)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 22:36:20 -05:00
Your Name 48edeb03fe update frontend 2025-12-21 21:59:31 -05:00
Your Name 555342d377 update frontend 2025-12-21 20:01:42 -05:00
Your Name 7ea3b2c4fa update frontend 2025-12-21 19:54:35 -05:00
Your Name 862e9f4303 update frontend 2025-12-21 19:48:12 -05:00
Your Name 9314caec42 update frontend 2025-12-21 19:44:26 -05:00
Your Name e102911c06 update frontend 2025-12-21 19:36:13 -05:00
Your Name 8a954a2ff9 update frontend 2025-12-21 19:26:34 -05:00
Your Name f2f902f24b update frontend 2025-12-21 19:21:18 -05:00
Your Name b5db6e0ca8 update frontend 2025-12-21 19:19:22 -05:00
Your Name 13646408eb update frontend 2025-12-21 19:17:48 -05:00
Your Name 26a8bf84e8 update frontend 2025-12-21 19:17:06 -05:00
Your Name 0849f38629 update frontend 2025-12-21 01:28:05 -05:00
Your Name a9351196df update frontend 2025-12-21 01:03:57 -05:00
Your Name 477d8a13b3 update frontend 2025-12-21 00:29:28 -05:00
Your Name fe6bd0d808 update frontend 2025-12-21 00:29:08 -05:00
Your Name 9da994cfbb update frontend 2025-12-21 00:28:26 -05:00
Your Name a19e179c2b update frontend 2025-12-20 23:43:32 -05:00
Your Name 04dc5f695c update frontend 2025-12-20 23:17:28 -05:00
Your Name 0dad16e338 update frontend 2025-12-20 22:54:48 -05:00
Your Name 0989edbd09 update frontend 2025-12-20 22:51:21 -05:00
Your Name 86d6f153c6 update frontend 2025-12-20 22:32:11 -05:00
Your Name 5bffb63028 bleh 2025-12-20 22:21:59 -05:00
Your Name 1b52075561 yo 2025-12-20 22:01:57 -05:00
Your Name 3e34dbde20 nleh 2025-12-20 03:23:36 -05:00