- Fix race condition between content filter effect and general filter effect
- Map content filters to proper content_type values for backend
- Links → link, Image → image/picture/photo, Text → post/system/news_enriched
- Live → live/camera/stream, Video → video
- Ensure forceFetch fires moveend to trigger refetch
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use event_tags (API field) instead of tags
- Add impact-based coloring (green positive, red negative, default neutral)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update renderTagPills to accept topicImpacts and apply color classes
- Tags colored by impact: negative=red, neutral=blue, positive=green
- Add CSS for tag color classes (sw-tag-negative, sw-tag-neutral, sw-tag-positive)
- Tags display below title in post modals
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Extract filename only (not full path) for deduplication
- Same image as https://domain/path/file.jpg and /path/file.jpg
were not being deduplicated because full paths differ
- Updated both PostDetailModal.jsx and markerManager.js
- Added fetchPostById to get full post data with image_urls
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
media_urls is for video files, image_urls is for images.
Updated PostDetailModal.jsx and markerManager.js to exclude
media_urls from gallery image collection.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix duplicate CSS rule that was overriding card size
- Increase scale from 0.45 to 0.52 (desktop) and 0.38 to 0.42 (mobile)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Handle _l, _m, _s size suffixes in addition to _large, _medium, _small
- Prevents carousel from showing duplicate images in different sizes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Larger padding, dot, and text for compact markers
- max-width increased from 180px to 220px
- font-size increased from 11px to 13px
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Position at 64px from top (desktop & mobile)
- z-index 830 (above FAB, below searchbar dropdown)
- Throttle map updates to 2 seconds
- Click outside to close expanded view
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Weather widget in top-left slot with compact pill display
- Click to expand 7-day forecast
- Uses apps system via Pulsar with Open-Meteo fallback
- Click outside to close expanded view
- Throttled updates (1/sec) when moving map
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add EventClustersLayer component with convex hull algorithm
- Clusters appear as organic shapes around member posts
- Only visible when Clusters filter is selected
- Add fetchEventClusters API function
- Update ContentFilters with cluster filter option
- Filter posts by cluster membership when filter active
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added detection for posts with images when content_type is empty
- Posts with images now correctly show as polaroid style instead of news
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Unknown content types (systems, news-scrapper) treated as text
- Filter "text" now includes news and unknown types
- Add KNOWN_CONTENT_TYPES set for type detection
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Always dispatch live-post-deleted when stream ends (removes marker)
- If saved, also dispatch live-post-created with video post
- Add commenter avatar fetching from profile API
- Display profile pictures in live chat comments
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fullscreen video preview with gradient overlays
- Pre-live: Collapsible settings panel for title/category
- Live: Floating comments section with toggle
- Modern pill-style badges for LIVE/viewers/timer
- Camera switch and settings buttons on right side
- End stream confirmation with Save/Discard/Continue options
- Websocket events for live-post-updated/deleted already handled
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add liveData state to MapView for title/category/subCategory
- Pass initialTitle, initialCategory, initialSubCategory to LiveKitBroadcast
- Skip form in LiveKitBroadcast when data provided from PostCreateModal
- Show ready state with title/category instead of redundant form
- Fix auto-scroll only on new comment (v0.0.90)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add justCommentedRef to track when user submits a comment
- Only scroll to comments bottom when user adds new comment
- Don't auto-scroll when modal opens with existing comments
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fetch profile avatars for commenters
- Apply post category gradient to comment avatars
- Add events, friends, market to CATEGORY_CONFIG
- Fix first comment race condition with setTimeout
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Category icon shown when post has no image (with gradient background)
- Author avatar fetched from profile API and displayed
- Logo position adjusted (6px down, 1px left)
- Comments auto-open when existing comments present
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
TopBar:
- Responsive logo size (adapts to mobile)
- Logo positioned correctly (+5px down, +2px right)
- Brand text "SOCIOWIRE" visible on all sizes
- Tagline "Wired to Life" hidden on mobile
- Smaller action buttons on mobile (w-7 → w-9 responsive)
- Friends button always visible (opens login if not auth)
- Removed duplicate search bar and location button
PostDetailModal:
- Truth score block made more compact
- Comments use correct API fields (username, body)
- Comments auto-open when there are existing comments
- Fixed comment API response handling (ok at end of spread)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add unified getPostType() detection for 6 post types: link, story, picture, video, live, camera
- Create dedicated Hero components for each post type
- Quebec511 cameras now use proxy stream /live/api/stream/{id}
- Fix media URLs to use relative paths (same origin)
- Add scroll lock when modal is open
- Generic link display (domain name instead of "Read article")
- Stories with images show gallery, text-only shows gradient
- Support long text content with proper scrolling
- Add i18n keys for modal (EN/FR/ES)
- markerManager.js now dispatches React event for all post types
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove old truthBadge click handler that cycled through votes
- Add check to skip vote if already voted that way (no double-click bug)
- Fetch initial vote state and show active button
- Update button styles to show current vote
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove duplicate truth vote section (was showing 2 truth scores)
- Add thumbs up/down buttons to existing truth badge
- Fix client.js to use truth_score (final score) instead of user_score (vote effect)
- Both regular and cluster modals have voting in the badge
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add truth vote section with thumbs up/down buttons and progress rail
- Fix image gallery deduplication in map overlay (add image_urls support)
- Both regular and cluster modals now have the truth voting UI
- Score display with color-coded rail (green/amber/red)
- Interactive button feedback on vote
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Step 1: Show crosshair to pick location with confirm/cancel buttons
- Step 2: Open PostCreateModal with selected coords
- Fix createPost to use authHeaders() automatically
- Add location picker UI with hints and styled buttons
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace old 3-step wizard with single-screen PostCreateModal
- Simplify handleOpenCreate function
- Connect modal submit to createPost API
- Connect Go Live button to LiveKit broadcast
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
TopBar:
- Animated gradient accent line
- Glowing logo with pulse effect
- Theme selector pills on desktop (visible again)
- Cleaner action buttons with color states
PostCreateModal:
- 4 content modes: Text, Photo, Link, Live
- Link mode with auto-preview
- Live mode with Go Live button
- Category and sub-category selection
- Image upload with gallery
- All features from old wizard in single screen
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Simplified topbar design (cleaner, more minimal)
- Created PostCreateModal.jsx for single-screen post creation
- Removed complex animated gradients from topbar
- Made logo and brand text cleaner
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace complex truth rail with simple badge in post modal
- Truth score now displays like small cards (colored circle with number)
- Remove API calls that were overwriting correct truth scores
- Add vote functionality to badge (click to cycle vote)
- Fix truth score not updating due to WebSocket race conditions
- Various UI color and style improvements
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
PostCardNew:
- Photo/image: Polaroid-only layout (no duplicate card)
- Video: Play button overlay with title at bottom
- Camera/Live: TV style with LIVE badge and title overlay
- Default: Full card with header/body/footer
- Hidden header/body for media content types
Live Comments:
- Added comments panel to LiveKitViewerModal
- Optimistic UI update for instant feedback
- Auto-scroll and polling every 3 seconds
- Styled chat interface with animations
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
PostCardNew now renders different styles based on content_type:
- camera/live/stream: TV-style with red pulsing LIVE badge
- video: Card with centered play button overlay
- photo/picture/image: Polaroid white-frame style
- default: Standard gallery image
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Islands Universe:
- Grid-based positioning to prevent overlap
- Much bigger islands (120px) with detailed SVG
- Beach rings, palm trees, huts, sparkles
- Info cards with username, post count, terrain type
- Zoomed out view to see all islands
Island Viewer:
- Bigger island visualization (320-400px)
- Terrain-specific decorations (emoji)
- Add Post button for island owners
- Share Island button with native share API
Post Modal:
- Hide "Open source" button when no URL
- Changed to link instead of disabled button
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Make TopBar buttons smaller on mobile (icon-only)
- Remove language label on mobile, reduce padding/gaps
- Add scrollbar-hide utility for clean overflow
- Fix marker CSS conflict that broke positioning
- Remove conflicting .sw-appear animation that overrode marker styles
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add TopBarNew with Framer Motion animations and compact design
- Enhance map markers with bounce-in animations and hover effects
- Improve cluster styles with gradient backgrounds
- Add comprehensive theme system (dark/blue/light modes)
- Add theme-aware utilities and improved contrasts
- Better accessibility with focus rings and motion preferences
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add double-click guard in handleGoLive to prevent duplicate posts
- Update LiveKit URLs to use stream.sociowire.com
- Remove deprecated WebRTC broadcast/viewer components
- Bump service worker cache to v11
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove localStorage/cookie tracking for installed state
- Rely on browser's beforeinstallprompt event (only fires if not installed)
- Use display-mode: standalone to detect running as PWA
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ?signup=1 now opens clean signup form (clears old messages)
- Live filter only shows camera/live/stream (excludes video)
- Video filter shows only recorded videos
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add share menu with 3 options: Copy URL, Copy with coords, Share via
- Share URL includes lat/lon/zoom/category/time filters
- Restore shared view from URL params on page load
- Fix videos ALWAYS using simple markers (blue pin + play button)
- Camera pins: blue 64x48 with red LED pulse
- Video pins: blue 64x48 with play button overlay (no LED)
- Polaroid cards: reduced from 180x230 to 150x190
- Force camera/video to simple markers in fallback scoring
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Camera posts now use small blue pins with red flashing dot
- Fixed carousel gallery arrows for posts with multiple images
- Added title and source text to polaroid mini cards
- Bumped version to 0.0.21
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>