"use client" import { icons } from "#/assets/icons" import Statistics from "#/components/stats" import Table from "#/components/table/table" import { Company } from "#/types" import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query" import { ColumnDef } from "@tanstack/react-table" import axios from "axios" import { useSession } from "next-auth/react" import Image from "next/image" import { Modal } from "#/components/modal" import { useState } from "react" export default function HomePage () { const {data: session, status} = useSession() const queryClient = useQueryClient() const [open, setOpen] = useState(false); console.log("Session = ", session) const { data: companies, refetch, isLoading} = useQuery({ enabled: status === 'authenticated', queryKey: ["companies"], queryFn: async () => { try { const response = await axios.get( 'https://private-docs-api.intside.co/companies', { headers: { 'Authorization': `Bearer ${session?.user.access_token}` } } ) if(response.data) { return response.data.data as Company[] } } catch (error) { console.error(error) } } }) const { mutate, isPending } = useMutation({ mutationFn: async (id: string) => { try { const response = await axios.delete( `https://private-docs-api.intside.co/companies/${id}/`, { headers: { 'Authorization': `Bearer ${session?.user.access_token}` } } ) if(response.status === 200 || response.status === 201) { console.log('Suppresion réussie !') setOpen(false) } } catch (error) { console.error(error) } }, onSuccess: () => { queryClient.invalidateQueries({ queryKey: ["companies"] }) refetch() } }) const columns: ColumnDef[] = [ { accessorKey: "name", header: "Organisations", }, { accessorKey: "total_users", header: "Utilisateurs", }, { header: "Administrateurs", cell: ({ row }) => { const value = String(row.original.owner.first_name) + " " + String(row.original.owner.last_name) const initials = String(row.original.owner.first_name[0]) + String(row.original.owner.last_name[0]) return(
{initials}

{value}

) } }, { accessorKey: "owner.email", header: "Adresse e-mail" }, { accessorKey: "status", header: "Statut", cell: ({ cell }) => { const status = String(cell.getValue()) return (

{ status === "active" ? "Actif" : status === "inactive" ? "Inactif" : status === "pending" ? "En attente" : status === "blocked" ? "Bloquée" : "" }

) } }, { id: "delete", cell: ({ cell }) => { const id = String(cell.row.original.id) return (
{ mutate(id) }} > { if(!isOpen) { setOpen(isOpen) } }} trigger={
setOpen(true)}>
} title={

Supprimer une organisation

} content={

Voulez-vous vraiment supprimer cette organisation ?

} />
) } } ] return(

Dernières organisations actives

) }