fix(web): add optional order field and sort tweets accordingly

This commit is contained in:
Aman Varshney
2025-08-29 15:39:42 +05:30
parent 22abd96bba
commit 11fd8eddcb
3 changed files with 12 additions and 2 deletions

View File

@@ -106,7 +106,7 @@ export default function Testimonials({
preloadedTestimonialsVideos: Preloaded<typeof api.testimonials.getVideos>; preloadedTestimonialsVideos: Preloaded<typeof api.testimonials.getVideos>;
}) { }) {
const videos = usePreloadedQuery(preloadedTestimonialsVideos).reverse(); const videos = usePreloadedQuery(preloadedTestimonialsVideos).reverse();
const tweets = usePreloadedQuery(preloadedTestimonialsTweet).reverse(); const tweets = usePreloadedQuery(preloadedTestimonialsTweet);
const getResponsiveColumns = (numCols: number) => { const getResponsiveColumns = (numCols: number) => {
const columns: string[][] = Array(numCols) const columns: string[][] = Array(numCols)

View File

@@ -27,6 +27,7 @@ export default defineSchema({
tweets: defineTable({ tweets: defineTable({
tweetId: v.string(), tweetId: v.string(),
order: v.optional(v.number()),
}), }),
showcase: defineTable({ showcase: defineTable({

View File

@@ -23,9 +23,18 @@ export const getTweets = query({
_id: v.id("tweets"), _id: v.id("tweets"),
_creationTime: v.number(), _creationTime: v.number(),
tweetId: v.string(), tweetId: v.string(),
order: v.optional(v.number()),
}), }),
), ),
handler: async (ctx) => { handler: async (ctx) => {
return await ctx.db.query("tweets").collect(); const rows = await ctx.db.query("tweets").collect();
return rows.sort((a, b) => {
const aHas = typeof a.order === "number";
const bHas = typeof b.order === "number";
if (aHas && bHas) return (a.order as number) - (b.order as number);
if (aHas && !bHas) return -1;
if (!aHas && bHas) return 1;
return b._creationTime - a._creationTime;
});
}, },
}); });