diff --git a/backend/services/browser_service.go b/backend/services/browser_service.go index 7c318e8..c47ad47 100644 --- a/backend/services/browser_service.go +++ b/backend/services/browser_service.go @@ -9,6 +9,7 @@ import ( "fmt" "github.com/redis/go-redis/v9" "github.com/wailsapp/wails/v2/pkg/runtime" + "math" "net/url" "os" "slices" @@ -998,10 +999,17 @@ func (b *browserService) GetKeyDetail(param types.KeyDetailParam) (resp types.JS if doFilter && !strings.Contains(val, param.MatchPattern) { continue } - items = append(items, types.ZSetEntryItem{ - Score: z.Score, + entry := types.ZSetEntryItem{ Value: val, - }) + } + if math.IsInf(z.Score, 1) { + entry.ScoreStr = "+inf" + } else if math.IsInf(z.Score, -1) { + entry.ScoreStr = "-inf" + } else { + entry.Score = z.Score + } + items = append(items, entry) if doConvert { if dv, _, _ := convutil.ConvertTo(val, param.Decode, param.Format, decoder); dv != val { items[len(items)-1].DisplayValue = dv diff --git a/backend/types/redis_wrapper.go b/backend/types/redis_wrapper.go index 46adb19..803ec7c 100644 --- a/backend/types/redis_wrapper.go +++ b/backend/types/redis_wrapper.go @@ -31,6 +31,7 @@ type SetEntryItem struct { type ZSetEntryItem struct { Score float64 `json:"s"` + ScoreStr string `json:"ss,omitempty"` Value string `json:"v"` DisplayValue string `json:"dv,omitempty"` } diff --git a/frontend/src/components/content_value/ContentValueZSet.vue b/frontend/src/components/content_value/ContentValueZSet.vue index c1e7f6c..04a77b7 100644 --- a/frontend/src/components/content_value/ContentValueZSet.vue +++ b/frontend/src/components/content_value/ContentValueZSet.vue @@ -120,7 +120,7 @@ const scoreColumn = computed(() => ({ // return true // }, render: (row) => { - return row.s + return row.ss || row.s }, }))