diff --git a/src/Pages/Users/Page.tsx b/src/Pages/Users/Page.tsx
index 2d63c17..c4a8804 100644
--- a/src/Pages/Users/Page.tsx
+++ b/src/Pages/Users/Page.tsx
@@ -5,9 +5,7 @@ import DashHeader from '../../Layout/Dashboard/DashHeader'
import LyTable from '../../Layout/Dashboard/LyTable'
import useTableColumns from './useTableColumns'
import { QueryStatusEnum } from '../../config/QueryStatus'
-import { useTranslation } from 'react-i18next'
-import { useNavigate } from 'react-router-dom'
-import AddButton from '../../Layout/Dashboard/AddButton/AddButton'
+
import { useGetUsers } from '../../api/users'
import SearchField from '../../Layout/Dashboard/SearchField'
@@ -15,8 +13,7 @@ function Page() {
const column =useTableColumns()
const {data ,status } = useGetUsers()
- const [t] = useTranslation()
- const navigate = useNavigate()
+
const totalRows = data?.meta?.total;
return (
diff --git a/src/Pages/Users/View/AddPage.tsx b/src/Pages/Users/View/AddPage.tsx
deleted file mode 100644
index 723cd3d..0000000
--- a/src/Pages/Users/View/AddPage.tsx
+++ /dev/null
@@ -1,57 +0,0 @@
-import React, { useEffect, useState } from 'react'
-import { getInitialValuesForAdd as getInitialValues, getValidationSchema, getDataToSend } from '../formUtil'
-import { Tab, TabList, TabPanel as TabBody, Tabs } from 'react-tabs'
-import 'react-tabs/style/react-tabs.css';
-import { MdLanguage } from 'react-icons/md'
-import ViewPage from '../../../Layout/Dashboard/ViewPage';
-import { useTranslation } from 'react-i18next';
-import useNavigateOnSuccess from '../../../Hooks/useNavigateOnSuccess';
-import { useAddUsers } from '../../../api/users';
-import Form from './AddForm';
-
-const AddPage = () => {
-
-
- const { mutate, isLoading:IsloadingButton, isSuccess } = useAddUsers()
- const handleSubmit = (values: any) => {
-
-
-mutate(values)
-
- };
-
- const { t } = useTranslation();
-
- useNavigateOnSuccess(isSuccess, '/users')
-
-
-
- const ViewProps = { getInitialValues, getValidationSchema, getDataToSend, handleSubmit,IsloadingButton };
-
-
- return (
-
-
-
-
-
-
{t("BasicInfo")}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
-
-}
-
-export default AddPage
\ No newline at end of file
diff --git a/src/Pages/Users/View/AddForm.tsx b/src/Pages/Users/View/EditForm.tsx
similarity index 63%
rename from src/Pages/Users/View/AddForm.tsx
rename to src/Pages/Users/View/EditForm.tsx
index 6ca365c..ea8e61b 100644
--- a/src/Pages/Users/View/AddForm.tsx
+++ b/src/Pages/Users/View/EditForm.tsx
@@ -7,14 +7,12 @@ function Form() {
return (
-
-
+
-
-
+
diff --git a/src/Pages/Users/View/EditPage.tsx b/src/Pages/Users/View/EditPage.tsx
new file mode 100644
index 0000000..f02cad7
--- /dev/null
+++ b/src/Pages/Users/View/EditPage.tsx
@@ -0,0 +1,67 @@
+import React, { useEffect } from 'react'
+import { getInitialValues, getDataToSend } from '../formUtil'
+import { Tab, TabList, TabPanel as TabBody, Tabs } from 'react-tabs'
+import 'react-tabs/style/react-tabs.css';
+import { MdLanguage } from 'react-icons/md'
+import ViewPage from '../../../Layout/Dashboard/ViewPage';
+import { usePageState } from '../../../lib/state mangment/LayoutPagestate';
+import LoadingPage from '../../../Layout/app/LoadingPage';
+import { useTranslation } from 'react-i18next';
+import { useGetOneUser, useUpdateAdmin } from '../../../api/users';
+import useNavigateOnSuccess from '../../../Hooks/useNavigateOnSuccess';
+import Form from './EditForm';
+
+const EditPage = () => {
+ const { setObjectToEdit, objectToEdit } = usePageState()
+ const {t} = useTranslation();
+ const { data } = useGetOneUser()
+ const {mutate ,isSuccess,isLoading:IsloadingButton} = useUpdateAdmin("put")
+ const handleSubmit = (values:any)=>{
+
+ return mutate(values);
+ }
+
+ useNavigateOnSuccess(isSuccess , '/users')
+
+
+ useEffect(() => {
+ console.log(data);
+
+ setObjectToEdit(data?.data);
+
+ }, [data]);
+
+
+ const getValidationSchema = () => {
+ return null
+ };
+
+
+ const ViewProps = { getInitialValues, getValidationSchema, getDataToSend, handleSubmit,IsloadingButton };
+
+
+ return (
+
+ {objectToEdit && data ?
+
+
+
+
{t("BasicInfo")}
+
+
+
+
+
+
+
+
+
+ :
}
+
+
+
+ )
+
+}
+
+export default EditPage
\ No newline at end of file
diff --git a/src/Pages/Users/formUtil.ts b/src/Pages/Users/formUtil.ts
index 581c2f5..f622255 100644
--- a/src/Pages/Users/formUtil.ts
+++ b/src/Pages/Users/formUtil.ts
@@ -1,28 +1,22 @@
import * as Yup from "yup";
import { buildFormData } from "../../api/helper/buildFormData";
-import moment from 'moment';
-import * as dayjs from 'dayjs'
export const getInitialValues = (objectToEdit: any | null = null): any => {
//@ts-ignore
return {
id: objectToEdit?.id ,
- name: objectToEdit?.name ,
- email: objectToEdit?.email ,
- type: objectToEdit?.type ,
- avatar: objectToEdit?.avatar ,
+ password: objectToEdit?.password ,
+
};
};
export const getInitialValuesForAdd = (objectToEdit: any | null = null): any => {
return {
- name: null ,
- email: null ,
- type: null ,
- avatar: null ,
+ password: null ,
+
};
};
@@ -30,10 +24,7 @@ export const getInitialValuesForAdd = (objectToEdit: any | null = null): any =>
export const getValidationSchema = (editMode: boolean = false): Yup.Schema => {
// Validate input
return Yup.object().shape({
- name: Yup.string().required('Required'),
- email: Yup.string().required('Required'),
- type: Yup.string().required('Required'),
- avatar: Yup.string().required('Required'),
+
});
};
diff --git a/src/Pages/Users/useTableColumns.tsx b/src/Pages/Users/useTableColumns.tsx
index cfb8665..ded5edb 100644
--- a/src/Pages/Users/useTableColumns.tsx
+++ b/src/Pages/Users/useTableColumns.tsx
@@ -4,25 +4,31 @@ import { useTranslation } from "react-i18next";
import Actions from "../../Components/Ui/tables/Actions";
import ColumnsImage from "../../Components/Columns/ColumnsImage";
import { useNavigate } from "react-router-dom";
-import { useDeleteUsers, useUpdateUsers } from "../../api/users";
+import { useUpdateUsers } from "../../api/users";
import { Switch } from "antd";
import { MdEmail } from "react-icons/md";
-import { useModalState } from "../../zustand/Modal";
+import { toast } from "react-toastify";
const useTableColumns: any = () => {
const [t] = useTranslation();
- const deleteMutation = useDeleteUsers()
const navigate = useNavigate()
const { mutate: update_status } = useUpdateUsers("put")
const onChange = (checked: boolean, row: any) => {
- console.log(`switch to ${checked}`);
- update_status({
- id: row.id,
- status: checked ? "active" : "suspended"
+ console.log(`switch to ${checked}`)
+ if(row.type === "user"){
+
+ update_status({
+ id: row.id,
+ status: checked ? "active" : "suspended"
+
+ })
+ }else{
+ toast.error("sorry_only_user_can_change_his_status")
+ }
+
- })
};
@@ -78,8 +84,8 @@ const useTableColumns: any = () => {
cell: (row: any) => (
navigate(`/users/${row.id}`)}
+ showEdit={row.type === "user" ?false : true}
+ onEdit={() => navigate(`/admin/${row.id}`)}
showView={false}
// onDelete={() => deleteMutation.mutate({ id: row.id })}
showDelete={false}
@@ -91,7 +97,7 @@ const useTableColumns: any = () => {
},
],
- [t]
+ []
);
};
diff --git a/src/Routes.tsx b/src/Routes.tsx
index f57a427..b452a97 100644
--- a/src/Routes.tsx
+++ b/src/Routes.tsx
@@ -31,7 +31,7 @@ import AddSliderPage from "./Pages/Slider/View/AddPage";
import EditSlider from "./Pages/Slider/View/EditPage";
import UsersPage from "./Pages/Users/Page";
-import AddUsersPage from "./Pages/Users/View/AddPage";
+import EditUsersPage from "./Pages/Users/View/EditPage";
import AddUsersNotifactionPage from "./Pages/Users/SendNotifcation/View/AddPage";
@@ -160,8 +160,8 @@ export const RoutesLinks: RoutesLinksType[] = [
href: "/users",
},
{
- href: "/users/add",
- element: ,
+ href: "/admin/:id",
+ element: ,
hidden:true
},
diff --git a/src/api/users.ts b/src/api/users.ts
index b6bb803..c7a3dda 100644
--- a/src/api/users.ts
+++ b/src/api/users.ts
@@ -3,15 +3,18 @@ import useGetQueryPagination from "./helper/ueGetPagination";
import useAddMutation from "./helper/useAddMutation"
import useDeleteMutation from "./helper/useDeleteMutation"
import useGetOneQuery from "./helper/useGetOneQuery";
-import useGetQuery from "./helper/useGetQuery"
import useUpdateMutation from "./helper/useUpdateMutation";
import useUpdateMutationById from "./helper/useUpdateMutationById";
const API = {
ADD: `user`,
- GET_ALL: `user?notOfType=admin`,
+ // GET_ALL: `user?notOfType=admin`,
+ GET_ALL: `user`,
+
DELETE: `user`,
UPDATE: `user/updateStatus`,
+ UPDATE_ADMIN: `user`,
+
};
const KEY = "User"
@@ -22,6 +25,7 @@ export const useGetOneUser = (params?:any) => useGetOneQuery(KEY, API.GET_ALL,pa
export const useAddUsers = () => useAddMutation(KEY, API.ADD);
export const useUpdateUsers = (method?:string) => useUpdateMutationById(KEY, API.UPDATE,true,method);
+export const useUpdateAdmin = (method?:string) => useUpdateMutation(KEY, API.UPDATE_ADMIN,true,method);
export const useDeleteUsers = () =>useDeleteMutation(KEY, API.DELETE);
diff --git a/src/translate/text b/src/translate/text
index dc47021..01f7005 100644
--- a/src/translate/text
+++ b/src/translate/text
@@ -1,10 +1 @@
-Product_Count_in_your_Application
-productCount
-user_in_your_Application
-userCount
-orderCount
-order_count_in_your_Application
-You_have
-users
-orders
-month
\ No newline at end of file
+sorry_only_user_can_change_his_status
\ No newline at end of file