fix:update sort to include pinned

pull/5099/head
varsnotwars 4 weeks ago
parent ebff15149b
commit c8ad87f66d
No known key found for this signature in database
GPG Key ID: 2E7E94B005D83C81

@ -97,7 +97,10 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo
if find.OrderByTimeAsc { if find.OrderByTimeAsc {
order = "ASC" order = "ASC"
} }
orderBy := []string{}
// Prioritize pinned memos first
orderBy := []string{"`pinned` DESC"}
if find.OrderByUpdatedTs { if find.OrderByUpdatedTs {
orderBy = append(orderBy, "`updated_ts` "+order) orderBy = append(orderBy, "`updated_ts` "+order)
} else { } else {

@ -89,7 +89,10 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo
if find.OrderByTimeAsc { if find.OrderByTimeAsc {
order = "ASC" order = "ASC"
} }
orderBy := []string{}
// Prioritize pinned memos first
orderBy := []string{"pinned DESC"}
if find.OrderByUpdatedTs { if find.OrderByUpdatedTs {
orderBy = append(orderBy, "updated_ts "+order) orderBy = append(orderBy, "updated_ts "+order)
} else { } else {

@ -89,7 +89,10 @@ func (d *DB) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.Memo
if find.OrderByTimeAsc { if find.OrderByTimeAsc {
order = "ASC" order = "ASC"
} }
orderBy := []string{}
// Prioritize pinned memos first
orderBy := []string{"`pinned` DESC"}
if find.OrderByUpdatedTs { if find.OrderByUpdatedTs {
orderBy = append(orderBy, "`updated_ts` "+order) orderBy = append(orderBy, "`updated_ts` "+order)
} else { } else {

@ -31,11 +31,14 @@ const Archived = observer(() => {
listSort={(memos: Memo[]) => listSort={(memos: Memo[]) =>
memos memos
.filter((memo) => memo.state === State.ARCHIVED) .filter((memo) => memo.state === State.ARCHIVED)
.sort((a, b) => .sort((a, b) => {
viewStore.state.orderByTimeAsc if (a.pinned && !b.pinned) return -1;
if (b.pinned && !a.pinned) return 1;
return viewStore.state.orderByTimeAsc
? dayjs(a.displayTime).unix() - dayjs(b.displayTime).unix() ? dayjs(a.displayTime).unix() - dayjs(b.displayTime).unix()
: dayjs(b.displayTime).unix() - dayjs(a.displayTime).unix(), : dayjs(b.displayTime).unix() - dayjs(a.displayTime).unix();
) })
} }
state={State.ARCHIVED} state={State.ARCHIVED}
orderBy={viewStore.state.orderByTimeAsc ? "display_time asc" : "display_time desc"} orderBy={viewStore.state.orderByTimeAsc ? "display_time asc" : "display_time desc"}

@ -20,11 +20,14 @@ const Explore = observer(() => {
listSort={(memos: Memo[]) => listSort={(memos: Memo[]) =>
memos memos
.filter((memo) => memo.state === State.NORMAL) .filter((memo) => memo.state === State.NORMAL)
.sort((a, b) => .sort((a, b) => {
viewStore.state.orderByTimeAsc if (a.pinned && !b.pinned) return -1;
if (b.pinned && !a.pinned) return 1;
return viewStore.state.orderByTimeAsc
? dayjs(a.displayTime).unix() - dayjs(b.displayTime).unix() ? dayjs(a.displayTime).unix() - dayjs(b.displayTime).unix()
: dayjs(b.displayTime).unix() - dayjs(a.displayTime).unix(), : dayjs(b.displayTime).unix() - dayjs(a.displayTime).unix();
) })
} }
orderBy={viewStore.state.orderByTimeAsc ? "display_time asc" : "display_time desc"} orderBy={viewStore.state.orderByTimeAsc ? "display_time asc" : "display_time desc"}
/> />

@ -60,11 +60,14 @@ const Home = observer(() => {
listSort={(memos: Memo[]) => listSort={(memos: Memo[]) =>
memos memos
.filter((memo) => memo.state === State.NORMAL) .filter((memo) => memo.state === State.NORMAL)
.sort((a, b) => .sort((a, b) => {
viewStore.state.orderByTimeAsc if (a.pinned && !b.pinned) return -1;
if (b.pinned && !a.pinned) return 1;
return viewStore.state.orderByTimeAsc
? dayjs(a.displayTime).unix() - dayjs(b.displayTime).unix() ? dayjs(a.displayTime).unix() - dayjs(b.displayTime).unix()
: dayjs(b.displayTime).unix() - dayjs(a.displayTime).unix(), : dayjs(b.displayTime).unix() - dayjs(a.displayTime).unix();
) })
} }
orderBy={viewStore.state.orderByTimeAsc ? "display_time asc" : "display_time desc"} orderBy={viewStore.state.orderByTimeAsc ? "display_time asc" : "display_time desc"}
filter={memoFilter} filter={memoFilter}

@ -95,11 +95,14 @@ const UserProfile = observer(() => {
listSort={(memos: Memo[]) => listSort={(memos: Memo[]) =>
memos memos
.filter((memo) => memo.state === State.NORMAL) .filter((memo) => memo.state === State.NORMAL)
.sort((a, b) => .sort((a, b) => {
viewStore.state.orderByTimeAsc if (a.pinned && !b.pinned) return -1;
if (b.pinned && !a.pinned) return 1;
return viewStore.state.orderByTimeAsc
? dayjs(a.displayTime).unix() - dayjs(b.displayTime).unix() ? dayjs(a.displayTime).unix() - dayjs(b.displayTime).unix()
: dayjs(b.displayTime).unix() - dayjs(a.displayTime).unix(), : dayjs(b.displayTime).unix() - dayjs(a.displayTime).unix();
) })
} }
orderBy={viewStore.state.orderByTimeAsc ? "display_time asc" : "display_time desc"} orderBy={viewStore.state.orderByTimeAsc ? "display_time asc" : "display_time desc"}
filter={memoFilter} filter={memoFilter}

Loading…
Cancel
Save