mirror of
https://github.com/hcengineering/platform.git
synced 2025-04-13 19:58:09 +00:00
UBER-1060 Inbox selection fixes (#3839)
Signed-off-by: Alexander Onnikov <alexander.onnikov@xored.com>
This commit is contained in:
parent
1d50d7020c
commit
72db5745ab
@ -56,7 +56,8 @@
|
||||
if (filter === 'read') {
|
||||
filtered = docs.filter((p) => !p.txes.some((p) => p.isNew) && p.txes.length > 0)
|
||||
} else if (filter === 'unread') {
|
||||
if (previousFilter !== 'unread') filtered = docs.filter((p) => p.txes.some((p) => p.isNew) && p.txes.length > 0)
|
||||
const current = previousFilter === 'unread' ? new Set(filtered.map((p) => p._id)) : new Set()
|
||||
filtered = docs.filter((p) => (current.has(p._id) || p.txes.some((p) => p.isNew)) && p.txes.length > 0)
|
||||
} else {
|
||||
filtered = docs.filter((p) => p.txes.length > 0)
|
||||
}
|
||||
@ -110,8 +111,21 @@
|
||||
|
||||
const listProvider = new ListSelectionProvider((offset: 1 | -1 | 0, of?: Doc, dir?: SelectDirection) => {
|
||||
if (dir === 'vertical') {
|
||||
let value = offset + docs.findIndex((p) => p._id === of?._id)
|
||||
if (value < 0) value = 0
|
||||
let value = (of != null ? filtered.findIndex((p) => p._id === of._id) : selected) ?? -1
|
||||
if (value === -1) {
|
||||
// keep the current index if the document does not exist anymore
|
||||
value = selected
|
||||
} else {
|
||||
value += offset
|
||||
}
|
||||
|
||||
if (value < 0) {
|
||||
value = 0
|
||||
}
|
||||
if (value >= filtered.length) {
|
||||
value = filtered.length - 1
|
||||
}
|
||||
|
||||
if (filtered[value] !== undefined) {
|
||||
selected = value
|
||||
changeSelected(selected)
|
||||
|
Loading…
Reference in New Issue
Block a user