/ app / src / components / ClientTweetCard.tsx
ClientTweetCard.tsx
 1  "use client";
 2  
 3  import {
 4    MagicTweet,
 5    TweetNotFound,
 6    TweetSkeleton,
 7  } from "./TweetCard";
 8  import { TweetProps, useTweet } from "react-tweet";
 9  
10  const ClientTweetCard = ({
11    id,
12    apiUrl,
13    fallback = <TweetSkeleton />,
14    components,
15    fetchOptions,
16    onError,
17    ...props
18  }: TweetProps & { className?: string }) => {
19    const { data, error, isLoading } = useTweet(id, apiUrl, fetchOptions);
20  
21    if (isLoading) return fallback;
22    if (error || !data) {
23      const NotFound = components?.TweetNotFound || TweetNotFound;
24      return <NotFound error={onError ? onError(error) : error} />;
25    }
26  
27    return <MagicTweet tweet={data} components={components} {...props} />;
28  };
29  
30  export default ClientTweetCard;