// src/components/UserProfile.tsx
"use client";
import { useState, useEffect } from "react";
import { getUserQuery } from "@/queries/user.query";
type User = typeof getUserQuery.$infer.output.projected["user"];
export function UserProfile({ id }: { id: string }) {
const [user, setUser] = useState<User>(null);
useEffect(() => {
fetch("/api/graphql", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
query: getUserQuery.document,
variables: { id },
}),
})
.then((res) => res.json())
.then((json) => {
const data = getUserQuery.parse(json);
setUser(data.user);
});
}, [id]);
if (!user) return <div>Loading...</div>;
return (
<div>
<h2>{user.name}</h2>
<p>{user.email}</p>
</div>
);
}