forked from Transparency/kgroad-frontend2
49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
"use server";
|
|
|
|
import ProfileAvatar from "@/features/ProfileAvatar/ProfileAvatar";
|
|
import { apiInstance } from "@/shared/config/apiConfig";
|
|
import { authConfig } from "@/shared/config/authConfig";
|
|
import { IProfile } from "@/shared/types/profile-type";
|
|
import ProfileForm from "@/widgets/ProfileForm/ProfileForm";
|
|
import { AxiosError } from "axios";
|
|
import { getServerSession } from "next-auth";
|
|
import React from "react";
|
|
|
|
const Personal = async () => {
|
|
const session = await getServerSession(authConfig);
|
|
const getProfile = async () => {
|
|
const Authorization = `Bearer ${session?.access_token}`;
|
|
const config = {
|
|
headers: {
|
|
Authorization,
|
|
},
|
|
};
|
|
try {
|
|
const response = await apiInstance.get<IProfile>(
|
|
"/users/profile/",
|
|
config
|
|
);
|
|
|
|
return response.data;
|
|
} catch (error: unknown) {
|
|
if (error instanceof AxiosError) console.log(error.message);
|
|
}
|
|
};
|
|
|
|
const data = await getProfile();
|
|
|
|
return (
|
|
<div className="personal">
|
|
<ProfileAvatar img={data?.image as string} />
|
|
<ProfileForm
|
|
id={data?.id as number}
|
|
first_name={data?.first_name as string}
|
|
last_name={data?.last_name as string}
|
|
email={data?.email as string}
|
|
/>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default Personal;
|