fix: live update request status
This commit is contained in:
@@ -6,11 +6,13 @@ import { Button } from "@/components/ui/button";
|
||||
import { Card, CardContent } from "@/components/ui/card";
|
||||
import { Input } from "@/components/ui/input";
|
||||
import { userApi } from "@/lib/api";
|
||||
import { useSocket } from "@/lib/socket";
|
||||
|
||||
export function RequestHistory() {
|
||||
const [requests, setRequests] = useState<any[]>([]);
|
||||
const [status, setStatus] = useState("");
|
||||
const [query, setQuery] = useState("");
|
||||
const socket = useSocket();
|
||||
|
||||
const load = async () => {
|
||||
const res = await userApi.getRequests(1, 50, status || undefined);
|
||||
@@ -20,6 +22,14 @@ export function RequestHistory() {
|
||||
useEffect(() => {
|
||||
load();
|
||||
}, [status]);
|
||||
useEffect(() => {
|
||||
if (!socket) return;
|
||||
const refresh = () => load();
|
||||
socket.on("request_updated", refresh);
|
||||
return () => {
|
||||
socket.off("request_updated", refresh);
|
||||
};
|
||||
}, [socket, status]);
|
||||
|
||||
const filtered = requests.filter(
|
||||
(r) =>
|
||||
|
||||
@@ -51,10 +51,12 @@ export default function DashboardPage() {
|
||||
socket.on("credits_earned", refresh);
|
||||
socket.on("bonus_received", refresh);
|
||||
socket.on("credits_spent", refresh);
|
||||
socket.on("request_updated", refresh);
|
||||
return () => {
|
||||
socket.off("credits_earned", refresh);
|
||||
socket.off("bonus_received", refresh);
|
||||
socket.off("credits_spent", refresh);
|
||||
socket.off("request_updated", refresh);
|
||||
};
|
||||
}, [socket]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user