diff --git a/.eslintrc.json b/.eslintrc.json
index 3bfbc91..aded410 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -46,7 +46,7 @@
"simple-import-sort/exports": "error",
"react/jsx-filename-extension": [1, { "extensions": [".tsx", ".ts"] }],
"react/jsx-props-no-spreading": [0],
- "react/no-unknown-property": ["error", { "ignore": ["jsx"] }],
+ "react/no-unknown-property": ["warn", { "ignore": ["jsx"] }],
"react/react-in-jsx-scope": "off",
"react/jsx-indent-props": ["error", 2],
"import/extensions": [0],
diff --git a/src/components/Header/Index.tsx b/src/components/Header/Index.tsx
index 47d5ecc..37d2f9d 100644
--- a/src/components/Header/Index.tsx
+++ b/src/components/Header/Index.tsx
@@ -1,3 +1,4 @@
+import { DefaultButton } from "@components/Common/Buttons/DefaultButton";
import { useAuth } from "@contexts/AuthContext";
import { AuthServices } from "@services/api";
import Link from "next/link";
@@ -30,23 +31,23 @@ export const Header: React.FC = () => {
- Accueil
- Projets
- About
- Moi
+ Home
+ Projects
+ Me
- {isLogged ? (
-
- Se déconnecter
-
-
- ) : (
-
- Se connecter
-
- )}
+
+ {isLogged ? (
+
+ Sign out
+
+ ) : (
+
+ Sign in
+
+ )}
+
@@ -63,6 +64,10 @@ const HeaderContainer = styled.div`
padding: 0 50px;
`;
+const ContainerButtons = styled.div`
+ display: flex;
+`;
+
const NavigationContainer = styled.div`
display: flex;
align-items: center;
@@ -116,15 +121,8 @@ const LinksContainer = styled.div`
`;
const StyledSignin = styled(Link)`
- background-color: black;
- color: white;
- padding: 8px 24px;
- border-radius: 15px;
- font-size: 16px;
cursor: pointer;
max-width: fit-content;
- display: flex;
- gap: 12px;
`;
const RoundedContainer = styled.div`
diff --git a/src/screens/Profil.tsx b/src/screens/Profil.tsx
index 5c06747..de05548 100644
--- a/src/screens/Profil.tsx
+++ b/src/screens/Profil.tsx
@@ -4,34 +4,13 @@ import { LinkSeeAll } from "@components/Common/Links/SeeAllLink";
import { TagSkill } from "@components/Common/Tags/SkillsTag";
import { useAuth } from "@contexts/AuthContext";
import { ProjectsServices } from "@services/api";
+import { SkillsServices } from "@services/api";
import { ProjectData } from "@typesDef/project/project";
+import { Skill, SkillData } from "@typesDef/skill/skill";
import styled from "styled-components";
export const ProfileScreen: React.FC = () => {
- const tabTags = [
- "React",
- "Node",
- "TypeScript",
- "JavaScript",
- "React Native",
- "Next.js",
- "Figma",
- "Adobe XD",
- ];
-
- // const tabProjects = [
- // {
- // title: "Projet 1",
- // description: "Description du projet 1 => Projet de test, aucune données",
- // image: "https://via.placeholder.com/150",
- // },
- // {
- // title: "Projet 2",
- // description: "Description du projet 2 => Projet de test, aucune données",
- // image: "https://via.placeholder.com/150",
- // },
- // ];
-
+ const skillService = new SkillsServices();
const { user } = useAuth();
const projectService = new ProjectsServices();
const [projects, setProjects] = useState({
@@ -39,6 +18,11 @@ export const ProfileScreen: React.FC = () => {
error: null,
});
+ const [skills, setSkill] = useState({
+ skills: null,
+ error: null,
+ });
+
useEffect(() => {
const getProjects = async () => {
try {
@@ -46,6 +30,19 @@ export const ProfileScreen: React.FC = () => {
user?.id as string,
);
setProjects({ project, error });
+
+ if (project) {
+ const fetchSkills = await skillService.getAllSkillUser(
+ project.map((p) => p.id),
+ );
+
+ const fetchSkillsWithContent = fetchSkills.map((skill: Skill) => ({
+ ...skill,
+ content: skill,
+ }));
+
+ setSkill({ skills: fetchSkillsWithContent, error: null });
+ }
} catch (error) {
console.error("Erreur lors de la récupération des projets :", error);
}
@@ -79,9 +76,17 @@ export const ProfileScreen: React.FC = () => {
- {tabTags.map((tag, index) => (
-
- ))}
+ {skills.skills && skills.skills?.length > 0 ? (
+ skills.skills?.map((tag, index) => (
+
+ ))
+ ) : (
+ Aucun skills
+ )}
diff --git a/src/screens/Projectspage.tsx b/src/screens/Projectspage.tsx
index c991dbc..e663cfe 100644
--- a/src/screens/Projectspage.tsx
+++ b/src/screens/Projectspage.tsx
@@ -49,9 +49,9 @@ export const ProjectsScreen: React.FC = ({ fetch }) => {
return (
{isLogged ? (
-
- Ajouter votre projet
-
+
+ Add your own project
+
) : (
Connectez vous pour ajouter un projet
diff --git a/src/services/api/Skills/index.ts b/src/services/api/Skills/index.ts
index e3f923b..ce741ce 100644
--- a/src/services/api/Skills/index.ts
+++ b/src/services/api/Skills/index.ts
@@ -10,4 +10,32 @@ export class SkillsServices {
return data;
}
+
+ async getAllSkillUser(projectId: Array) {
+ const { data, error } = await supabase.rpc("get_projects_by_id", {
+ projectids: projectId,
+ });
+ if (error) {
+ console.error(error);
+ }
+
+ const allSkills = data.reduce((acc: unknown, curr: unknown) => {
+ return acc.concat(curr.skills);
+ }, []);
+
+ return allSkills;
+ }
+
+ async getOneSkill(skillId: number) {
+ const { data, error } = await supabase
+ .from("aw_skills")
+ .select("*")
+ .eq("id", skillId);
+
+ if (error) {
+ console.error(error);
+ }
+
+ return data;
+ }
}
diff --git a/src/types/skill/skill.ts b/src/types/skill/skill.ts
index a77237a..9467bc2 100644
--- a/src/types/skill/skill.ts
+++ b/src/types/skill/skill.ts
@@ -6,6 +6,6 @@ export type Skill = {
};
export interface SkillData {
- project: Array | null;
+ skills: Array | null;
error: PostgrestError | null;
}