refacto: dialogs

This commit is contained in:
Julien Froidefond
2025-08-23 07:52:38 +02:00
parent 2877e3b58f
commit 97d274190d
2 changed files with 22 additions and 21 deletions

View File

@@ -61,7 +61,14 @@ export function TeamsManagement({
direction: "",
});
const { toast } = useToast();
const { isCreateDialogOpen, isEditDialogOpen, openCreateDialog, closeCreateDialog, openEditDialog, closeEditDialog } = useFormDialog();
const {
isCreateDialogOpen,
isEditDialogOpen,
openCreateDialog,
closeCreateDialog,
openEditDialog,
closeEditDialog,
} = useFormDialog();
// État local pour les équipes et leurs stats
const [localTeams, setLocalTeams] = useState<TeamType[]>(teams);
@@ -76,7 +83,7 @@ export function TeamsManagement({
collapseAll,
} = useTreeView({
data: localTeams,
searchFields: ['name'],
searchFields: ["name"],
groupBy: (team) => team.direction,
searchTerm,
onSearchChange: setSearchTerm,
@@ -335,7 +342,12 @@ export function TeamsManagement({
const headerActions = (
<Dialog open={isCreateDialogOpen} onOpenChange={closeCreateDialog}>
<DialogTrigger asChild>
<Button onClick={() => { resetForm(); openCreateDialog(); }}>
<Button
onClick={() => {
resetForm();
openCreateDialog();
}}
>
<Plus className="w-4 h-4 mr-2" />
Nouvelle Équipe
</Button>
@@ -377,10 +389,7 @@ export function TeamsManagement({
</Select>
</div>
<div className="flex justify-end gap-2 pt-4">
<Button
variant="outline"
onClick={closeCreateDialog}
>
<Button variant="outline" onClick={closeCreateDialog}>
Annuler
</Button>
<Button onClick={handleCreateTeam}>Créer</Button>
@@ -523,10 +532,7 @@ export function TeamsManagement({
</Select>
</div>
<div className="flex justify-end gap-2 pt-4">
<Button
variant="outline"
onClick={closeEditDialog}
>
<Button variant="outline" onClick={closeEditDialog}>
Annuler
</Button>
<Button onClick={handleUpdateTeam}>Mettre à jour</Button>

View File

@@ -24,10 +24,7 @@ import {
AdminManagementService,
Team,
} from "@/services/admin-management-service";
import {
TreeCategoryHeader,
TreeItemRow,
} from "@/components/admin";
import { TreeCategoryHeader, TreeItemRow } from "@/components/admin";
import { TreeViewPage } from "../tree-view-page";
import { useTreeView } from "@/hooks/use-tree-view";
import { useFormDialog } from "@/hooks/use-form-dialog";
@@ -59,7 +56,8 @@ export function UsersManagement() {
teamId: "",
});
const { toast } = useToast();
const { isCreateDialogOpen, openCreateDialog, closeCreateDialog } = useFormDialog();
const { isCreateDialogOpen, openCreateDialog, closeCreateDialog } =
useFormDialog();
// Utilisation du hook factorisé
const {
@@ -70,7 +68,7 @@ export function UsersManagement() {
collapseAll,
} = useTreeView({
data: users,
searchFields: ['firstName', 'lastName'],
searchFields: ["firstName", "lastName"],
groupBy: (user) => user.teamName || "Sans équipe",
searchTerm,
onSearchChange: setSearchTerm,
@@ -293,10 +291,7 @@ export function UsersManagement() {
</Select>
</div>
<div className="flex justify-end gap-2 pt-4">
<Button
variant="outline"
onClick={closeCreateDialog}
>
<Button variant="outline" onClick={closeCreateDialog}>
Annuler
</Button>
<Button onClick={handleCreateUser}>Créer</Button>