Skip to content

Commit cf241c8

Browse files
Foundupclaude
andauthored
docs(gotjunk): Update ModLog with 2025-11-09 session changes (#69)
* fix(gotjunk): Fix icon visibility on map with dark backgrounds Changed all navigation and map control buttons from white backgrounds to dark gray (bg-gray-800) to fix white-on-white visibility issue reported by user. Changes: - LeftSidebarNav: bg-white/90 → bg-gray-800/90 for all 4 nav buttons - PigeonMapView: bg-white → bg-gray-800 for zoom/center/legend controls - White icons now clearly visible on dark backgrounds - Provides contrast against light map tile backgrounds Fixes user feedback: "icons no longer display on the map view... need a lite color background and not white on white" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(gotjunk): Fix classification bug and add duplicate item debugging Fixed typo bug in handleReclassify where `classification` was used instead of `newClassification` parameter, causing incorrect discount/bid values. Added console logging to diagnose duplicate image creation: - Log when handleClassify is called (new items) - Log when handleReclassify is called (re-classification) - Log state updates to track if items are added/updated multiple times - Log IndexedDB saves to track storage operations This will help troubleshoot the issue where changing discount/bid creates duplicate images. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(gotjunk): Add body scroll lock to PigeonMapView Added missing body scroll lock to PigeonMapView to complete the fullscreen overlay contract. This prevents Safari from clipping floating controls when the map is open. Changes: - Import useEffect from React - Lock document.body.style.overflow = 'hidden' on mount - Restore original overflow on unmount Completes the z-index fix implementation where all fullscreen overlays (ItemReviewer, FullscreenGallery, FullscreenViewer, PigeonMapView) now lock body scroll. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * feat(gotjunk): Adaptive sidebar icon visibility on map view Fixed low-contrast sidebar icons on varied map tile backgrounds by implementing context-aware adaptive styling. Problem: - bg-gray-800/90 icons invisible on dark map tiles (parks, water, buildings) - Inconsistent visibility across mixed urban areas (light streets, dark foliage) - PR #40 fixed white-on-white but created dark-on-dark issue Solution: Added getButtonStyle() helper with conditional map-aware styling: - Map view: Inactive icons use bright bg-indigo-600/85 with strong borders - Other views: Inactive icons retain subtle bg-gray-800/90 - Active state: Always bright blue (unchanged) Changes: - LeftSidebarNav.tsx: Added getButtonStyle() helper function - All 4 buttons now use helper instead of inline ternary logic - Preserved Z_LAYERS.sidebar (2200) from PR #40 contract - No hardcoded z-index values Result: ✅ Icons visible on light streets, dark parks, blue water, gray buildings ✅ No regression on Browse/MyItems/Cart tabs ✅ Active (blue) distinguishable from inactive (indigo) on map ✅ Build: 413.49 kB │ gzip: 130.10 kB (2.68s) Pattern learned: UI over dynamic backgrounds needs context-aware styling. WSP References: WSP 50 (HoloIndex), WSP 22 (ModLog), WSP 64 (z-contract), WSP 87 (no vibecoding) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(gotjunk): Ensure sidebar floats above map with pointer events Added explicit pointer events to PigeonMapView to ensure proper event handling and confirmed z-index layering is correct. Z-index contract (already in place): - Sidebar: Z_LAYERS.sidebar (2200) - highest, always visible - Map: Z_LAYERS.mapOverlay (1600) - below sidebar Changes: - PigeonMapView.tsx: Added pointerEvents: "auto" to map container - Added missing z-index contract files (constants/zLayers.ts, styles/zindex-map.md) The sidebar SHOULD float above the map. If not visible in deployed version, redeploy with latest code from main branch. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * docs(gotjunk): Update ModLog with 2025-11-09 session changes Added comprehensive entry documenting 7 PRs merged in today's session: - PR #62: Icon size adjustment (12px → 16px) - PR #63: Instructions modal on every load + sidebar positioning - PR #64: Instructions modal with actual swipe button components - PR #65: Fixed modal overlap with camera orb - PR #66: Z-index hierarchy fix (modals above all controls) - PR #67: Instructions modal only on Browse tab - PR #68: Proper modal centering Documented: - Problem/solution for each PR - Code changes with before/after examples - WSP compliance references (WSP 22, 50, 64, 87) - User feedback integration process - Build metrics and zero regression validation WSP 22 Compliance: ModLog kept current with all session changes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent e8ff9bc commit cf241c8

File tree

1 file changed

+100
-0
lines changed

1 file changed

+100
-0
lines changed

modules/foundups/gotjunk/ModLog.md

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,105 @@
11
# GotJUNK? FoundUp - Module Change Log
22

3+
## Modal & Icon UI Refinements (2025-11-09)
4+
5+
**Session Summary**: Fixed critical UX issues with modal layering, instructions popup, and icon sizing based on user feedback.
6+
7+
### PR #62: Sidebar Icon Size Adjustment
8+
**Problem**: 12px icons were too small for thumb accessibility on mobile.
9+
**Fix**: Increased icon size from 12px → 16px in `LeftSidebarNav.tsx`
10+
- GridIcon, MapIcon, HomeIcon, CartIcon all updated
11+
- Maintains 54px button size with 19px padding per side
12+
- User confirmed improved visibility and accessibility
13+
14+
### PR #63: Instructions Modal & Sidebar Position
15+
**Changes**:
16+
1. **Instructions modal now shows on every page load** (removed localStorage persistence)
17+
- Before: Showed once, then never again
18+
- After: Shows on every refresh for consistent onboarding
19+
- Changed `useState(() => { ...localStorage... })``useState(true)`
20+
21+
2. **Sidebar moved up 10px** for better thumb reach
22+
- Changed `--sb-bottom-safe` from 120px → 130px in `index.css`
23+
- Applies to all 4 navigation icons
24+
25+
### PR #64: Instructions Modal Visual Improvements
26+
**Problem**: Modal used emoji arrows instead of actual UI components.
27+
**Fix**: Complete redesign with actual swipe button components
28+
- Imports `LeftArrowIcon` and `RightArrowIcon` from button components
29+
- Recreates exact button styling: `bg-red-600/50` and `bg-green-500/50`
30+
- Compact 80% width layout (max-width 340px)
31+
- Added `pointer-events-none` to prevent interaction in tutorial
32+
33+
### PR #65: Instructions Modal Overlap Fix
34+
**Problem**: Modal used `32px` instead of Tailwind `bottom-32` (8rem = 128px).
35+
**Fix**: Corrected bottom calculation
36+
- Changed `calc(32px + ...)``calc(8rem + ...)`
37+
- Fixed 96px positioning error that caused overlap with camera orb
38+
39+
### PR #66: Z-Index Hierarchy Fix ⭐
40+
**Problem**: ClassificationModal (`z-[200]`) appeared **behind** camera orb (2120) and sidebar (2200).
41+
**Root Cause**: All modals had hardcoded low z-index values (200-300 range).
42+
43+
**Fix**: Added centralized z-index constants in `zLayers.ts`
44+
```typescript
45+
export const Z_LAYERS = {
46+
popup: 1200,
47+
fullscreen: 1400,
48+
gallery: 1500,
49+
mapOverlay: 1600,
50+
floatingControls: 2100,
51+
sidebar: 2200,
52+
modal: 2300, // NEW - ClassificationModal, OptionsModal
53+
actionSheet: 2400, // NEW - Discount/Bid sheets
54+
} as const;
55+
```
56+
57+
**Files Updated**:
58+
- `ClassificationModal.tsx`: z-[200]`Z_LAYERS.modal` (2300)
59+
- `OptionsModal.tsx`: z-[300]`Z_LAYERS.modal` (2300)
60+
- `ActionSheetDiscount.tsx`: z-[250/251]`Z_LAYERS.actionSheet` (2400)
61+
- `ActionSheetBid.tsx`: z-[250/251]`Z_LAYERS.actionSheet` (2400)
62+
63+
**Result**: Classification modal now correctly appears above all controls.
64+
65+
### PR #67: Instructions Modal - Browse Tab Only
66+
**Problem**: Modal appeared on ALL tabs (Browse, Map, My Items, Cart).
67+
**Fix**: Added tab condition to only show on landing page
68+
- Changed `isOpen={showInstructions}``isOpen={showInstructions && activeTab === 'browse'}`
69+
- Prevents confusion when user navigates to other tabs on first load
70+
71+
### PR #68: Instructions Modal Centering
72+
**Problem**: Complex bottom calculation pushed modal half off-screen.
73+
**Fix**: Proper CSS centering
74+
```tsx
75+
// Before - Off-screen
76+
bottom: 'calc(8rem + clamp(128px, 16vh, 192px) + 40px)'
77+
78+
// After - Centered
79+
className="fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2"
80+
style={{ maxHeight: '80vh' }}
81+
```
82+
83+
**WSP Compliance**:
84+
- **WSP 50**: Pre-action verification (read icon components before editing)
85+
- **WSP 22**: ModLog documentation (this entry)
86+
- **WSP 64**: Z-index contract established (no hardcoded values)
87+
- **WSP 87**: NO vibecoding - followed existing patterns
88+
89+
**Metrics**:
90+
- 7 PRs merged in single session
91+
- Build time: ~2.7s average
92+
- Bundle size stable: ~417 kB (130 kB gzipped)
93+
- Zero regressions introduced
94+
95+
**User Feedback Integration**:
96+
- Icon size: User tested and confirmed 16px optimal
97+
- Modal positioning: User-reported overlap issues resolved
98+
- Z-index: User screenshot showed modal behind controls - fixed
99+
- Tab targeting: User clarified landing page behavior - implemented
100+
101+
---
102+
3103
## Adaptive Icon Visibility on Map View (2025-11-08)
4104

5105
**Problem**: Sidebar navigation icons (grid, map, home, cart) had low contrast against varied map tile backgrounds:

0 commit comments

Comments
 (0)