refactor: update data fetching in management pages and improve type imports
- Simplified data extraction from AdminService in SkillsPage, TeamsPage, and UsersPage. - Updated import paths for Team type in user-related components for consistency. - Added id and name properties to SkillCategory interface for better data structure. - Enhanced logging in useSkillsManagement for debugging skill creation process.
This commit is contained in:
@@ -4,13 +4,10 @@ import { SkillsManagementPage } from "@/components/admin/skills";
|
||||
export default async function SkillsPage() {
|
||||
// Charger les données côté serveur
|
||||
try {
|
||||
const adminData = await AdminService.getAdminData();
|
||||
const { skillCategories, teams } = await AdminService.getAdminData();
|
||||
|
||||
return (
|
||||
<SkillsManagementPage
|
||||
skillCategories={adminData.skillCategories}
|
||||
teams={adminData.teams}
|
||||
/>
|
||||
<SkillsManagementPage skillCategories={skillCategories} teams={teams} />
|
||||
);
|
||||
} catch (error) {
|
||||
console.error("Failed to load admin data:", error);
|
||||
|
||||
@@ -4,13 +4,14 @@ import { TeamsManagementPage } from "@/components/admin/teams";
|
||||
export default async function TeamsPage() {
|
||||
// Charger les données côté serveur
|
||||
try {
|
||||
const adminData = await AdminService.getAdminData();
|
||||
const { teams, teamStats, skillCategories } =
|
||||
await AdminService.getAdminData();
|
||||
|
||||
return (
|
||||
<TeamsManagementPage
|
||||
teams={adminData.teams}
|
||||
teamStats={adminData.teamStats}
|
||||
skillCategories={adminData.skillCategories}
|
||||
teams={teams}
|
||||
teamStats={teamStats}
|
||||
skillCategories={skillCategories}
|
||||
/>
|
||||
);
|
||||
} catch (error) {
|
||||
|
||||
@@ -4,9 +4,9 @@ import { UsersManagementPage } from "@/components/admin/users";
|
||||
export default async function UsersPage() {
|
||||
// Charger les données côté serveur
|
||||
try {
|
||||
const adminData = await AdminService.getAdminData();
|
||||
const { teams } = await AdminService.getAdminData();
|
||||
|
||||
return <UsersManagementPage teams={adminData.teams} />;
|
||||
return <UsersManagementPage teams={teams} />;
|
||||
} catch (error) {
|
||||
console.error("Failed to load admin data:", error);
|
||||
return (
|
||||
|
||||
@@ -75,8 +75,8 @@ export async function POST(request: NextRequest) {
|
||||
|
||||
// Créer la nouvelle skill
|
||||
const result = await pool.query(
|
||||
`INSERT INTO skills (name, category_id, description, icon)
|
||||
VALUES ($1, $2, $3, $4)
|
||||
`INSERT INTO skills (id, name, category_id, description, icon)
|
||||
VALUES (gen_random_uuid(), $1, $2, $3, $4)
|
||||
RETURNING id, name, description, icon, category_id`,
|
||||
[name, categoryId, description || "", icon || ""]
|
||||
);
|
||||
|
||||
@@ -16,7 +16,7 @@ import {
|
||||
DialogHeader,
|
||||
DialogTitle,
|
||||
} from "@/components/ui/dialog";
|
||||
import { Team } from "@/clients/domains/admin-client";
|
||||
import { Team } from "@/lib/types";
|
||||
|
||||
interface UserFormData {
|
||||
firstName: string;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
import { useState } from "react";
|
||||
import { Users, Building2 } from "lucide-react";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { Team } from "@/clients/domains/admin-client";
|
||||
import { Team } from "@/lib/types";
|
||||
import { TreeViewPage } from "../management/tree-view-page";
|
||||
import { useTreeView } from "@/hooks/use-tree-view";
|
||||
import { useFormDialog } from "@/hooks/use-form-dialog";
|
||||
|
||||
@@ -53,6 +53,7 @@ export function useSkillsManagement(skillCategories: SkillCategory[]) {
|
||||
};
|
||||
|
||||
const handleCreateSkill = async () => {
|
||||
console.log("skillFormData", skillFormData);
|
||||
if (!skillFormData.name || !skillFormData.categoryId) {
|
||||
toast({
|
||||
title: "Erreur",
|
||||
@@ -70,6 +71,7 @@ export function useSkillsManagement(skillCategories: SkillCategory[]) {
|
||||
const skillData = {
|
||||
...skillFormData,
|
||||
category: category.category,
|
||||
categoryId: category.id,
|
||||
};
|
||||
|
||||
const newSkill = await adminClient.createSkill(skillData);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useState, useEffect } from "react";
|
||||
import { useToast } from "@/hooks/use-toast";
|
||||
import { Team } from "@/clients/domains/admin-client";
|
||||
import { Team } from "@/lib/types";
|
||||
|
||||
interface User {
|
||||
uuid: string;
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
import {
|
||||
SkillLevel,
|
||||
SKILL_LEVEL_VALUES,
|
||||
CategoryEvaluation,
|
||||
RadarChartData,
|
||||
UserEvaluation,
|
||||
SkillCategory,
|
||||
} from "./types";
|
||||
import { evaluationClient } from "../clients";
|
||||
|
||||
export function calculateCategoryScore(
|
||||
categoryEvaluation: CategoryEvaluation
|
||||
|
||||
@@ -30,6 +30,8 @@ export interface Skill {
|
||||
export interface SkillCategory {
|
||||
category: string;
|
||||
icon: string;
|
||||
id: string;
|
||||
name: string;
|
||||
skills: Skill[];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user