From 0f97e0794c2089bf89c0834a8fead6f7c0e9d259 Mon Sep 17 00:00:00 2001
From: leonidjonah <67140862+leonidjonah@users.noreply.github.com>
Date: Fri, 1 Mar 2024 16:18:38 +0300
Subject: [PATCH] update profile page for all collection / base project

---
 .../presentation/component/CardEvent.jsx      |   1 -
 .../presentation/component/EventDetails.jsx   |   1 -
 .../component/form/OrganizesThis.jsx          |   1 -
 .../presentation/component/CustomDrawer.jsx   |  67 ++++----
 .../component/input/InputSimple.jsx           |   1 -
 src/news/presentation/component/Login.jsx     |   2 -
 .../presentation/container/CommentList.jsx    |   1 -
 .../presentation/component/AllAction.jsx      |  14 +-
 src/profile/presentation/component/Info.jsx   | 111 ++++++++-----
 .../presentation/container/ProfileApp.jsx     |   7 +-
 .../presentation/container/ProfileIndex.jsx   |  12 +-
 .../presentation/container/Settings.jsx       |   2 +-
 src/project/application/state/index.js        |   0
 src/project/application/state/projectState.js |   0
 src/project/index.jsx                         |   7 +
 src/project/infrastructure/api/project-api.js |   0
 .../infrastructure/constant/api-endpoints.js  |   0
 src/project/presentation/component/Card.jsx   |   0
 .../presentation/container/ProjectApp.jsx     |   0
 .../presentation/container/RegisterForm.jsx   |  10 --
 src/searchAll/presentation/component/Card.jsx |   7 +-
 .../presentation/component/CarousselTags.jsx  | 146 +++++++++---------
 .../presentation/component/SearchForm.jsx     | 103 ++++++++----
 .../presentation/component/SearchLocality.jsx |   1 -
 .../presentation/component/ShareInSearch.jsx  |   1 -
 .../presentation/container/Favoris.jsx        |   6 +-
 .../presentation/container/ListeSearch.jsx    |  11 +-
 27 files changed, 295 insertions(+), 217 deletions(-)
 create mode 100644 src/project/application/state/index.js
 create mode 100644 src/project/application/state/projectState.js
 create mode 100644 src/project/index.jsx
 create mode 100644 src/project/infrastructure/api/project-api.js
 create mode 100644 src/project/infrastructure/constant/api-endpoints.js
 create mode 100644 src/project/presentation/component/Card.jsx
 create mode 100644 src/project/presentation/container/ProjectApp.jsx

diff --git a/src/agenda/presentation/component/CardEvent.jsx b/src/agenda/presentation/component/CardEvent.jsx
index 6505acdd..7118d74b 100644
--- a/src/agenda/presentation/component/CardEvent.jsx
+++ b/src/agenda/presentation/component/CardEvent.jsx
@@ -22,7 +22,6 @@ function CardEvent({ event, joinEvent, leaveEvent, deleteEvent, shareEvent, data
     setLeaveEventBtn(!isLeaveEventBtn);
   };
 
-  console.log(event);
 
   const joinEventFunction = (e, type) => joinEvent(e, type);
 
diff --git a/src/agenda/presentation/component/EventDetails.jsx b/src/agenda/presentation/component/EventDetails.jsx
index 4511e19f..650d79eb 100644
--- a/src/agenda/presentation/component/EventDetails.jsx
+++ b/src/agenda/presentation/component/EventDetails.jsx
@@ -40,7 +40,6 @@ function EventDetails({ event, mode,  joinEvent, leaveEvent }) {
     );
   };
 
-  console.log(event);
 
   const changeRole = event.isFollowed && (
     <button
diff --git a/src/agenda/presentation/component/form/OrganizesThis.jsx b/src/agenda/presentation/component/form/OrganizesThis.jsx
index 4ce8c3d2..9aadccbb 100644
--- a/src/agenda/presentation/component/form/OrganizesThis.jsx
+++ b/src/agenda/presentation/component/form/OrganizesThis.jsx
@@ -11,7 +11,6 @@ function OrganizesThis({ results, callBackGetList, valueCallBack, editData, setS
     const [uniqueId, setUniqueId] = useState(0);
     const [remainingResults, setRemainingResults] = useState([]);
     const [value, setValue] = useState([]);
-    // console.log(results);
     
     useEffect(() => {
         if (editData !== undefined || editData == "") {
diff --git a/src/core/presentation/component/CustomDrawer.jsx b/src/core/presentation/component/CustomDrawer.jsx
index 144f7962..e1f25e4a 100644
--- a/src/core/presentation/component/CustomDrawer.jsx
+++ b/src/core/presentation/component/CustomDrawer.jsx
@@ -3,47 +3,46 @@ import MiniCardIcon from "./MiniCardIcon";
 import PropTypes from 'prop-types';
 import { Link } from "preact-router";
 
-function CustomDrawer({ isOpenDrawer, openAndCloseDrawer, openPageTitle, placement, children, iconActionPage, overflowType }) {
-
-  return (
-    <Drawer
-      overlay={true}
-      size={550}
-      placement={placement}
-      open={isOpenDrawer}
-      onClose={openAndCloseDrawer}
-      className={`rounded-bl-lg rounded-tl-lg px-4 py-2 bg-gray-200 dark:bg-gray-900 opacity-100 w-full h-full ${overflowType == undefined ? "overflow-auto" : overflowType}`}
-    >
-      <div className="flex items-center justify-between">
-        <MiniCardIcon className={"bg-lime-600 dark:bg-gray-600 text-white cursor-pointer"} icon={"fa fa-close"} onClick={openAndCloseDrawer} />
-        {
-          openPageTitle && (
-            <Link
-              href={"/login"}
-            >
-              <div className="inline-flex w-auto h-8 mr-0 px-1 text-sm space-x-1 items-center cursor-pointer justify-center bg-lime-600 text-white dark:text-gray-300 transition-colors duration-150 dark:bg-gray-600 rounded-lg focus:shadow-outline">
-                <span> {openPageTitle} </span>
-                {iconActionPage == undefined || iconActionPage == true ?
-                  <i class="fa-solid fa-arrow-up-right-from-square"></i> :
-                  null
+function CustomDrawer({ isOpenDrawer, openAndCloseDrawer, openPageTitle, placement, children, iconActionPage, overflowType, link, dataToGet }) {
+    return (
+        <Drawer
+            overlay={true}
+            size={550}
+            placement={placement}
+            open={isOpenDrawer}
+            onClose={openAndCloseDrawer}
+            className={`rounded-bl-lg rounded-tl-lg px-4 py-2 bg-gray-200 dark:bg-gray-900 opacity-100 w-full h-full ${overflowType == undefined ? "overflow-auto" : overflowType}`}
+        >
+            <div className="flex items-center justify-between">
+                <MiniCardIcon className={"bg-lime-600 dark:bg-gray-600 text-white cursor-pointer"} icon={"fa fa-close"} onClick={openAndCloseDrawer} />
+                {
+                    openPageTitle && (
+                        <Link
+                            href={`/profile/${link}?array=${encodeURIComponent(JSON.stringify(dataToGet))}`}
+                        >
+                            <div className="inline-flex w-auto h-8 mr-0 px-1 text-sm space-x-1 items-center cursor-pointer justify-center bg-lime-600 text-white dark:text-gray-300 transition-colors duration-150 dark:bg-gray-600 rounded-lg focus:shadow-outline">
+                                <span> {openPageTitle} </span>
+                                {iconActionPage == undefined || iconActionPage == true ?
+                                    <i class="fa-solid fa-arrow-up-right-from-square"></i> :
+                                    null
+                                }
+                            </div>
+                        </Link>
+                    )
                 }
-              </div>
-            </Link>
-          )
-        }
-      </div>
+            </div>
 
-      {children}
+            {children}
 
-    </Drawer>
+        </Drawer>
 
-  );
+    );
 }
 
 CustomDrawer.propTypes = {
-  openPageTitle: PropTypes.string.isRequired,
-  children: PropTypes.node.isRequired,
-  placement: PropTypes.string
+    openPageTitle: PropTypes.string.isRequired,
+    children: PropTypes.node.isRequired,
+    placement: PropTypes.string
 };
 
 export default CustomDrawer;
\ No newline at end of file
diff --git a/src/core/presentation/component/input/InputSimple.jsx b/src/core/presentation/component/input/InputSimple.jsx
index c558b6d9..8934b297 100644
--- a/src/core/presentation/component/input/InputSimple.jsx
+++ b/src/core/presentation/component/input/InputSimple.jsx
@@ -24,7 +24,6 @@ function InputSimple({ label, type, ctrl, value, placeholder, defaultValue, my,
 
         if (type === 'url') {
             setIsValid(isValidURL(newValue)); // Vérifier si l'URL est valide et mettre à jour l'état isValid en conséquence
-            console.log(isValidURL(newValue));
         }
 
         if (newValue === "" && ctrl != undefined) {
diff --git a/src/news/presentation/component/Login.jsx b/src/news/presentation/component/Login.jsx
index 4f39af44..aa3a44e7 100644
--- a/src/news/presentation/component/Login.jsx
+++ b/src/news/presentation/component/Login.jsx
@@ -37,7 +37,6 @@ const Login = () => {
         authenticated()
             .then(() => route('/'))
             .catch(reason => {
-                console.log('reason', reason);
                 route('/login', true);
 
             });
@@ -57,7 +56,6 @@ const Login = () => {
             let requestObj = authenticate(email, password);
             await requestObj
                 .then(async (response) => {
-                    console.log('response', JSON.stringify(response));
                     if (response.data.status == 404) {
                         setMessage("L'email ou le mot de passe est incorrect.");
                         return;
diff --git a/src/news/presentation/container/CommentList.jsx b/src/news/presentation/container/CommentList.jsx
index 3af82b58..02f19b83 100755
--- a/src/news/presentation/container/CommentList.jsx
+++ b/src/news/presentation/container/CommentList.jsx
@@ -5,7 +5,6 @@ import ReponseList from "../container/ReponseList";
 import { addComments, addaction, deleteCommments, getComments, updateComment } from "../../infrastructure/api/news-api";
 
 export default function CommentList({ articleComments, idNews, imageConnected }) {
-    // console.log(imageConnected);
     const [selectedReponse, setSelectedReponse] = useState(null);
     const [loading, setloading] = useState(false)
     
diff --git a/src/profile/presentation/component/AllAction.jsx b/src/profile/presentation/component/AllAction.jsx
index c952542e..6524af0b 100644
--- a/src/profile/presentation/component/AllAction.jsx
+++ b/src/profile/presentation/component/AllAction.jsx
@@ -21,25 +21,29 @@ function AllAction({ tabsProps }) {
 
     return (
         <>
-            <div className="border-b rounded-t-lg border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-900 mb-2">
+            <div className="w-full border-b rounded-t-lg border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-900 mb-2">
                 <ul className="flex flex-wrap -mb-px text-sm font-medium text-center text-gray-500 dark:text-gray-400">
                     <li className="me-2 cursor-pointer" onClick={() => changetabs('journal')}>
                         <div className={tabs === 'journal' ? activeTabs : noActiveTabs} aria-current="page">
                             <i className="fa-regular fa-newspaper mr-2"></i> Actualités
                         </div>
                     </li>
-                    <li className="me-2 cursor-pointer" onClick={() => changetabs('agenda')}>
-                        <div className={tabs === 'agenda' ? activeTabs : noActiveTabs}>
-                            <i className="fa-solid fa-calendar-day mr-2"></i> Agenda
+                    <li className="me-2 cursor-pointer" onClick={() => changetabs('projectsPoi')}>
+                        <div className={tabs === 'projectsPoi' ? activeTabs : noActiveTabs}>
+                            <i className="fa-solid fa-lightbulb mr-2"></i> Projets & Poi
                         </div>
                     </li>
                 </ul>
             </div>
 
             {tabs === 'journal' ? (
-                <div className='h-[calc(100vh-160px)] overflow-auto'>
+                <div className='h-[calc(100vh-160px)] overflow-auto w-full'>
                     <ListArticle articleProps={[]} />
                 </div>
+            ) : tabs === 'projectsPoi' ? (
+                <div className='h-[calc(100vh-160px)] overflow-auto w-full'>
+                    Lorem ipsum dolor, sit amet consectetur adipisicing elit. Eligendi dignissimos praesentium ex saepe enim sequi corrupti assumenda fugit quasi eveniet suscipit ullam consequuntur a omnis soluta incidunt, veritatis, magni minus.
+                </div>
             ) : tabs === 'parametre' ? (
                 <>
                     <Settings />
diff --git a/src/profile/presentation/component/Info.jsx b/src/profile/presentation/component/Info.jsx
index 9217eb9b..ffcfd973 100644
--- a/src/profile/presentation/component/Info.jsx
+++ b/src/profile/presentation/component/Info.jsx
@@ -1,4 +1,4 @@
-import React from 'react'
+import React, { useEffect } from 'react'
 import MapDetaille from '../../../searchAll/presentation/component/MapDetaille'
 import DateTimeOpen from '../../../searchAll/presentation/component/DateTimeOpen'
 import { USER_CONNECTED } from '../../../core/application/constant/common';
@@ -13,39 +13,40 @@ import moment from "../../../core/application/helpers/moment";
 import AdressDetaille from '../../../agenda/presentation/component/form/AdressDetaille';
 
 function Info({ element }) {
+    console.log(element)
     const [showModal, setshowModal] = useState(false)
     const [titleModal, settitleModal] = useState("")
     const [block, setblock] = useState("")
     // Description
-    const [shortDescription, setshortDescription] = useState(element.shortDescription)
-    const [description, setdescription] = useState(element.description)
+    const [shortDescription, setshortDescription] = useState(element?.shortDescription)
+    const [description, setdescription] = useState(element?.description)
     // Info
-    const [name, setname] = useState(element.name)
-    const [birthDate, setbirthDate] = useState(moment(element.birthDate).format('YYYY-MM-DD'))
+    const [name, setname] = useState(element?.name)
+    const [birthDate, setbirthDate] = useState(moment.unix(element?.birthDate?.sec).format('YYYY-MM-DD'))
     const [fixe, setfixe] = useState(
-        element.telephone && element.telephone.fixe ? (
-            element.telephone.fixe[0]
+        element?.telephone && element?.telephone.fixe ? (
+            element?.telephone.fixe[0]
         ) : (
             ""
         )
     )
     const [mobile, setmobile] = useState(
-        element.telephone && element.telephone.mobile ? (
-            element.telephone.mobile[0]
+        element?.telephone && element?.telephone.mobile ? (
+            element?.telephone.mobile[0]
         ) : (
             ""
         )
     )
-    const [url, seturl] = useState(element.url ? element.url : '')
-    const [tags, settags] = useState(element.tags)
-    const [email, setemail] = useState(element.email ? element.email : "Non renseigné(e)")
+    const [url, seturl] = useState(element?.url ? element?.url : '')
+    const [tags, settags] = useState(element?.tags)
+    const [email, setemail] = useState(element?.email ? element?.email : "Non renseigné(e)")
     const [urlCtrl, seturlCtrl] = useState(false)
     const [urlNetworkCtrl, seturlNetworkCtrl] = useState({})
 
     const socialNetworkKeys = ['gitlab', 'github', 'twitter', 'facebook', 'instagram', 'diaspora', 'mastodon', 'telegram', 'signal'];
 
     const initialState = socialNetworkKeys.reduce((acc, key) => {
-        acc[key] = element.socialNetwork?.[key] ?? '';
+        acc[key] = element?.socialNetwork?.[key] ?? '';
         return acc;
     }, {});
 
@@ -58,6 +59,36 @@ function Info({ element }) {
         },
     };
 
+    useEffect(() => {
+        if (element) {
+            setname(element?.name);
+            setbirthDate(moment.unix(element?.birthDate?.sec).format('YYYY-MM-DD'));
+            setshortDescription(element?.shortDescription)
+            setdescription(element?.description)
+            seturl(element?.url ? element?.url : '')
+            settags(element?.tags)
+            setemail(element?.email ? element?.email : "Non renseigné(e)")
+            const initialState = socialNetworkKeys.reduce((acc, key) => {
+                acc[key] = element?.socialNetwork?.[key] ?? '';
+                return acc;
+            }, {});
+            setfixe(
+                element?.telephone && element?.telephone.fixe ? (
+                    element?.telephone.fixe[0]
+                ) : (
+                    ""
+                )
+            )
+            setmobile(
+                element?.telephone && element?.telephone.mobile ? (
+                    element?.telephone.mobile[0]
+                ) : (
+                    ""
+                )
+            )
+        }
+    }, [element]);
+
     const modalShowUpdateDescription = () => {
         setblock("descriptions")
         setshowModal(true)
@@ -75,7 +106,7 @@ function Info({ element }) {
 
     const valideUpdateBlock = async () => {
         if (block == 'descriptions') {
-            const response = await updateBlockDescription(block, element.collection, shortDescription, description, undefined, USER_CONNECTED.id, "")
+            const response = await updateBlockDescription(block, element?.collection, shortDescription, description, undefined, USER_CONNECTED.id, "")
             if (response.data.result === true) {
                 toast.success(<div dangerouslySetInnerHTML={{ __html: response.data.resultGoods.msg }} />, toastOptions);
             }
@@ -92,7 +123,7 @@ function Info({ element }) {
                 result += '1';
             }
             if (result == '1') {
-                const response = await updateBlockInfo(block, element.collection, name, birthDate, fixe, mobile, url, tags, email, undefined, USER_CONNECTED.id, "")
+                const response = await updateBlockInfo(block, element?.collection, name, birthDate, fixe, mobile, url, tags, email, undefined, USER_CONNECTED.id, "")
                 if (response.data.result === true) {
                     toast.success(<div dangerouslySetInnerHTML={{ __html: response.data.resultGoods.msg }} />, toastOptions);
                     setshowModal(false)
@@ -108,7 +139,7 @@ function Info({ element }) {
         } else if (block == 'network') {
             const response = await updateBlockNetwork(
                 block,
-                element.collection,
+                element?.collection,
                 socialNetworkState.gitlab,
                 socialNetworkState.github,
                 socialNetworkState.twitter,
@@ -151,19 +182,25 @@ function Info({ element }) {
         setshowModal(true)
         settitleModal("MODIFIER VOS COORDONNÉES")
     }
+
+    if (typeof element !== 'object') {
+        // Si props.isValid n'est pas un objet, affichez un message d'erreur dans la console et retournez null
+        console.error('isValid prop must be an object.');
+        return null;
+    }
     return (
         <>
             <div className='px-4'>
                 <div className="p-2 text-gray-900 dark:text-gray-300">
                     <ol className="relative border-s border-lime-600 dark:border-gray-800 mb-5">
-                        <li className={`ms-6 w-full mb-4 ${element.id == USER_CONNECTED.id ? ' hover:p-2 hover:dark:bg-gray-800 hover:rounded-lg group' : ''}`}>
+                        <li className={`ms-6 w-full mb-4 ${element?.id == USER_CONNECTED.id ? ' hover:p-2 hover:dark:bg-gray-800 hover:rounded-lg group' : ''}`}>
                             <span className="absolute flex items-center justify-center w-6 h-6 rounded-full -start-3 ring-8 ring-white dark:ring-gray-800 bg-lime-600 text-gray-100">
                                 <i className="fa-solid fa-file-lines"></i>
                             </span>
                             <div className='flex justify-between'>
                                 <h3 className="flex items-center text-base font-semibold dark:text-gray-200">DESCRIPTIONS</h3>
                                 <i
-                                    className={`flex items-center fas fa-pencil fa-sm cursor-pointer opacity-0 ${element.id == USER_CONNECTED.id ? 'group-hover:opacity-100' : ''}`}
+                                    className={`flex items-center fas fa-pencil fa-sm cursor-pointer opacity-0 ${element?.id == USER_CONNECTED.id ? 'group-hover:opacity-100' : ''}`}
                                     onClick={modalShowUpdateDescription}
                                 >
                                 </i>
@@ -178,13 +215,13 @@ function Info({ element }) {
                             </span>
                         </li>
 
-                        <li className={`ms-6 w-full ${element.id == USER_CONNECTED.id ? ' hover:p-2 hover:dark:bg-gray-800 hover:rounded-lg group' : ''}`}>
+                        <li className={`ms-6 w-full ${element?.id == USER_CONNECTED.id ? ' hover:p-2 hover:dark:bg-gray-800 hover:rounded-lg group' : ''}`}>
                             <span className="absolute flex items-center justify-center w-6 h-6 rounded-full -start-3 ring-8 ring-white dark:ring-gray-800 bg-lime-600 text-gray-100">
                                 <i className="fa-solid fa-address-book"></i>
                             </span>
                             <div className='flex justify-between'>
                                 <h3 className="flex items-center mb-1 text-base font-semibold dark:text-gray-200">INFORMATIONS GÉNÉRALES</h3>
-                                <i className={`flex items-center fas fa-pencil fa-sm cursor-pointer opacity-0 ${element.id == USER_CONNECTED.id ? 'group-hover:opacity-100' : ''}`}
+                                <i className={`flex items-center fas fa-pencil fa-sm cursor-pointer opacity-0 ${element?.id == USER_CONNECTED.id ? 'group-hover:opacity-100' : ''}`}
                                     onClick={modalShowUpdateInfo}
                                 >
 
@@ -220,7 +257,7 @@ function Info({ element }) {
                                     )}
                                 </span>
                             </p>
-                            {element.collection == "organizations" || element.collection == "citoyens" &&
+                            {element?.collection == "organizations" || element?.collection == "citoyens" &&
                                 <>
                                     <p className="mb-2 text-sm font-normal">
                                         <span>
@@ -254,17 +291,17 @@ function Info({ element }) {
                             </p>
                         </li>
 
-                        <li className={`ms-6 my-2 w-full ${element.id == USER_CONNECTED.id ? ' hover:p-2 hover:dark:bg-gray-800 hover:rounded-lg group' : ''}`}>
+                        <li className={`ms-6 my-2 w-full ${element?.id == USER_CONNECTED.id ? ' hover:p-2 hover:dark:bg-gray-800 hover:rounded-lg group' : ''}`}>
                             <span className="absolute flex items-center justify-center w-6 h-6 rounded-full -start-3 ring-8 ring-white dark:ring-gray-800 bg-lime-600 text-gray-100">
                                 <i className="fa-solid fa-circle-nodes"></i>
                             </span>
                             <div className='flex justify-between'>
                                 <h3 className="flex items-center mb-1 text-base font-semibold dark:text-gray-200">RÉSEAUX SOCIAUX</h3>
-                                <i className={`flex items-center fas fa-pencil fa-sm cursor-pointer opacity-0 ${element.id == USER_CONNECTED.id ? 'group-hover:opacity-100' : ''}`}
+                                <i className={`flex items-center fas fa-pencil fa-sm cursor-pointer opacity-0 ${element?.id == USER_CONNECTED.id ? 'group-hover:opacity-100' : ''}`}
                                     onClick={modalShowUpdateNetwork}
                                 ></i>
                             </div>
-                            {element.socialNetwork ? (
+                            {element?.socialNetwork ? (
                                 <div className="flex flex-wrap justify-center gap-2">
                                     {Object.keys(socialNetworkState).map((key, index) => (
                                         socialNetworkState[key] !== '' && (
@@ -279,40 +316,40 @@ function Info({ element }) {
                             )}
 
                         </li>
-                        {element.openingHours || element.endDate && element.startDate && element.collection != "poi" && element.collection != "citoyens" ?
+                        {element?.openingHours || element?.endDate && element?.startDate && element?.collection != "poi" && element?.collection != "citoyens" ?
                             <DateTimeOpen
-                                type={element.collection}
-                                startDate={element.startDate}
-                                endDate={element.endDate}
-                                openingHours={element.openingHours}
-                            /> : element.collection != "poi" && element.collection != "citoyens" ?
+                                type={element?.collection}
+                                startDate={element?.startDate}
+                                endDate={element?.endDate}
+                                openingHours={element?.openingHours}
+                            /> : element?.collection != "poi" && element?.collection != "citoyens" ?
                                 <li className="mb-4 ms-6">
                                     <span className="absolute flex items-center justify-center w-6 h-6 rounded-full -start-3 ring-8 ring-white dark:ring-gray-800 bg-lime-600 text-gray-100">
                                         <i className="fa-solid fa-clock"></i>
                                     </span>
-                                    <h3 className="flex items-center mb-1 text-base font-semibold dark:text-gray-200">{element.collection == "projects" ? "QUAND" : "HEURE D'OUVERTURE"}</h3>
+                                    <h3 className="flex items-center mb-1 text-base font-semibold dark:text-gray-200">{element?.collection == "projects" ? "QUAND" : "HEURE D'OUVERTURE"}</h3>
                                     Non renseigné(e)
                                 </li> :
                                 null
                         }
-                        <li className={`ms-6 w-full ${element.id == USER_CONNECTED.id ? ' hover:p-2 hover:dark:bg-gray-800 hover:rounded-lg group' : ''}`}>
+                        <li className={`ms-6 w-full ${element?.id == USER_CONNECTED.id ? ' hover:p-2 hover:dark:bg-gray-800 hover:rounded-lg group' : ''}`}>
                             <span className="absolute flex items-center justify-center w-6 h-6 rounded-full -start-3 ring-8 ring-white dark:ring-gray-800 bg-lime-600 text-gray-100">
                                 <i className="fa-solid fa-location-dot"></i>
                             </span>
                             <div className='flex justify-between'>
                                 <h3 className="flex items-center mb-1 text-base font-semibold dark:text-gray-200">ADRESSE</h3>
-                                <i className={`flex items-center fas fa-pencil fa-sm cursor-pointer opacity-0 ${element.id == USER_CONNECTED.id ? 'group-hover:opacity-100' : ''}`}
+                                <i className={`flex items-center fas fa-pencil fa-sm cursor-pointer opacity-0 ${element?.id == USER_CONNECTED.id ? 'group-hover:opacity-100' : ''}`}
                                     onClick={modalShowUpdateAdresse}
                                 ></i>
                             </div>
-                            {element.address && element.geo ?
+                            {element?.address && element?.geo ?
                                 <>
                                     <span className='text-sm font-normal'>
-                                        {element.address.streetAddress} / {element.address.addressLocality} / {element.address.level1Name}
+                                        {element?.address.streetAddress} / {element?.address.addressLocality} / {element?.address.level1Name}
                                     </span>
                                     <MapDetaille
-                                        latitude={element.geo.latitude}
-                                        longitude={element.geo.longitude}
+                                        latitude={element?.geo.latitude}
+                                        longitude={element?.geo.longitude}
                                     />
                                 </> :
                                 <>
diff --git a/src/profile/presentation/container/ProfileApp.jsx b/src/profile/presentation/container/ProfileApp.jsx
index d60f8f07..0c1a20a3 100644
--- a/src/profile/presentation/container/ProfileApp.jsx
+++ b/src/profile/presentation/container/ProfileApp.jsx
@@ -1,17 +1,16 @@
 import StateContext from "../../../core/context/state-context";
-import Navbar from "../../../core/presentation/component/Navbar";
 import AppLayout from "../../../core/presentation/container/AppLayout";
 import { configureStates } from "../../application/state/index"
 import ProfileIndex from "./ProfileIndex";
 
 export function ProfileApp(props) {
+    const exemple = props.matches?.array;
     return (
         <>
             <StateContext.Provider value={configureStates()}>
-                {/* <Navbar /> */}
                 <AppLayout hideDefault={"hidden"}>
-                <div className="px-2 mx-auto max-w-screen-xl min-w-screen-xl flex mt-5 overflow-hidden">
-                    <ProfileIndex slug={props.matches.slug}/>
+                <div className="max-w-screen-xl min-w-screen-xl flex mt-5 overflow-hidden">
+                    <ProfileIndex slug={props.matches.slug} data={exemple != undefined && JSON.parse(exemple)}/>
                 </div>
                 </AppLayout>
             </StateContext.Provider>
diff --git a/src/profile/presentation/container/ProfileIndex.jsx b/src/profile/presentation/container/ProfileIndex.jsx
index 87649564..13664480 100644
--- a/src/profile/presentation/container/ProfileIndex.jsx
+++ b/src/profile/presentation/container/ProfileIndex.jsx
@@ -5,27 +5,29 @@ import AsPdcAndPdp from '../../../core/presentation/component/AsPdcAndPdp'
 import { useState } from 'preact/hooks'
 import { useAuth } from '../../../core/context/auth-context'
 
-function ProfileIndex({ slug }) {
+function ProfileIndex({ slug, data }) {
 	const { user } = useAuth();
 	const [changeTabs, setchangeTabs] = useState("")
 	let dataProfile = [];
 	if (slug == 'me') {
 		dataProfile = user
+	} else {
+		dataProfile = data
 	}
 	return (
 		<>
 			<div className="w-full flex flex-col md:flex-row">
 				<div className='w-full md:w-1/3 -mt-2 bg-white dark:bg-gray-900 rounded-b-lg md:flex-col md:order-1'>
 					<AsPdcAndPdp
-						collection={dataProfile.collection}
-						profilMediumImageUrl={dataProfile.profilMediumImageUrl}
-						profilBannerUrl={dataProfile.profilBannerUrl}
+						collection={dataProfile?.collection}
+						profilMediumImageUrl={dataProfile?.profilMediumImageUrl}
+						profilBannerUrl={dataProfile?.profilBannerUrl}
 						changeTabs={(e) => setchangeTabs(e)}
 					/>
 					<div className='px-4'>
 						<div className="mt-8 flex flex-col items-center">
 							<h4 className="text-xl font-bold text-navy-700 dark:text-gray-200">
-								{dataProfile.name}
+								{dataProfile?.name}
 							</h4>
 						</div>
 						<div className='h-[calc(100vh-350px)] overflow-y-auto overflow-x-hidden'>
diff --git a/src/profile/presentation/container/Settings.jsx b/src/profile/presentation/container/Settings.jsx
index a13b3d76..e2e435e2 100644
--- a/src/profile/presentation/container/Settings.jsx
+++ b/src/profile/presentation/container/Settings.jsx
@@ -156,7 +156,7 @@ function Settings() {
     }
 
     return (
-      <div className="w-full h-auto rounded-lg text-gray-50 bg-gray-800 flex flex-col space-y-2 text-xs p-3">
+      <div className="w-full h-auto rounded-lg text-gray-50 bg-gray-800 flex flex-col text-xs p-3">
         {/* user information */}
         {Object.entries(settings).map(([settingKey, initialValue]) => (
           <div
diff --git a/src/project/application/state/index.js b/src/project/application/state/index.js
new file mode 100644
index 00000000..e69de29b
diff --git a/src/project/application/state/projectState.js b/src/project/application/state/projectState.js
new file mode 100644
index 00000000..e69de29b
diff --git a/src/project/index.jsx b/src/project/index.jsx
new file mode 100644
index 00000000..219afbcc
--- /dev/null
+++ b/src/project/index.jsx
@@ -0,0 +1,7 @@
+import "preact/debug";
+import { render } from "preact"
+import "../core/assets/css/main.css"
+import "../core/assets/css/markdown.css"
+import { ProjectApp } from "./presentation/container/ProjectApp"
+
+render(<ProjectApp />, document.getElementById('project-app'))
\ No newline at end of file
diff --git a/src/project/infrastructure/api/project-api.js b/src/project/infrastructure/api/project-api.js
new file mode 100644
index 00000000..e69de29b
diff --git a/src/project/infrastructure/constant/api-endpoints.js b/src/project/infrastructure/constant/api-endpoints.js
new file mode 100644
index 00000000..e69de29b
diff --git a/src/project/presentation/component/Card.jsx b/src/project/presentation/component/Card.jsx
new file mode 100644
index 00000000..e69de29b
diff --git a/src/project/presentation/container/ProjectApp.jsx b/src/project/presentation/container/ProjectApp.jsx
new file mode 100644
index 00000000..e69de29b
diff --git a/src/register/presentation/container/RegisterForm.jsx b/src/register/presentation/container/RegisterForm.jsx
index cb4e08bf..4d49b223 100644
--- a/src/register/presentation/container/RegisterForm.jsx
+++ b/src/register/presentation/container/RegisterForm.jsx
@@ -30,15 +30,6 @@ function RegisterForm() {
             color: '#fff',
         },
     };
-    console.log(
-        name,
-        username,
-        email,
-        pwd,
-        repwd,
-        regleconfidentianl,
-        regleconfidentianl1
-    );
 
     const registerBtn = async () => {
         let resultCtrl = '';
@@ -87,7 +78,6 @@ function RegisterForm() {
         } else {
             toast.error('Veuillez vérifier les champs', toastOptions);
         }
-        console.log(resultCtrl);
     }
 
     return (
diff --git a/src/searchAll/presentation/component/Card.jsx b/src/searchAll/presentation/component/Card.jsx
index c3ee89db..c1d1b3ba 100644
--- a/src/searchAll/presentation/component/Card.jsx
+++ b/src/searchAll/presentation/component/Card.jsx
@@ -3,10 +3,9 @@ import { BASE_URL, USER_CONNECTED } from '../../../core/application/constant/com
 import defaultImage from "../../../core/assets/images/defaultImage.png";
 import { Tooltip } from 'react-tooltip';
 
-function Card({ isAuthenticated, element, openShareModal, action, jointAction, leaveAction, openRightDetailleFunction }) {
+function Card({ isAuthenticated, element, openShareModal, action, jointAction, leaveAction, openRightDetailleFunction, user }) {
     let backgroundColor;
     let icon;
-
     if (element.type === 'NGO') {
         backgroundColor = 'bg-lime-600';
         icon = 'fa-solid fa-users text-gray-200';
@@ -81,8 +80,8 @@ function Card({ isAuthenticated, element, openShareModal, action, jointAction, l
         </div>
     ) : null;
 
-    const isFollower = element.links && element.links.followers && element.links.followers[USER_CONNECTED.id] !== undefined;
-    const isContributor = element.links && element.links.contributors && element.links.contributors[USER_CONNECTED.id] !== undefined;
+    const isFollower = element.links && element.links.followers && element.links.followers[user._id.$id] !== undefined;
+    const isContributor = element.links && element.links.contributors && element.links.contributors[user._id.$id] !== undefined;
     let buttonText = "";
     let actionOnClick = () => { };
 
diff --git a/src/searchAll/presentation/component/CarousselTags.jsx b/src/searchAll/presentation/component/CarousselTags.jsx
index 858dcc44..f876f656 100644
--- a/src/searchAll/presentation/component/CarousselTags.jsx
+++ b/src/searchAll/presentation/component/CarousselTags.jsx
@@ -11,7 +11,6 @@ function CarousselTags({ tagsSearchValue, tagsSearchDefaultValue }) {
     }, [tagsSearchDefaultValue])
 
     const handleClick = (value) => {
-        console.log('loremmmmmmmmmm');
         if (value.some(tag => tags.includes(tag))) {
             const updatedTags = tags.filter(tag => !value.includes(tag));
             settags(updatedTags);
@@ -23,83 +22,86 @@ function CarousselTags({ tagsSearchValue, tagsSearchDefaultValue }) {
     }
 
     return (
-        <Carousel
-            className="rounded-xl w-full h-full md:h-[110px] overflow-hidden"
-            navigation={({ setActiveIndex, activeIndex, length }) => (
-                <div className="absolute bottom-1 left-2/4 z-30 flex -translate-x-2/4 gap-2">
-                    {new Array(length).fill("").map((_, i) => (
-                        <span
-                            key={i}
-                            className={`hover:bg-lime-600 z-50 block h-1 cursor-pointer rounded-2xl transition-all content-[''] ${activeIndex === i ? "w-8 h-2 bg-lime-600" : "w-4 h-2 bg-white/50"
-                                }`}
-                            onClick={() => setActiveIndex(i)}
-                        />
-                    ))}
-                </div>
-            )}
-            prevArrow={({ handlePrev }) => (
-                <IconButton
-                    onClick={handlePrev}
-                    className="!absolute top-1/2 -left-3 -mt-1 -translate-y-2/4 bg-transparent h-full"
-                >
-                    <i style={{ fontSize: 22 }} class="fa-solid fa-chevron-left text-lime-600 dark:text-gray-200"></i>
-                </IconButton>
-            )}
-            nextArrow={({ handleNext }) => (
-                <IconButton
-                    onClick={handleNext}
-                    className="!absolute top-1/2 right-0 -translate-y-2/4 bg-transparent h-full"
-                >
-                    <i style={{ fontSize: 22 }} class="fa-solid fa-chevron-right text-lime-600 dark:text-gray-200"></i>
-                </IconButton>
-            )}
-        >
-            <div class="mx-10 md:grid md:grid-cols-6 lg:grid-cols-6 gap-4 space-y-4 md:space-y-0 overflow-hidden">
-                {TagsType.slice(0, 6).map(({ value, image, label }) => (
-                    <div
-                        className={`bg-gray-900 h-28 shadow-xl rounded-bl-lg rounded-lg overflow-hidden transform cursor-pointer ${value.some((tag) => tags.includes(tag)) ? 'border-2 border-lime-600' : ''
-                            }`}
-                    >
-                        <div className="relative" onClick={() => handleClick(value)}>
-                            <img
-                                src={image}
-                                className="h-28 w-full object-cover rounded-lg rounded-br-lg bg-gray-300 dark:bg-gray-700 transform hover:scale-105 transition duration-1000"
+        <>
+            <h1 className="mb-4 z-0 -mt-2 text-xl font-bold leading-none tracking-tight text-gray-700 dark:text-gray-200">Thematiques</h1>
+            <Carousel
+                className="rounded-xl w-full h-full md:h-[110px] overflow-hidden"
+                navigation={({ setActiveIndex, activeIndex, length }) => (
+                    <div className="absolute bottom-1 left-2/4 z-30 flex -translate-x-2/4 gap-2">
+                        {new Array(length).fill("").map((_, i) => (
+                            <span
+                                key={i}
+                                className={`hover:bg-lime-600 z-30 block h-1 cursor-pointer rounded-2xl transition-all content-[''] ${activeIndex === i ? "w-8 h-2 bg-lime-600" : "w-4 h-2 bg-white/50"
+                                    }`}
+                                onClick={() => setActiveIndex(i)}
                             />
-                            <div className="text-gray-100 font-bold text-center">
-                                <h1 className="absolute dark:text-gray-200 text-xs bottom-0 w-full text-center backdrop-blur-sm bg-gray-800 bg-opacity-75 rounded-bl-lg rounded-br-lg">
-                                    <div className='py-1'>
-                                        {label}
-                                    </div>
-                                </h1>
+                        ))}
+                    </div>
+                )}
+                prevArrow={({ handlePrev }) => (
+                    <IconButton
+                        onClick={handlePrev}
+                        className="!absolute top-1/2 -left-3 -mt-1 -translate-y-2/4 bg-transparent h-full"
+                    >
+                        <i style={{ fontSize: 22 }} class="fa-solid fa-chevron-left text-lime-600 dark:text-gray-200"></i>
+                    </IconButton>
+                )}
+                nextArrow={({ handleNext }) => (
+                    <IconButton
+                        onClick={handleNext}
+                        className="!absolute top-1/2 right-0 -translate-y-2/4 bg-transparent h-full"
+                    >
+                        <i style={{ fontSize: 22 }} class="fa-solid fa-chevron-right text-lime-600 dark:text-gray-200"></i>
+                    </IconButton>
+                )}
+            >
+                <div class="mx-10 md:grid md:grid-cols-6 lg:grid-cols-6 gap-4 space-y-4 md:space-y-0 overflow-hidden">
+                    {TagsType.slice(0, 6).map(({ value, image, label }) => (
+                        <div
+                            className={`bg-gray-900 h-28 shadow-xl rounded-bl-lg rounded-lg overflow-hidden transform cursor-pointer ${value.some((tag) => tags.includes(tag)) ? 'border-2 border-lime-600' : ''
+                                }`}
+                        >
+                            <div className="relative" onClick={() => handleClick(value)}>
+                                <img
+                                    src={image}
+                                    className="h-28 w-full object-cover rounded-lg rounded-br-lg bg-gray-300 dark:bg-gray-700 transform hover:scale-105 transition duration-1000"
+                                />
+                                <div className="text-gray-100 font-bold text-center">
+                                    <h1 className="absolute dark:text-gray-200 text-xs bottom-0 w-full text-center backdrop-blur-sm bg-gray-800 bg-opacity-75 rounded-bl-lg rounded-br-lg">
+                                        <div className='py-1'>
+                                            {label}
+                                        </div>
+                                    </h1>
+                                </div>
                             </div>
                         </div>
-                    </div>
-                ))}
-            </div>
+                    ))}
+                </div>
 
-            <div class="mx-10 md:grid md:grid-cols-6 lg:grid-cols-6 gap-4 space-y-4 md:space-y-0 overflow-hidden">
-                {TagsType.slice(6).map(({ value, image, label }) => (
-                    <div
-                        className={`bg-gray-900 h-28 shadow-xl rounded-bl-lg rounded-lg overflow-hidden transform cursor-pointer ${value.some((tag) => tags.includes(tag)) ? 'border-2 border-lime-600' : ''
-                            }`}
-                    >
-                        <div className="relative" onClick={() => handleClick(value)}>
-                            <img
-                                src={image}
-                                className="h-28 w-full object-cover rounded-lg rounded-br-lg bg-gray-300 dark:bg-gray-700 transform hover:scale-105 transition duration-1000"
-                            />
-                            <div className="text-gray-100 font-bold text-center">
-                                <h1 className="absolute dark:text-gray-200 text-xs bottom-0 w-full text-center backdrop-blur-sm bg-gray-800 bg-opacity-75 rounded-bl-lg rounded-br-lg">
-                                    <div className='py-1'>
-                                        {label}
-                                    </div>
-                                </h1>
+                <div class="mx-10 md:grid md:grid-cols-6 lg:grid-cols-6 gap-4 space-y-4 md:space-y-0 overflow-hidden">
+                    {TagsType.slice(6).map(({ value, image, label }) => (
+                        <div
+                            className={`bg-gray-900 h-28 shadow-xl rounded-bl-lg rounded-lg overflow-hidden transform cursor-pointer ${value.some((tag) => tags.includes(tag)) ? 'border-2 border-lime-600' : ''
+                                }`}
+                        >
+                            <div className="relative" onClick={() => handleClick(value)}>
+                                <img
+                                    src={image}
+                                    className="h-28 w-full object-cover rounded-lg rounded-br-lg bg-gray-300 dark:bg-gray-700 transform hover:scale-105 transition duration-1000"
+                                />
+                                <div className="text-gray-100 font-bold text-center">
+                                    <h1 className="absolute dark:text-gray-200 text-xs bottom-0 w-full text-center backdrop-blur-sm bg-gray-800 bg-opacity-75 rounded-bl-lg rounded-br-lg">
+                                        <div className='py-1'>
+                                            {label}
+                                        </div>
+                                    </h1>
+                                </div>
                             </div>
                         </div>
-                    </div>
-                ))}
-            </div>
-        </Carousel>
+                    ))}
+                </div>
+            </Carousel>
+        </>
     )
 }
 
diff --git a/src/searchAll/presentation/component/SearchForm.jsx b/src/searchAll/presentation/component/SearchForm.jsx
index 3308e3c6..55bd66f4 100644
--- a/src/searchAll/presentation/component/SearchForm.jsx
+++ b/src/searchAll/presentation/component/SearchForm.jsx
@@ -4,7 +4,7 @@ import SearchLocality from './SearchLocality';
 import SearchViaType from './SearchViaType';
 import Favoris from '../container/Favoris';
 
-function SearchForm({ isAuthenticated, name, count, typeValue, typeDefaultValue, setlocality, setlocalityDefault, tagsSearch, setParsedParamsTypeFavoris, setParsedParamsTagsFavoris, localityFavoris  }) {
+function SearchForm({ isAuthenticated, name, count, typeValue, typeDefaultValue, setlocality, setlocalityDefault, tagsSearch, setParsedParamsTypeFavoris, setParsedParamsTagsFavoris, localityFavoris }) {
     const [inputValue, setInputValue] = useState('');
 
     useEffect(() => {
@@ -39,35 +39,84 @@ function SearchForm({ isAuthenticated, name, count, typeValue, typeDefaultValue,
 
 
     return (
-        <div className='flex justify-between'>
-            <div className="flex flex-col md:flex-row items-center md:justify-end -pt-3 p-3 rounded-lg mx-20">
-                <div className="w-full relative flex-grow mb-4 md:mb-0 md:mr-4">
-                    <input
-                        value={inputValue}
-                        onChange={handleInputChange}
-                        type="text"
-                        className="block p-1.5 z-20 text-sm text-gray-900 bg-gray-50 rounded-lg border-s-gray-50 border-s-2 border border-gray-300 focus:ring-lime-500 focus:border-lime-500 dark:bg-gray-700 dark:border-s-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-gray-200 dark:focus:border-lime-500 w-full outline-none"
-                        placeholder="Que recherchez-vous ?"
+        <div>
+            <div className='hidden sm:block mb-2'>
+                <div className='flex justify-between p-1'>
+                    <div className="flex flex-col md:flex-row items-center md:justify-end -pt-3 rounded-lg">
+                        <div className="w-full relative flex-grow mb-4 md:mb-0 md:mr-4">
+                            <input
+                                value={inputValue}
+                                onChange={handleInputChange}
+                                type="text"
+                                className="block p-1.5 z-20 text-sm text-gray-900 bg-gray-50 rounded-lg border-s-gray-50 border-s-2 border border-gray-300 focus:ring-lime-500 focus:border-lime-500 dark:bg-gray-700 dark:border-s-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-gray-200 dark:focus:border-lime-500 w-full outline-none"
+                                placeholder="Que recherchez-vous ?"
+                            />
+                            <button type="submit" className="absolute top-0 right-0 p-1.5 text-sm font-medium text-gray-200 bg-lime-700 rounded-e-lg border border-lime-700 hover:bg-lime-800 focus:ring-1 focus:outline-none focus:ring-lime-300 dark:bg-lime-600 dark:hover:bg-lime-700 dark:focus:ring-lime-800">
+                                <i className="fa-solid fa-search mx-2"></i>
+                            </button>
+                        </div>
+                        <SearchLocality setlocality={setlocality} setlocalityDefault={setlocalityDefault} />
+                        <SearchViaType
+                            count={count}
+                            typeValue={typeValue}
+                            typeDefaultValue={typeDefaultValue}
+                        />
+                    </div>
+                    <Favoris
+                        typeSearch={typeDefaultValue}
+                        tagsSearch={tagsSearch}
+                        locality={setlocalityDefault}
+                        onArrayMerge={extractSearchParams}
+                        localityFavoris={localityFavoris}
+                        isAuthenticated={isAuthenticated}
+                    />
+                </div>
+            </div>
+            <div className='block sm:hidden mx-3'>
+                <div className='flex flex-row w-full space-x-2'>
+                    <div className='w-1/2'>
+                        <div className="w-full relative flex-grow mb-4 md:mb-0 md:mr-4">
+                            <input
+                                value={inputValue}
+                                onChange={handleInputChange}
+                                type="text"
+                                className="block p-1.5 z-20 text-sm text-gray-900 bg-gray-50 rounded-lg border-s-gray-50 border-s-2 border border-gray-300 focus:ring-lime-500 focus:border-lime-500 dark:bg-gray-700 dark:border-s-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-gray-200 dark:focus:border-lime-500 w-full outline-none"
+                                placeholder="Que recherchez-vous ?"
+                            />
+                            <button type="submit" className="absolute top-0 right-0 p-1.5 text-sm font-medium text-gray-200 bg-lime-700 rounded-e-lg border border-lime-700 hover:bg-lime-800 focus:ring-1 focus:outline-none focus:ring-lime-300 dark:bg-lime-600 dark:hover:bg-lime-700 dark:focus:ring-lime-800">
+                                <i className="fa-solid fa-search mx-2"></i>
+                            </button>
+                        </div>
+                    </div>
+                    <div className='w-1/2'>
+                        <SearchLocality setlocality={setlocality} setlocalityDefault={setlocalityDefault} />
+                    </div>
+                </div>
+                <div className='flex flex-row w-full space-x-2 -mb-4'>
+                    <div className='w-1/2 -mt-6'>
+                        <SearchViaType
+                            count={count}
+                            typeValue={typeValue}
+                            typeDefaultValue={typeDefaultValue}
+                        />
+                    </div>
+                    <div className='w-1/2 -mt-2'>
+                        <button type="submit" className="w-full p-1.5 text-sm font-medium text-gray-200 bg-lime-700 rounded-lg border border-lime-700 hover:bg-lime-800 focus:ring-1 focus:outline-none focus:ring-lime-300 dark:bg-lime-600 dark:hover:bg-lime-700 dark:focus:ring-lime-800 ">
+                            Thematiques
+                        </button>
+                    </div>
+                </div>
+                <div className='md:hidden sm:flex absolute bottom-7 right-4 z-40'>
+                    <Favoris
+                        typeSearch={typeDefaultValue}
+                        tagsSearch={tagsSearch}
+                        locality={setlocalityDefault}
+                        onArrayMerge={extractSearchParams}
+                        localityFavoris={localityFavoris}
+                        isAuthenticated={isAuthenticated}
                     />
-                    <button type="submit" className="absolute top-0 right-0 p-1.5 text-sm font-medium text-gray-200 bg-lime-700 rounded-e-lg border border-lime-700 hover:bg-lime-800 focus:ring-1 focus:outline-none focus:ring-lime-300 dark:bg-lime-600 dark:hover:bg-lime-700 dark:focus:ring-lime-800">
-                        <i className="fa-solid fa-search mx-2"></i>
-                    </button>
                 </div>
-                <SearchLocality setlocality={setlocality} setlocalityDefault={setlocalityDefault} />
-                <SearchViaType
-                    count={count}
-                    typeValue={typeValue}
-                    typeDefaultValue={typeDefaultValue}
-                />
             </div>
-            <Favoris
-                typeSearch={typeDefaultValue}
-                tagsSearch={tagsSearch}
-                locality={setlocalityDefault}
-                onArrayMerge={extractSearchParams}
-                localityFavoris={localityFavoris}
-                isAuthenticated={isAuthenticated}
-            />
         </div>
     )
 }
diff --git a/src/searchAll/presentation/component/SearchLocality.jsx b/src/searchAll/presentation/component/SearchLocality.jsx
index 876408f3..72190789 100644
--- a/src/searchAll/presentation/component/SearchLocality.jsx
+++ b/src/searchAll/presentation/component/SearchLocality.jsx
@@ -3,7 +3,6 @@ import React from 'react'
 import { globalAutocompleteCities } from '../../infrastructure/api/search-api';
 
 function SearchLocality({ setlocality, setlocalityDefault }) {
-    console.log(setlocalityDefault);
     const [inputValue, setInputValue] = useState('');
     const [isOpen, setIsOpen] = useState(false);
     const [results, setresults] = useState([]);
diff --git a/src/searchAll/presentation/component/ShareInSearch.jsx b/src/searchAll/presentation/component/ShareInSearch.jsx
index a9d9e659..688a721b 100644
--- a/src/searchAll/presentation/component/ShareInSearch.jsx
+++ b/src/searchAll/presentation/component/ShareInSearch.jsx
@@ -5,7 +5,6 @@ import Card from './Card'
 import Textarea from '../../../core/presentation/component/input/Textarea'
 
 function ShareInSearch({ show, close, title, dataInShare, comment }) {
-	// console.log(dataInShare);
 	return (
 		<Modal show={show} title={title} close={close} isLoading={false} onSubmitText={"Partager"} style={"h-auto overflow-y-auto overflow-x-hidden"}>
 			
diff --git a/src/searchAll/presentation/container/Favoris.jsx b/src/searchAll/presentation/container/Favoris.jsx
index ada759e8..ae74b5d8 100644
--- a/src/searchAll/presentation/container/Favoris.jsx
+++ b/src/searchAll/presentation/container/Favoris.jsx
@@ -61,8 +61,7 @@ function Favoris({ isAuthenticated, typeSearch, tagsSearch, locality, onArrayMer
             } else {
                 setlistOrAddShow(false)
             }
-            console.log(favoris.signal.value);
-            // console.log(resultConfirme);
+
         }
     };
     function toggleRow(index, url) {
@@ -87,7 +86,6 @@ function Favoris({ isAuthenticated, typeSearch, tagsSearch, locality, onArrayMer
     }
 
     const deleteShowConst = (index) => {
-        console.log(index);
         setExpandedRows([])
         setdeleteShow(prevState => {
             if (prevState.includes(index)) {
@@ -186,7 +184,7 @@ function Favoris({ isAuthenticated, typeSearch, tagsSearch, locality, onArrayMer
     }
     return (
         <>
-            <div className='mt-3 pr-2 text-gray-200 font-semibold' onClick={openDetailsFunction}>
+            <div className='pr-2 text-gray-200 font-semibold' onClick={openDetailsFunction}>
                 <button
                     data-tooltip-id="favorisId" data-tooltip-content="Vous devez être connecté"
                     disabled={isAuthenticated === false}
diff --git a/src/searchAll/presentation/container/ListeSearch.jsx b/src/searchAll/presentation/container/ListeSearch.jsx
index fae57749..ec191117 100644
--- a/src/searchAll/presentation/container/ListeSearch.jsx
+++ b/src/searchAll/presentation/container/ListeSearch.jsx
@@ -62,6 +62,7 @@ function ListeSearch() {
         fetchData();
     }, [name, typeSearch, tagsSearch, locality])
 
+
     const sumResutNoFilter = Object.values(articleCount.signal.value).reduce((accumulator, currentValue) => accumulator + currentValue, 0);
 
     const filteredKeys = Object.keys(articleCount.signal.value)
@@ -205,8 +206,7 @@ function ListeSearch() {
                     isAuthenticated={isAuthenticated}
                 />
                 <div className="w-full overflow-y-auto lg:overflow-x-hidden p-2 rounded-lg shadow">
-                    <div className={`${marginTopClass} transition-margin duration-500 ease-in-out`}>
-                        <h1 className="mb-4 -mt-2 text-xl font-bold leading-none tracking-tight text-gray-700 dark:text-gray-200">Thematiques</h1>
+                    <div className={`${marginTopClass} transition-margin duration-500 ease-in-out hidden sm:block`}>
                         <CarousselTags
                             tagsSearchValue={setTagsSearch}
                             tagsSearchDefaultValue={tagsSearch}
@@ -227,7 +227,7 @@ function ListeSearch() {
                                     </>}
                             </button>
                         </div>
-                        <div className="ml-5 overflow-x-auto hide-scrollbar flex max-w-[50rem]">
+                        <div className="ml-5 overflow-x-auto hide-scrollbar flex max-w-[50rem] mt-1.5">
                             {typeSearch.map((item) => (
                                 <span class="whitespace-nowrap bg-blue-100 text-blue-800 text-xs font-medium mr-2 px-2.5 py-0.5 rounded dark:bg-blue-900 dark:text-blue-300">
                                     <i onClick={() => removeTypeSearch(item)} class="fa-solid fa-circle-xmark mr-1 cursor-pointer"></i>
@@ -259,6 +259,7 @@ function ListeSearch() {
                                         jointAction={jointAction}
                                         openRightDetailleFunction={openDetailsFunction}
                                         isAuthenticated={isAuthenticated}
+                                        user={user}
                                     />
                                 ))}
                                 {endNews ? (
@@ -309,6 +310,8 @@ function ListeSearch() {
             <CustomDrawer
                 isOpenDrawer={isOpenCustomDrawer}
                 openAndCloseDrawer={openDetailsFunction}
+                link={dataToGet.slug}
+                dataToGet={dataToGet}
                 openPageTitle={"Ouvrir la page"}
                 placement={'right'}
                 overflowType={"overflow-hidden"}
@@ -316,8 +319,6 @@ function ListeSearch() {
                 <DetailleRight element={dataToGet} />
 
             </CustomDrawer>
-
-
         </>
     )
 }
-- 
GitLab