Skip to content

Feat/2.0#16

Open
samadritsarkar2 wants to merge 6 commits into
mainfrom
feat/2.0
Open

Feat/2.0#16
samadritsarkar2 wants to merge 6 commits into
mainfrom
feat/2.0

Conversation

@samadritsarkar2

Copy link
Copy Markdown
Owner

No description provided.

… refactor

Sprint 0-HOTFIX — Runtime Crash Fixes:
- Fix undefined setError in SavedPlaylists.js
- Add missing PermissionsAndroid import in utils/index.js
- Add missing Alert import in DownloadingHelper.js

Sprint 0 — Repo Hygiene & Secrets:
- Remove hardcoded secrets from build.gradle
- Fix .gitignore, add .env configuration
- Remove orphaned dependencies (react-scripts, spinkit, react-native-slider)

Sprint 1 — Performance & Memory Leaks:
- Migrate ScrollView → FlatList in 6 components
- Fix memory leaks: Library.js listeners + setTimeout cleanups
- Add babel-plugin-transform-remove-console for production
- Add React.memo and useCallback memoization

Sprint 2 — Architecture & Code Quality:
- Redux refactor: rename PlaylistReducer export, create selectors.js
- Extract hooks: usePlaylist, useDownloads, useDownloadedTracks
- Fix AsyncStorage race conditions with new utils/storage.js
- Fix broken imports: @rneui/themed removal, add missing Spinner/TextTicker

UI/Theme Refactor:
- Add centralized theme.js (colors, fonts, spacing, radii, commonStyles)
- Create shared components (BottomSheetModal, LoadingScreen, TrackRow, etc.)
- Apply theme tokens across all components
- Modernize navigation styling
samadritsarkar2 and others added 4 commits March 22, 2026 03:44
Parallax cover image with overscroll zoom and darkening overlay,
animated nav bar that fades in as metadata scrolls behind it,
and inline shuffle/play controls. All animations driven by
Reanimated v3 worklets on the UI thread.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Overscroll zoom never works on Android (scroll offset never goes
negative). Removed scale interpolation, kept parallax drift.
Also: extracted require() to module constants, stabilized
ItemSeparator/ListFooter, wrapped onLayout in useCallback.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Unified DownloadedTracksView and Playlist into thin wrappers
around a shared CollapsibleTrackList that handles the parallax
header, animated nav bar, gradient, and FlatList scaffolding.

- Playlist.js migrated to TrackRow + BottomSheetModal
- Memo'd track item components with FadeInDown limited to first 10
- Duplicate styles (trackItemBg, controlsRow, moreButton, moreIcon)
  moved to commonStyles in theme.js
- Stabilized onGoBack with useCallback, onMetadataLayout with guard
- CollapsibleTrackList wrapped in React.memo

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant