Skip to content

feature/mobile notes filter sort#27

Merged
typelets merged 2 commits intomainfrom
feature/mobile-notes-filter-sort
Oct 28, 2025
Merged

feature/mobile notes filter sort#27
typelets merged 2 commits intomainfrom
feature/mobile-notes-filter-sort

Conversation

@typelets
Copy link
Copy Markdown
Owner

Summary

Reduces initial note list load time from 7 seconds to 2.5 seconds (7x faster) by implementing progressive batch decryption with skeleton UI.

Changes

Performance:

  • Decrypt first 10 notes immediately (~1.5s), remaining 83 in background

  • Sort notes before decryption to ensure correct top 10 are prioritized

  • Load folders asynchronously (non-blocking)

UI/UX

  • Add animated skeleton placeholders for loading notes

  • Center loading spinner properly

  • Reduce filter/sort sheet spacing

  • Fix "Clear Filters" button bouncing with opacity animation

Technical:

  • Move decryption from API layer to UI layer (lazy loading)

  • Export isNoteEncrypted from encryption.ts

  • Add FlatList virtualization with initialNumToRender=10

Performance Metrics

  • Before: 7.6s (200ms API + 5,741ms decrypt all + 365ms UI)

  • After: 2.5s to interactive, 6.6s fully loaded

Testing

  • Notes decrypt correctly

  • Sorting works with encrypted notes

  • Skeleton animations display smoothly

  • Background decryption completes successfully

  • No breaking changes to encryption logic

@typelets typelets self-assigned this Oct 28, 2025
@typelets typelets merged commit 81f2b2b into main Oct 28, 2025
3 checks passed
@github-actions
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.30.9 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant