Change default browser sort order to date: newest to oldest

This commit is contained in:
Greg Pomerantz 2026-06-05 11:51:16 -04:00
parent 1324772215
commit 80c2dfd743
5 changed files with 54 additions and 21 deletions

View File

@ -26,10 +26,13 @@ func TestLoadPage_FromIndexAtOffset(t *testing.T) {
)
}
// Build position map for the default sort mode (NameAsc)
// Build position maps for sort modes
s.SortIndex = &DirectoryIndex{
Entries: allEntries,
SortOrders: map[string][]int{"name_asc": buildPositionMap(allEntries, SortModeNameAsc)},
SortOrders: map[string][]int{
"name_asc": buildPositionMap(allEntries, SortModeNameAsc),
"date_desc": buildPositionMap(allEntries, SortModeDateDesc),
},
}
// Load page 1 (entries 100-199)
@ -71,10 +74,13 @@ func TestLoadPage_LastPagePartialFromIndex(t *testing.T) {
)
}
// Build position map for the default sort mode (NameAsc)
// Build position maps for sort modes
s.SortIndex = &DirectoryIndex{
Entries: allEntries,
SortOrders: map[string][]int{"name_asc": buildPositionMap(allEntries, SortModeNameAsc)},
SortOrders: map[string][]int{
"name_asc": buildPositionMap(allEntries, SortModeNameAsc),
"date_desc": buildPositionMap(allEntries, SortModeDateDesc),
},
}
// Load page 1 (last page, should have only 50 entries)
@ -108,10 +114,13 @@ func TestLoadPage_OutOfBoundsFromIndex(t *testing.T) {
)
}
// Build position map for the default sort mode (NameAsc)
// Build position maps for sort modes
s.SortIndex = &DirectoryIndex{
Entries: allEntries,
SortOrders: map[string][]int{"name_asc": buildPositionMap(allEntries, SortModeNameAsc)},
SortOrders: map[string][]int{
"name_asc": buildPositionMap(allEntries, SortModeNameAsc),
"date_desc": buildPositionMap(allEntries, SortModeDateDesc),
},
}
// Requesting page 5 (out of bounds) should return nil
@ -184,10 +193,13 @@ func TestGetEntryByIndex(t *testing.T) {
)
}
// Build position map for the default sort mode (NameAsc)
// Build position maps for sort modes
s.SortIndex = &DirectoryIndex{
Entries: allEntries,
SortOrders: map[string][]int{"name_asc": buildPositionMap(allEntries, SortModeNameAsc)},
SortOrders: map[string][]int{
"name_asc": buildPositionMap(allEntries, SortModeNameAsc),
"date_desc": buildPositionMap(allEntries, SortModeDateDesc),
},
}
// Load some pages
@ -222,10 +234,13 @@ func TestGetEntryByIndex_UnloadedPage(t *testing.T) {
)
}
// Build position map for the default sort mode (NameAsc)
// Build position maps for sort modes
s.SortIndex = &DirectoryIndex{
Entries: allEntries,
SortOrders: map[string][]int{"name_asc": buildPositionMap(allEntries, SortModeNameAsc)},
SortOrders: map[string][]int{
"name_asc": buildPositionMap(allEntries, SortModeNameAsc),
"date_desc": buildPositionMap(allEntries, SortModeDateDesc),
},
}
// Only load page 0

View File

@ -30,10 +30,13 @@ func makeTestState(t *testing.T, entryCount int, scrollIndex int, visibleCount i
)
}
// Build position map for the default sort mode (NameAsc)
// Build position maps for sort modes
s.SortIndex = &DirectoryIndex{
Entries: entries,
SortOrders: map[string][]int{"name_asc": buildPositionMap(entries, SortModeNameAsc)},
SortOrders: map[string][]int{
"name_asc": buildPositionMap(entries, SortModeNameAsc),
"date_desc": buildPositionMap(entries, SortModeDateDesc),
},
}
// Load pages

View File

@ -146,7 +146,10 @@ func TestPixelScroll_EvictionTriggered(t *testing.T) {
}
s.SortIndex = &DirectoryIndex{
Entries: entries,
SortOrders: map[string][]int{"name_asc": buildPositionMap(entries, SortModeNameAsc)},
SortOrders: map[string][]int{
"name_asc": buildPositionMap(entries, SortModeNameAsc),
"date_desc": buildPositionMap(entries, SortModeDateDesc),
},
}
for pageIdx := 0; pageIdx <= 10; pageIdx++ {
p := loadPageFromIndex(s, pageIdx)
@ -182,7 +185,10 @@ func TestPixelScroll_PrefetchTriggered(t *testing.T) {
}
s.SortIndex = &DirectoryIndex{
Entries: entries,
SortOrders: map[string][]int{"name_asc": buildPositionMap(entries, SortModeNameAsc)},
SortOrders: map[string][]int{
"name_asc": buildPositionMap(entries, SortModeNameAsc),
"date_desc": buildPositionMap(entries, SortModeDateDesc),
},
}
for pageIdx := 3; pageIdx <= 7; pageIdx++ {
p := loadPageFromIndex(s, pageIdx)

View File

@ -81,10 +81,13 @@ func TestScroll_PrefetchTriggered(t *testing.T) {
for i := 0; i < 2000; i++ {
entries[i] = NewEntry("/test/file.txt", "file.txt", 100, s.TapTimestamp, false)
}
// Build position map for the default sort mode (NameAsc)
// Build position maps for sort modes
s.SortIndex = &DirectoryIndex{
Entries: entries,
SortOrders: map[string][]int{"name_asc": buildPositionMap(entries, SortModeNameAsc)},
SortOrders: map[string][]int{
"name_asc": buildPositionMap(entries, SortModeNameAsc),
"date_desc": buildPositionMap(entries, SortModeDateDesc),
},
}
for pageIdx := 3; pageIdx <= 7; pageIdx++ {
p := loadPageFromIndex(s, pageIdx)
@ -126,10 +129,13 @@ func TestScroll_EvictionTriggered(t *testing.T) {
for i := 0; i < 5000; i++ {
entries[i] = NewEntry("/test/file.txt", "file.txt", 100, s.TapTimestamp, false)
}
// Build position map for the default sort mode (NameAsc)
// Build position maps for sort modes
s.SortIndex = &DirectoryIndex{
Entries: entries,
SortOrders: map[string][]int{"name_asc": buildPositionMap(entries, SortModeNameAsc)},
SortOrders: map[string][]int{
"name_asc": buildPositionMap(entries, SortModeNameAsc),
"date_desc": buildPositionMap(entries, SortModeDateDesc),
},
}
for pageIdx := 0; pageIdx <= 10; pageIdx++ {
p := loadPageFromIndex(s, pageIdx)
@ -238,10 +244,13 @@ func TestScroll_PrefetchTriggeredOnPageBoundary(t *testing.T) {
for i := 0; i < 500; i++ {
entries[i] = NewEntry("/test/file.txt", "file.txt", 100, s.TapTimestamp, false)
}
// Build position map for the default sort mode (NameAsc)
// Build position maps for sort modes
s.SortIndex = &DirectoryIndex{
Entries: entries,
SortOrders: map[string][]int{"name_asc": buildPositionMap(entries, SortModeNameAsc)},
SortOrders: map[string][]int{
"name_asc": buildPositionMap(entries, SortModeNameAsc),
"date_desc": buildPositionMap(entries, SortModeDateDesc),
},
}
s.Pages[0] = loadPageFromIndex(s, 0)

View File

@ -91,7 +91,7 @@ func NewBrowserState() *BrowserState {
Pages: make(map[int]*Page),
LetterOffsets: make(map[string]int),
SelectedIndex: -1,
SortMode: SortModeNameAsc, // Default sort mode
SortMode: SortModeDateDesc, // Default sort mode (newest first)
EntryHeight: 48.0,
CurrentPath: "/",
}