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

View File

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