mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-30 20:49:20 +03:00
Resolve #737 by new messagelist view per day
This commit is contained in:
parent
d8a64124f2
commit
8aa9d3009b
5 changed files with 57 additions and 24 deletions
|
|
@ -5,7 +5,8 @@ import { Scope } from 'Common/Enums';
|
|||
|
||||
import { ComposeType, FolderType, MessageSetAction } from 'Common/EnumsUser';
|
||||
|
||||
import { leftPanelDisabled, toggleLeftPanel,
|
||||
import { doc,
|
||||
leftPanelDisabled, toggleLeftPanel,
|
||||
Settings, SettingsCapa,
|
||||
addEventsListeners,
|
||||
addShortcut, registerShortcut, formFieldFocused
|
||||
|
|
@ -31,6 +32,7 @@ import {
|
|||
import { AppUserStore } from 'Stores/User/App';
|
||||
import { SettingsUserStore } from 'Stores/User/Settings';
|
||||
import { FolderUserStore } from 'Stores/User/Folder';
|
||||
import { LanguageStore } from 'Stores/Language';
|
||||
import { MessageUserStore } from 'Stores/User/Message';
|
||||
import { MessagelistUserStore } from 'Stores/User/Messagelist';
|
||||
import { ThemeStore } from 'Stores/Theme';
|
||||
|
|
@ -63,7 +65,10 @@ const
|
|||
FolderUserStore.currentFolderFullName(),
|
||||
MessagelistUserStore.listCheckedOrSelectedUidsWithSubMails(),
|
||||
bDelete
|
||||
);
|
||||
),
|
||||
|
||||
pad2 = v => 10 > v ? '0' + v : '' + v,
|
||||
Ymd = dt => dt.getFullYear() + pad2(1 + dt.getMonth()) + pad2(dt.getDate());
|
||||
|
||||
let
|
||||
iGoToUpOrDownTimeout = 0,
|
||||
|
|
@ -141,6 +146,35 @@ export class MailMessageList extends AbstractViewRight {
|
|||
|
||||
mobileCheckedStateHide: () => ThemeStore.isMobile() ? !MessagelistUserStore.hasChecked() : 1,
|
||||
|
||||
// Idea for https://github.com/the-djmaze/snappymail/issues/737
|
||||
listByDay: () => {
|
||||
let list = [], current, today = Ymd(new Date()), lang = doc.documentElement.lang;
|
||||
MessagelistUserStore.forEach(msg => {
|
||||
let date = (new Date(msg.dateTimeStampInUTC() * 1000)),
|
||||
ymd = Ymd(date);
|
||||
if (!current || ymd != current.ymd) {
|
||||
if (today == ymd) {
|
||||
date = new Intl.RelativeTimeFormat(lang, { numeric: "auto" }).format(0, 'day');
|
||||
} else if (today - 1 == ymd) {
|
||||
date = new Intl.RelativeTimeFormat(lang, { numeric: "auto" }).format(-1, 'day');
|
||||
// } else if (today - 7 < ymd) {
|
||||
// date = date.format('l');
|
||||
} else {
|
||||
// date = date.format('LL',0,LanguageStore.hourCycle());
|
||||
date = date.format({dateStyle: 'full'},0,LanguageStore.hourCycle());
|
||||
}
|
||||
current = {
|
||||
ymd: ymd,
|
||||
day: date,
|
||||
messages: []
|
||||
};
|
||||
list.push(current);
|
||||
}
|
||||
current.messages.push(msg);
|
||||
});
|
||||
return list;
|
||||
},
|
||||
|
||||
sortText: () => {
|
||||
let mode = FolderUserStore.sortMode(),
|
||||
desc = '' === mode || mode.includes('REVERSE');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue