Commit Graph

35 Commits

Author SHA1 Message Date
Nuwan 5da85c1e79 feat(28-01): create external VU store with RAF batching
- Install use-sync-external-store shim for React 16 compatibility
- Create vuStore.js with external state management
- Implement RAF batching loop to limit updates to 60fps
- Add updateLevel, removeLevel, getSnapshot, getLevelSnapshot, subscribe, reset methods
- Store VU data outside React to avoid reconciliation overhead

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 20:19:41 +05:30
Nuwan 41e6a82c5d test(08-02): add failing tests for JKChatMessageList
RED phase: Create test file with 3 test cases:
- Shows empty state when no messages
- Shows loading spinner when fetching
- Renders messages when available

Install @testing-library/react@12 and @testing-library/jest-dom@5
(compatible with React 16).

Create setupTests.js for jest-dom matchers.

Tests fail as expected (component not implemented yet).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-27 14:06:19 +05:30
Nuwan b4fe7aaaa0 test(08-02): add failing test for formatTimestamp utility
RED phase: Create test file with 6 test cases for timestamp formatting:
- "Just now" for messages within last minute
- "X minutes ago" for messages within last hour
- "X hours ago" for messages within last day
- "Yesterday" for previous day messages
- Date format (MM/DD/YYYY) for older messages
- Graceful handling of invalid dates

Install dayjs for timestamp formatting utility.

Tests fail as expected (utility not implemented yet).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-27 14:04:09 +05:30
Nuwan 9cfef7d562 feat: migrate JKSessionScreen state to Redux with comprehensive testing
Phase 1 - Modal State Migration:
- Migrated 8 modal useState hooks to Redux (sessionUISlice)
- Centralized all modal state management (settings, invite, volume, recording, leave, jamTrack, backingTrack, mediaControls)
- Added modal actions: openModal, closeModal, toggleModal, closeAllModals

Phase 2 - Session Lifecycle Migration:
- Migrated session lifecycle to Redux (activeSessionSlice)
- State: hasJoined, guardsPassed, userTracks, connectionStatus, participants, recordingState
- Added async thunks: fetchActiveSession, joinActiveSession, leaveActiveSession
- Integrated connection monitoring with Redux
- Added clearSession action for proper cleanup on leave
- Created useSessionWebSocket hook for WebSocket-to-Redux bridge
- Added leaveSession API endpoint to rest.js

Testing Infrastructure:
- Created 57 unit tests (21 for sessionUISlice, 36 for activeSessionSlice)
- Added automated test runner: run-phase-tests.sh
- Added test:unit script to package.json for Jest-based testing
- All tests passing

Documentation:
- Created docs/ folder for better organization
- Added comprehensive testing guide (TESTING_GUIDE_PHASE1_AND_2.md)
- Added quick reference card (TESTING_QUICK_REFERENCE.md)
- Added testing summary (TESTING_COMPLETE_SUMMARY.md)
- Documented Phase 1 changes (PHASE1_MIGRATION_SUMMARY.md)
- Documented Phase 2 changes (PHASE2_MIGRATION_SUMMARY.md)
- Included migration guide (REDUX_MIGRATION_GUIDE.md)

Benefits:
- Single source of truth for session state
- Predictable state updates
- Redux DevTools support for debugging
- Improved testability
- Cleaner component code

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 15:47:17 +05:30
Nuwan 4909717d55 wip session screen base 2025-09-20 22:00:36 +05:30
Nuwan 4b3db7fed4 wip session base page 2025-09-07 21:55:51 +05:30
Seth Call 0df9beb786 Cleaned up BrowserRouter, and added GA 2025-03-24 21:36:28 -05:00
Seth Call d4546c6975 MR is ready for review 2025-02-27 07:55:08 -06:00
Seth Call a9b9e592bb resolved 2025-02-27 07:47:12 -06:00
Nuwan 8a8f1d14f9 fix fingerprint loading issue in jamtrack page 2025-02-14 17:00:42 +05:30
Nuwan 1d0a01c7ee signup & download pages
signup and download pages behave the same way to the legacy site
2025-01-09 08:21:26 +05:30
Nuwan c404cc0bb1 add filestack-js in package.json 2024-09-07 23:35:51 +05:30
Nuwan 136a3c399d edit profile page ui changes 2024-08-21 00:49:58 +05:30
Nuwan f904bdfc1c wip jamtrack player 2024-08-14 08:44:08 +05:30
Nuwan faecb69db9 jamtrack player WIP 2024-08-14 08:43:29 +05:30
Nuwan 2cc14be759 WIP: jamtracks, shopping cart and checkout pages 2024-08-14 08:43:18 +05:30
Nuwan 176ba1febe JamTracks
includes JamTrack filter page
2024-06-10 13:45:15 +05:30
Nuwan 8868ff718f add tests for affiliate earnings 2024-05-23 00:55:03 +05:30
Nuwan 27a3b3c09b tweek ui and styles in browse sessions page 2023-11-28 16:48:55 +05:30
Nuwan fcd9dd15f4 show native app unavailable modal
show this modal if the native JamKazam app is not available on user's computer.
occurs on submission of new session form and on clicking join session in
browse session page.
2023-11-09 16:19:15 +05:30
Nuwan 6a57530a8b beta site current session listing with e2e tests 2023-11-01 18:58:08 +05:30
Nuwan 036d982ab7 package lock updated 2023-09-28 16:52:45 +05:30
Nuwan 295d613165 reduce number of sql queries in musicians filter
default last active option is set to 30 days
make it 5ms when neo4j returns 0 for audio latency
2022-10-20 17:53:23 +05:30
Nuwan 2110c4b1ce UI changes as per the requests by David 2021-11-24 09:51:28 +05:30
Nuwan e769eb0531 force https in production 2021-11-13 12:05:27 +05:30
Nuwan e88cf16702 setup i18n with locale switcher in header 2021-11-11 07:55:17 +05:30
Nuwan 97f26e5e13 setup playwright e2e tests 2021-10-15 17:36:58 +05:30
Nuwan Chathuranga 918788f643 auth e2e test 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 89b3273125 showing incoming text mesages in chat window 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga b67af9d847 nav and latenvy changes
includes ui improvements to nagigation, showing latency details
of user and other ui related improments
2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 6c88cd1215 wip - react components related to musician listing and filtering 2021-10-13 22:51:30 +05:30
Nuwan Chathuranga 4ee649c7f1 added updated files 2021-10-13 22:51:29 +05:30
Nuwan Chathuranga 35a9c945db rename "jam-ui" directory to "ui" 2021-10-13 22:51:28 +05:30
Nuwan Chathuranga fa8cd2fa7c Initial changes to falcon package
* include changes to the templates to match new ui design.
* musician listing and filtering (initial phase)
* showing current logged in user in header
2021-10-13 22:51:27 +05:30
Nuwan Chathuranga ea4fc496a1 initial falcon react package 2021-10-13 22:51:27 +05:30