Skip to content

Commit d5bb211

Browse files
committed
name sort
1 parent cecffa9 commit d5bb211

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

taco/internal/repositories/unit_repository.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ func (r *UnitRepository) List(ctx context.Context, orgID, prefix string) ([]*sto
175175
query = query.Where("name LIKE ?", prefix+"%")
176176
}
177177

178-
// order by most recent update, stable tie-breaker on id for deterministic paging
179-
query = query.Order("updated_at DESC").Order("id ASC")
178+
// order by name for deterministic paging; tie-break by id
179+
query = query.Order("LOWER(name) ASC").Order("id ASC")
180180

181181
if err := query.Find(&units).Error; err != nil {
182182
return nil, fmt.Errorf("failed to list units: %w", err)

taco/internal/unit/handler.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -335,10 +335,12 @@ func (h *Handler) ListUnits(c echo.Context) error {
335335
})
336336
}
337337
sort.Slice(domainUnits, func(i, j int) bool {
338-
if domainUnits[i].Updated.Equal(domainUnits[j].Updated) {
339-
return domainUnits[i].Name < domainUnits[j].Name
338+
in := strings.ToLower(domainUnits[i].Name)
339+
jn := strings.ToLower(domainUnits[j].Name)
340+
if in == jn {
341+
return domainUnits[i].ID < domainUnits[j].ID
340342
}
341-
return domainUnits[i].Updated.After(domainUnits[j].Updated)
343+
return in < jn
342344
})
343345

344346
total := len(domainUnits)

ui/src/routes/_authenticated/_dashboard/dashboard/units.index.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,10 @@ function RouteComponent() {
177177
const pageSize = (pageData as any)?.page_size || 20
178178
const total = (pageData as any)?.total || (pageData as any)?.units?.length || 0
179179
const units = (pageData?.units || []).slice().sort((a: any, b: any) => {
180-
const aDate = a.updated ? new Date(a.updated).getTime() : 0
181-
const bDate = b.updated ? new Date(b.updated).getTime() : 0
182-
return bDate - aDate
180+
const an = (a.name || '').toLowerCase()
181+
const bn = (b.name || '').toLowerCase()
182+
if (an === bn) return (a.id || '').localeCompare(b.id || '')
183+
return an.localeCompare(bn)
183184
})
184185
const navigate = Route.useNavigate()
185186
const router = useRouter()

0 commit comments

Comments
 (0)