Conversation
* init speed improvements attempt
Root cause fix (eliminated double-mounting):
- app/terms.tsx — router.navigate('/') → router.replace('/')
- components/App.tsx — router.navigate('/terms') → router.replace('/terms')
LocalizationProvider refactor (reduced PowerSync listener count):
- hooks/useLocalization.tsx — Renamed from .ts, added LocalizationProvider context so only one PowerSync query runs for localization instead of one per component
- app/_layout.tsx — Wrapped app tree in <LocalizationProvider>
RecordingView performance fixes:
- views/new/RecordingView.tsx — Replaced reactive PowerSync queries with static useQuery + staleTime: Infinity for project and languoid data; added mountedRef guard against post-unmount state updates; smarter VAD invalidation (only on actual active→inactive transitions); tracked error timeouts for proper cleanup
Reduced cascade invalidations:
- hooks/useQuestDownloadStatusLive.ts — Only invalidate queries on actual download status transitions detected by the watch, not on initial mount check
Memory leak prevention:
- hooks/useMicrophoneEnergy.ts — removeAllListeners cleanup for native event emitters
- views/new/recording/hooks/useVADRecording.ts — Stop energy detection on unmount; removeAllListeners cleanup
* Update RecordingView.tsx
- Ensure new recordings show up after old session bulk deleted
- Remove verse insertion option for a recording session if not selected after firost recording is done
* Format fix
* Fix format again
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
@rafaelwinter01 reintroduced toCompilableQuery to use cloudQuery in RecordingView.tsx so that it can find the languoid for a user invited to a project. Currently there's no trigger to have languoids, project_language_link records sync to a user if that user is added to a project (unless they download a quest, which they don't strictly have to to make new quests in the project). |
… project (#760) Add DB trigger on profile_project_link INSERT/UPDATE that cascades the new member's profile ID to project, project_language_link, project_closure, languoid, and all 8 related languoid/region tables Fix perform_clone_step to include creator's ID in download_profiles on cloned project and PLL records Backfill existing active project members into all affected download_profiles fields Block invite/request acceptance while offline (requires sync to receive languoid data) Add mustBeOnlineToAcceptInvite localization string (6 languages)
|
Resolved an additional issue where languoids (and related records inc. project_language_link) were not syncing to user accounts who were invited into a project until they actively downloaded a quest. Before, if a user was brought into an existing project (whose target language was not a ui_ready language), and they went offline, without having downloaded a quest, and tried to record content, they weren't able to. This is fixed now, and missing download_profiles data is backfilled in 20260217120000...sql |
|
Tested:
|
Root cause fix (eliminated double-mounting):
LocalizationProvider refactor (reduced PowerSync listener count):
RecordingView performance fixes:
Reduced cascade invalidations:
Memory leak prevention: