import { useAuthState } from 'react-firebase-hooks/auth'; import { ThreeDots } from 'react-loader-spinner'; import useSWR, { Fetcher } from 'swr'; import Recommendation from '../components/Recommendation'; import Refresh from '../components/Refresh'; import { auth } from '../firebase'; import IRecommendation from '../types/Recommendation'; const fetcher: Fetcher = async (userId) => { const res = { data: { userId, recommendations: [ { movieId: 174, match: 78 }, { movieId: 70, match: 74 }, { movieId: 421, match: 70 }, { movieId: 5846, match: 54 }, { movieId: 926, match: 48 }, ], }, }; await new Promise((res) => setTimeout(res, 2500)); return res.data.recommendations as IRecommendation[]; }; function Recommendations() { const [user] = useAuthState(auth); if (!user) throw new Error('User not found'); const { data, isLoading, isValidating, mutate } = useSWR(user.uid, fetcher); return (

Recommendations

{isLoading && (

Loading recommendations...

)} {!isLoading && } {!isLoading && !data?.length && (

Could not find any recommendations for you 😬

)} {!isLoading && !!data?.length && (
{data.map((recommendation) => ( ))}
)}
); } export default Recommendations;