plebdevs/src/components/profile/UserProfile.js

64 lines
2.4 KiB
JavaScript
Raw Normal View History

import React, { useState, useEffect } from "react";
2024-09-04 17:09:46 -05:00
import { useSession } from 'next-auth/react';
import { useNDKContext } from "@/context/NDKContext";
import UserProfileCard from "@/components/profile/UserProfileCard";
2024-11-19 19:16:47 -06:00
import CombinedContributionChart from "@/components/charts/CombinedContributionChart";
import ActivityContributionChart from "@/components/charts/ActivityContributionChart";
import useCheckCourseProgress from "@/hooks/tracking/useCheckCourseProgress";
import useWindowWidth from "@/hooks/useWindowWidth";
2024-09-20 12:22:42 -05:00
import UserProgress from "@/components/profile/progress/UserProgress";
import UserProgressTable from '@/components/profile/DataTables/UserProgressTable';
import UserPurchaseTable from '@/components/profile/DataTables/UserPurchaseTable';
2024-09-04 17:09:46 -05:00
const UserProfile = () => {
const windowWidth = useWindowWidth();
2024-09-04 17:09:46 -05:00
const [user, setUser] = useState(null);
const [account, setAccount] = useState(null);
2024-09-04 17:09:46 -05:00
const { data: session } = useSession();
const { ndk, addSigner } = useNDKContext();
useCheckCourseProgress();
2024-09-04 17:09:46 -05:00
useEffect(() => {
if (session?.user) {
console.log("Session", session)
2024-09-04 17:09:46 -05:00
setUser(session.user);
if (session?.account) {
setAccount(session.account);
}
2024-09-04 17:09:46 -05:00
}
}, [session]);
return (
user && (
<div className="p-4">
{
windowWidth < 768 && (
<h1 className="text-3xl font-bold mb-6">Profile</h1>
)
}
2024-09-04 17:09:46 -05:00
<div className="w-full flex flex-col justify-center mx-auto">
<UserProfileCard user={user} />
{account && account?.provider === "github" ? (
<CombinedContributionChart session={session} />
) : (
<ActivityContributionChart session={session} />
)}
2024-09-20 12:22:42 -05:00
<UserProgress />
2024-09-04 17:09:46 -05:00
</div>
<UserProgressTable
session={session}
ndk={ndk}
windowWidth={windowWidth}
/>
<UserPurchaseTable
session={session}
windowWidth={windowWidth}
/>
2024-09-04 17:09:46 -05:00
</div>
)
);
};
export default UserProfile;