Skip to content

Commit 86e7676

Browse files
committed
wip adding filter
1 parent 12cdc5e commit 86e7676

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

convex/chat.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,16 @@ export const sendMessage = mutation({
2424
});
2525

2626
export const getMessages = query({
27-
args: {},
28-
handler: async (ctx) => {
29-
// Get most recent messages first
30-
const messages = await ctx.db.query("messages").order("desc").take(50);
27+
args: { nameFilter: v.optional(v.string()) },
28+
handler: async (ctx, args) => {
29+
let query = ctx.db.query("messages");
30+
31+
// Only apply filter if nameFilter has a value
32+
if (args.nameFilter)
33+
query = query.filter((q) => q.eq(q.field("user"), args.nameFilter));
34+
35+
const messages = await query.order("desc").take(50);
36+
3137
// Reverse the list so that it's in a chronological order.
3238
return messages.reverse();
3339
},

src/App.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@ import { api } from "../convex/_generated/api";
77
const NAME = getOrSetFakeName();
88

99
export default function App() {
10-
// Replace the "TODO: Add mutation hook here." with:
11-
const sendMessage = useMutation(api.chat.sendMessage);
12-
const messages = useQuery(api.chat.getMessages);
13-
14-
const [newMessageText, setNewMessageText] = useState("");
1510
const [nameFilter, setNameFilter] = useState("");
11+
const [newMessageText, setNewMessageText] = useState("");
12+
13+
const sendMessage = useMutation(api.chat.sendMessage);
14+
const messages = useQuery(api.chat.getMessages, { nameFilter });
1615

1716
useEffect(() => {
1817
// Make sure scrollTo works on button click in Chrome

0 commit comments

Comments
 (0)