feat: adopt smolmail protocol 1.1, adaptive nav shell, and server mail retention
This commit is contained in:
parent
eaaa3f2ede
commit
c693e6fcb9
27 changed files with 1190 additions and 592 deletions
|
|
@ -32,18 +32,14 @@ final accountProvider = Provider<SmolAddress?>((ref) {
|
|||
return ref.watch(clientProvider).accountAddress();
|
||||
});
|
||||
|
||||
class Folder extends Notifier<String> {
|
||||
@override
|
||||
String build() => "inbox";
|
||||
|
||||
void select(String folder) => state = folder;
|
||||
}
|
||||
|
||||
final folderProvider = NotifierProvider<Folder, String>(Folder.new);
|
||||
|
||||
final messagesProvider = Provider<List<MailRecord>>((ref) {
|
||||
/// One tab (Inbox/Sent/Requests) can be on screen — and simultaneously kept
|
||||
/// alive off-screen by [TabBarView] for swiping — while another is active,
|
||||
/// so each is parameterized by its own folder rather than sharing one
|
||||
/// ambient "current folder" provider.
|
||||
final messagesForFolderProvider =
|
||||
Provider.family<List<MailRecord>, String>((ref, folder) {
|
||||
ref.watch(revisionProvider);
|
||||
return ref.watch(storeProvider).listMessages(ref.watch(folderProvider));
|
||||
return ref.watch(storeProvider).listMessages(folder);
|
||||
});
|
||||
|
||||
final unreadProvider = Provider<int>((ref) {
|
||||
|
|
@ -51,6 +47,11 @@ final unreadProvider = Provider<int>((ref) {
|
|||
return ref.watch(storeProvider).unreadCount();
|
||||
});
|
||||
|
||||
final requestsUnreadProvider = Provider<int>((ref) {
|
||||
ref.watch(revisionProvider);
|
||||
return ref.watch(storeProvider).requestsUnreadCount();
|
||||
});
|
||||
|
||||
final contactsProvider = Provider<List<(String, StoredContact)>>((ref) {
|
||||
ref.watch(revisionProvider);
|
||||
return ref.watch(storeProvider).allContacts();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue