eleven-solutions-common-website-unique-web 1.0.13 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
11
  import { useState, useEffect } from "react";
12
- import { useLocation } from "react-router-dom";
13
12
  import { addTaxonomyApi, fetchTaxonomyByIdApi, updateTaxonomyApi, fetchTaxonomiessApi, addMultipleTaxonomiesApi, deleteTaxonomyApi, isMultipleApi, } from "../api/taxonomy";
14
13
  import { FaPlus } from "react-icons/fa";
15
14
  const TaxonomyForm = () => {
@@ -34,14 +33,104 @@ const TaxonomyForm = () => {
34
33
  }
35
34
  return true;
36
35
  };
37
- const location = useLocation();
36
+ // const location = useLocation();
38
37
  // const navigate = useNavigate();
39
38
  // const { id } = location.state || {};
40
- const getIdFromUrl = () => {
41
- const params = new URLSearchParams(window.location.search);
42
- return params.get("id") || "";
43
- };
44
- const [id, setId] = useState(getIdFromUrl());
39
+ // useEffect(() => {
40
+ // if (id) {
41
+ // const fetchTaxonomyData = async () => {
42
+ // try {
43
+ // const fetchedTaxonomy = await fetchTaxonomyByIdApi(id);
44
+ // if (fetchedTaxonomy) {
45
+ // const taxonomy = fetchedTaxonomy as {
46
+ // type: string;
47
+ // code: string | number;
48
+ // value: string;
49
+ // };
50
+ // setIsEditMode(true);
51
+ // setType(taxonomy.type);
52
+ // setCode(taxonomy.code);
53
+ // setValue(taxonomy.value);
54
+ // }
55
+ // } catch (error) {
56
+ // console.error("Unable to fetch taxonomy data", error);
57
+ // }
58
+ // };
59
+ // fetchTaxonomyData();
60
+ // }
61
+ // }, [id]);
62
+ // useEffect(() => {
63
+ // const handleFetchSimilarTaxonomies = async () => {
64
+ // try {
65
+ // const response = await fetchTaxonomiessApi();
66
+ // // const filteredTaxonomies = response.filter(
67
+ // const filteredTaxonomies = (response as { type: string }[]).filter(
68
+ // (taxonomy: { type: string }) => taxonomy.type === type
69
+ // );
70
+ // setSimilarTaxonomies(filteredTaxonomies);
71
+ // } catch (error) {
72
+ // console.error("Error fetching similar taxonomies", error);
73
+ // }
74
+ // };
75
+ // if (type) {
76
+ // handleFetchSimilarTaxonomies();
77
+ // }
78
+ // }, [type]);
79
+ // useEffect(() => {
80
+ // if (location.pathname === "/taxonomy/taxonomyform") {
81
+ // setIsSimilarTaxonomyOpen(true);
82
+ // }
83
+ // }, [location.pathname]);
84
+ // const handleSubmit = async (event: React.MouseEvent<HTMLButtonElement>) => {
85
+ // event.preventDefault();
86
+ // if (!validateForm()) return;
87
+ // try {
88
+ // if (isEditMode) {
89
+ // await addMultipleTaxonomiesApi(tempTaxonomy);
90
+ // setTempTaxonomy([]);
91
+ // alert("taxonomies added successfully");
92
+ // } else {
93
+ // await addTaxonomyApi(type, Number(code), value);
94
+ // alert("Taxonomy added successfully");
95
+ // }
96
+ // navigate("/admin/taxonomy");
97
+ // } catch (error) {
98
+ // console.error("Error adding/updating Taxonomy:", error);
99
+ // alert("Failed to add/update Taxonomy");
100
+ // }
101
+ // };
102
+ // const handleSave = async (event: React.MouseEvent<HTMLButtonElement>) => {
103
+ // event.preventDefault();
104
+ // if (!validateForm()) return;
105
+ // try {
106
+ // if (isEditMode) {
107
+ // await updateTaxonomyApi(id, type, Number(code), value);
108
+ // alert("Taxonomy updated successfully");
109
+ // } else {
110
+ // await addTaxonomyApi(type, Number(code), value);
111
+ // alert("Taxonomy added successfully");
112
+ // }
113
+ // navigate("/admin/taxonomy");
114
+ // } catch (error) {
115
+ // console.error("Error adding/updating Taxonomy:", error);
116
+ // alert("Failed to add/update Taxonomy");
117
+ // }
118
+ // };
119
+ // useEffect(() => {
120
+ // const fetchIsMultiple = async () => {
121
+ // try {
122
+ // const result = await isMultipleApi(type);
123
+ // setIsMultiple(typeof result === "boolean");
124
+ // } catch (error) {
125
+ // console.error("Error checking if taxonomy is multiple:", error);
126
+ // }
127
+ // };
128
+ // fetchIsMultiple();
129
+ // }, [location.pathname, type]);
130
+ // Extract the id from the URL query parameters
131
+ const queryParams = new URLSearchParams(window.location.search);
132
+ const id = queryParams.get("id");
133
+ // Fetch taxonomy data if id exists
45
134
  useEffect(() => {
46
135
  if (id) {
47
136
  const fetchTaxonomyData = () => __awaiter(void 0, void 0, void 0, function* () {
@@ -62,11 +151,11 @@ const TaxonomyForm = () => {
62
151
  fetchTaxonomyData();
63
152
  }
64
153
  }, [id]);
154
+ // Fetch similar taxonomies based on the type
65
155
  useEffect(() => {
66
156
  const handleFetchSimilarTaxonomies = () => __awaiter(void 0, void 0, void 0, function* () {
67
157
  try {
68
158
  const response = yield fetchTaxonomiessApi();
69
- // const filteredTaxonomies = response.filter(
70
159
  const filteredTaxonomies = response.filter((taxonomy) => taxonomy.type === type);
71
160
  setSimilarTaxonomies(filteredTaxonomies);
72
161
  }
@@ -78,11 +167,13 @@ const TaxonomyForm = () => {
78
167
  handleFetchSimilarTaxonomies();
79
168
  }
80
169
  }, [type]);
170
+ // Check if the current pathname matches "/taxonomy/taxonomyform"
81
171
  useEffect(() => {
82
- if (location.pathname === "/taxonomy/taxonomyform") {
172
+ if (window.location.pathname === "/taxonomy/taxonomyform") {
83
173
  setIsSimilarTaxonomyOpen(true);
84
174
  }
85
- }, [location.pathname]);
175
+ }, []);
176
+ // Handle form submission
86
177
  const handleSubmit = (event) => __awaiter(void 0, void 0, void 0, function* () {
87
178
  event.preventDefault();
88
179
  if (!validateForm())
@@ -91,26 +182,20 @@ const TaxonomyForm = () => {
91
182
  if (isEditMode) {
92
183
  yield addMultipleTaxonomiesApi(tempTaxonomy);
93
184
  setTempTaxonomy([]);
94
- alert("taxonomies added successfully");
185
+ alert("Taxonomies added successfully");
95
186
  }
96
187
  else {
97
188
  yield addTaxonomyApi(type, Number(code), value);
98
189
  alert("Taxonomy added successfully");
99
190
  }
100
- // navigate("/admin/taxonomy");
101
- const link = document.createElement("a");
102
- link.href = "/admin/taxonomy";
103
- link.onclick = (e) => {
104
- e.preventDefault();
105
- window.history.pushState({}, "", "/admin/taxonomy");
106
- };
107
- link.click();
191
+ window.location.href = "/admin/taxonomy";
108
192
  }
109
193
  catch (error) {
110
194
  console.error("Error adding/updating Taxonomy:", error);
111
195
  alert("Failed to add/update Taxonomy");
112
196
  }
113
197
  });
198
+ // Handle save operation
114
199
  const handleSave = (event) => __awaiter(void 0, void 0, void 0, function* () {
115
200
  event.preventDefault();
116
201
  if (!validateForm())
@@ -124,20 +209,14 @@ const TaxonomyForm = () => {
124
209
  yield addTaxonomyApi(type, Number(code), value);
125
210
  alert("Taxonomy added successfully");
126
211
  }
127
- // navigate("/admin/taxonomy");
128
- const link = document.createElement("a");
129
- link.href = "/admin/taxonomy";
130
- link.onclick = (e) => {
131
- e.preventDefault();
132
- window.history.pushState({}, "", "/admin/taxonomy");
133
- };
134
- link.click();
212
+ window.location.href = "/admin/taxonomy"; // Navigate to the taxonomy page
135
213
  }
136
214
  catch (error) {
137
215
  console.error("Error adding/updating Taxonomy:", error);
138
216
  alert("Failed to add/update Taxonomy");
139
217
  }
140
218
  });
219
+ // Fetch "isMultiple" property based on the taxonomy type
141
220
  useEffect(() => {
142
221
  const fetchIsMultiple = () => __awaiter(void 0, void 0, void 0, function* () {
143
222
  try {
@@ -149,19 +228,18 @@ const TaxonomyForm = () => {
149
228
  }
150
229
  });
151
230
  fetchIsMultiple();
152
- }, [location.pathname, type]);
231
+ }, [type]);
232
+ // const handleCancelClick = () => {
233
+ // setType("");
234
+ // setCode("");
235
+ // setValue("");
236
+ // navigate("/admin/taxonomy");
237
+ // };
153
238
  const handleCancelClick = () => {
154
239
  setType("");
155
240
  setCode("");
156
241
  setValue("");
157
- // navigate("/admin/taxonomy");
158
- const link = document.createElement("a");
159
- link.href = "/admin/taxonomy";
160
- link.onclick = (e) => {
161
- e.preventDefault(); // prevent the default behavior of the anchor tag
162
- window.history.pushState({}, "", "/admin/taxonomy");
163
- };
164
- link.click();
242
+ window.location.href = "/admin/taxonomy";
165
243
  };
166
244
  const handleOpenModal = () => {
167
245
  setEditTaxonomyItem(null);
@@ -249,16 +327,24 @@ const TaxonomyForm = () => {
249
327
  console.error("Error deleting Taxonomy:", error);
250
328
  }
251
329
  });
252
- return (_jsxs("div", { className: `${isEditMode && isMultiple ? "w-full" : "max-w-4xl"} p-6 mx-auto dark:bg-gray-800`, children: [_jsxs("div", { className: `transition duration-300 ${isModalOpen ? "filter blur-sm" : ""}`, children: [_jsx("h1", { className: "text-3xl font-bold text-center text-blue-600 capitalize dark:text-white mb-4", children: isEditMode ? "Edit Taxonomy" : "Add Taxonomy" }), _jsx("h1", { className: "text-2xl text-blue-600 capitalize dark:text-white mb-4", children: isEditMode ? `Taxonomy Type: ${type}` : "" }), !isMultiple && (_jsxs("form", { children: [!isEditMode && (_jsxs("div", { className: "mb-6 w-full", children: [_jsxs("label", { className: "text-gray-900 dark:text-gray-200 font-semibold", children: ["Type ", _jsx("span", { className: "text-red-500", children: "*" })] }), _jsx("input", { required: true, value: type, onChange: (e) => setType(e.target.value), type: "text", className: "w-full px-4 py-2 mt-2 text-gray-800 bg-white border border-gray-400 rounded-md dark:bg-gray-800 dark:text-gray-300 dark:border-gray-800 focus:border-blue-400 focus:ring-blue-300 focus:ring-opacity-40 dark:focus:border-blue-300 focus:outline-none focus:ring", placeholder: "Enter Type" })] })), _jsxs("div", { className: "mb-6 w-full", children: [_jsxs("label", { className: "text-gray-900 dark:text-gray-200 font-semibold", children: ["Code ", _jsx("span", { className: "text-red-500", children: "*" })] }), _jsx("input", { required: true, value: code, onChange: (e) => setCode(e.target.value === "" ? "" : Number(e.target.value)), type: "number", className: "w-full px-4 py-2 mt-2 text-gray-800 bg-white border border-gray-400 rounded-md dark:bg-gray-800 dark:text-gray-300 dark:border-gray-800 focus:border-blue-400 focus:ring-blue-300 focus:ring-opacity-40 dark:focus:border-blue-300 focus:outline-none focus:ring", placeholder: "Enter Code", disabled: similarTaxonomies.some((taxonomy) => taxonomy.isEdit === false) })] }), _jsxs("div", { className: "mb-6 w-full", children: [_jsxs("label", { className: "text-gray-900 dark:text-gray-200 font-semibold", children: ["Value ", _jsx("span", { className: "text-red-500", children: "*" })] }), _jsx("input", { required: true, value: value, onChange: (e) => setValue(e.target.value), type: "text", className: "w-full px-4 py-2 mt-2 text-gray-800 bg-white border border-gray-400 rounded-md dark:bg-gray-800 dark:text-gray-300 dark:border-gray-800 focus:border-blue-400 focus:ring-blue-300 focus:ring-opacity-40 dark:focus:border-blue-300 focus:outline-none focus:ring", placeholder: "Enter Value", disabled: similarTaxonomies.some((taxonomy) => taxonomy.isEdit === false) })] }), _jsxs("div", { className: "flex space-x-4 mt-6 justify-between", children: [_jsx("div", { children: isEditMode && (_jsx("div", { children: similarTaxonomies.some((taxonomy) => taxonomy.isEdit) && (_jsx("button", { type: "button", onClick: () => {
330
+ return (_jsxs("div", { className: `${isEditMode && isMultiple ? "w-full" : "max-w-4xl"} p-6 mx-auto dark:bg-gray-800`, children: [_jsxs("div", { className: `transition duration-300 ${isModalOpen ? "filter blur-sm" : ""}`, children: [_jsx("h1", { className: "text-3xl font-bold text-center text-blue-600 capitalize dark:text-white mb-4", children: isEditMode ? "Edit Taxonomy" : "Add Taxonomy" }), _jsx("h1", { className: "text-2xl text-blue-600 capitalize dark:text-white mb-4", children: isEditMode ? `Taxonomy Type: ${type}` : "" }), !isMultiple && (_jsxs("form", { children: [!isEditMode && (_jsxs("div", { className: "mb-6 w-full", children: [_jsxs("label", { className: "text-gray-900 dark:text-gray-200 font-semibold", children: ["Type ", _jsx("span", { className: "text-red-500", children: "*" })] }), _jsx("input", { required: true, value: type, onChange: (e) => setType(e.target.value), type: "text", className: "w-full px-4 py-2 mt-2 text-gray-800 bg-white border border-gray-400 rounded-md dark:bg-gray-800 dark:text-gray-300 dark:border-gray-800 focus:border-blue-400 focus:ring-blue-300 focus:ring-opacity-40 dark:focus:border-blue-300 focus:outline-none focus:ring", placeholder: "Enter Type" })] })), _jsxs("div", { className: "mb-6 w-full", children: [_jsxs("label", { className: "text-gray-900 dark:text-gray-200 font-semibold", children: ["Code ", _jsx("span", { className: "text-red-500", children: "*" })] }), _jsx("input", { required: true, value: code, onChange: (e) => setCode(e.target.value === "" ? "" : Number(e.target.value)), type: "number", className: "w-full px-4 py-2 mt-2 text-gray-800 bg-white border border-gray-400 rounded-md dark:bg-gray-800 dark:text-gray-300 dark:border-gray-800 focus:border-blue-400 focus:ring-blue-300 focus:ring-opacity-40 dark:focus:border-blue-300 focus:outline-none focus:ring", placeholder: "Enter Code", disabled: similarTaxonomies.some((taxonomy) => taxonomy.isEdit === false) })] }), _jsxs("div", { className: "mb-6 w-full", children: [_jsxs("label", { className: "text-gray-900 dark:text-gray-200 font-semibold", children: ["Value ", _jsx("span", { className: "text-red-500", children: "*" })] }), _jsx("input", { required: true, value: value, onChange: (e) => setValue(e.target.value), type: "text", className: "w-full px-4 py-2 mt-2 text-gray-800 bg-white border border-gray-400 rounded-md dark:bg-gray-800 dark:text-gray-300 dark:border-gray-800 focus:border-blue-400 focus:ring-blue-300 focus:ring-opacity-40 dark:focus:border-blue-300 focus:outline-none focus:ring", placeholder: "Enter Value", disabled: similarTaxonomies.some((taxonomy) => taxonomy.isEdit === false) })] }), _jsxs("div", { className: "flex space-x-4 mt-6 justify-between", children: [_jsx("div", { children: isEditMode && (
331
+ // <div>
332
+ // {similarTaxonomies.some((taxonomy) => taxonomy.isEdit) && (
333
+ // <button
334
+ // type="button"
335
+ // onClick={() => {
336
+ // handleDeleteClick(id);
337
+ // navigate("/admin/taxonomy");
338
+ // }}
339
+ // className="px-8 py-2.5 leading-5 text-white transition-colors duration-300 transform bg-blue-600 rounded-md hover:bg-blue-500 focus:outline-none focus:bg-gray-600"
340
+ // >
341
+ // Delete
342
+ // </button>
343
+ // )}
344
+ // </div>
345
+ _jsx("div", { children: similarTaxonomies.some((taxonomy) => taxonomy.isEdit) && (_jsx("button", { type: "button", onClick: () => {
253
346
  handleDeleteClick(id);
254
- // navigate("/admin/taxonomy");
255
- const link = document.createElement("a");
256
- link.href = "/admin/taxonomy";
257
- link.onclick = (e) => {
258
- e.preventDefault();
259
- window.history.pushState({}, "", "/admin/taxonomy");
260
- };
261
- link.click();
347
+ window.location.href = "/admin/taxonomy";
262
348
  }, className: "px-8 py-2.5 leading-5 text-white transition-colors duration-300 transform bg-blue-600 rounded-md hover:bg-blue-500 focus:outline-none focus:bg-gray-600", children: "Delete" })) })) }), _jsxs("div", { className: "flex space-x-4 justify-end", children: [similarTaxonomies.some((taxonomy) => taxonomy.isEdit) && (_jsx("button", { type: "submit", onClick: handleSave, className: "px-8 py-2.5 leading-5 text-white transition-colors duration-300 transform bg-blue-600 rounded-md hover:bg-blue-500 focus:outline-none focus:bg-gray-600", children: isEditMode ? "Save" : "Add" })), !similarTaxonomies.some((taxonomy) => taxonomy.isEdit) &&
263
349
  !isEditMode && (_jsx("button", { type: "submit", onClick: handleSave, className: "px-8 py-2.5 leading-5 text-white transition-colors duration-300 transform bg-blue-600 rounded-md hover:bg-blue-500 focus:outline-none focus:bg-gray-600", children: isEditMode ? "Save" : "Add" })), _jsx("button", { onClick: handleCancelClick, type: "button", className: "px-8 py-2.5 leading-5 text-white transition-colors duration-300 transform bg-blue-600 rounded-md hover:bg-blue-500 focus:outline-none focus:bg-gray-600", children: "Cancel" })] })] })] })), isSimilarTaxonomyOpen && isMultiple && isEditMode && (_jsxs("div", { className: "flex-grow ml-0 mt-4 w-full", children: [_jsx("div", { className: "overflow-hidden border border-gray-200 dark:border-gray-700 md:rounded-lg mt-6", children: _jsxs("table", { className: "min-w-full divide-y divide-gray-200 dark:divide-gray-700", children: [_jsx("thead", { className: "bg-gray-50 dark:bg-gray-800", children: _jsxs("tr", { children: [similarTaxonomies.some((taxonomy) => taxonomy.isEdit) && (_jsx("th", { className: "px-4 py-3.5 text-md font-normal text-left rtl:text-right text-gray-500 dark:text-gray-400", children: "Actions" })), _jsx("th", { className: "px-4 py-3.5 text-md font-normal text-left rtl:text-right text-gray-500 dark:text-gray-400", children: "Code" }), _jsx("th", { className: "px-4 py-3.5 text-md font-normal text-left rtl:text-right text-gray-500 dark:text-gray-400", children: "Value" })] }) }), _jsx("tbody", { className: "divide-y divide-gray-200", children: similarTaxonomies.map((taxonomy, index) => (_jsxs("tr", { children: [similarTaxonomies.some((taxonomy) => taxonomy.isEdit) && (_jsx("td", { className: "px-4 py-4 text-sm whitespace-nowrap", children: _jsxs("div", { className: "flex items-center gap-x-6", children: [_jsx("button", { type: "button", onClick: () => handleDeleteClick(taxonomy.id), className: "text-gray-500 transition-colors duration-200 dark:hover:text-red-600 dark:text-gray-300 hover:text-red-500 focus:outline-none", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", className: "w-5 h-5", children: _jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0" }) }) }), _jsx("button", { type: "button", onClick: () => {
264
350
  handleEditClick(index, taxonomy.id);
@@ -5,7 +5,9 @@ export { default as Privacy } from "./footer/Privacy";
5
5
  export { default as Login } from "./login/Login";
6
6
  export { default as Header } from "./login/Header";
7
7
  export { default as Users } from "./admin/Users";
8
+ export { default as UserForm } from "./admin/Users";
8
9
  export { default as Taxionomies } from "./admin/Taxionomies";
10
+ export { default as TaxonomyForm } from "./admin/Taxionomies";
9
11
  export { default as AdminSideBar } from "./admin/Sidebar";
10
12
  export { default as Dashboard } from "./admin/Dashboard";
11
13
  export { registerApi, loginApi } from "./api/api";
@@ -6,7 +6,9 @@ export { default as Privacy } from "./footer/Privacy";
6
6
  export { default as Login } from "./login/Login";
7
7
  export { default as Header } from "./login/Header";
8
8
  export { default as Users } from "./admin/Users";
9
+ export { default as UserForm } from "./admin/Users";
9
10
  export { default as Taxionomies } from "./admin/Taxionomies";
11
+ export { default as TaxonomyForm } from "./admin/Taxionomies";
10
12
  export { default as AdminSideBar } from "./admin/Sidebar";
11
13
  export { default as Dashboard } from "./admin/Dashboard";
12
14
  export { registerApi, loginApi } from "./api/api";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eleven-solutions-common-website-unique-web",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "main": "./dist/index.js",
5
5
  "scripts": {
6
6
  "build": "tsc",
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import { useState, useEffect } from "react";
3
- import { useLocation } from "react-router-dom";
4
3
  import {
5
4
  addTaxonomyApi,
6
5
  fetchTaxonomyByIdApi,
@@ -55,16 +54,117 @@ const TaxonomyForm = () => {
55
54
  return true;
56
55
  };
57
56
 
58
- const location = useLocation();
57
+ // const location = useLocation();
59
58
  // const navigate = useNavigate();
60
59
 
61
60
  // const { id } = location.state || {};
62
- const getIdFromUrl = () => {
63
- const params = new URLSearchParams(window.location.search);
64
- return params.get("id") || "";
65
- };
66
- const [id, setId] = useState<string>(getIdFromUrl());
67
61
 
62
+ // useEffect(() => {
63
+ // if (id) {
64
+ // const fetchTaxonomyData = async () => {
65
+ // try {
66
+ // const fetchedTaxonomy = await fetchTaxonomyByIdApi(id);
67
+ // if (fetchedTaxonomy) {
68
+ // const taxonomy = fetchedTaxonomy as {
69
+ // type: string;
70
+ // code: string | number;
71
+ // value: string;
72
+ // };
73
+ // setIsEditMode(true);
74
+ // setType(taxonomy.type);
75
+ // setCode(taxonomy.code);
76
+ // setValue(taxonomy.value);
77
+ // }
78
+ // } catch (error) {
79
+ // console.error("Unable to fetch taxonomy data", error);
80
+ // }
81
+ // };
82
+ // fetchTaxonomyData();
83
+ // }
84
+ // }, [id]);
85
+
86
+ // useEffect(() => {
87
+ // const handleFetchSimilarTaxonomies = async () => {
88
+ // try {
89
+ // const response = await fetchTaxonomiessApi();
90
+ // // const filteredTaxonomies = response.filter(
91
+ // const filteredTaxonomies = (response as { type: string }[]).filter(
92
+ // (taxonomy: { type: string }) => taxonomy.type === type
93
+ // );
94
+ // setSimilarTaxonomies(filteredTaxonomies);
95
+ // } catch (error) {
96
+ // console.error("Error fetching similar taxonomies", error);
97
+ // }
98
+ // };
99
+
100
+ // if (type) {
101
+ // handleFetchSimilarTaxonomies();
102
+ // }
103
+ // }, [type]);
104
+
105
+ // useEffect(() => {
106
+ // if (location.pathname === "/taxonomy/taxonomyform") {
107
+ // setIsSimilarTaxonomyOpen(true);
108
+ // }
109
+ // }, [location.pathname]);
110
+
111
+ // const handleSubmit = async (event: React.MouseEvent<HTMLButtonElement>) => {
112
+ // event.preventDefault();
113
+ // if (!validateForm()) return;
114
+
115
+ // try {
116
+ // if (isEditMode) {
117
+ // await addMultipleTaxonomiesApi(tempTaxonomy);
118
+ // setTempTaxonomy([]);
119
+ // alert("taxonomies added successfully");
120
+ // } else {
121
+ // await addTaxonomyApi(type, Number(code), value);
122
+ // alert("Taxonomy added successfully");
123
+ // }
124
+ // navigate("/admin/taxonomy");
125
+ // } catch (error) {
126
+ // console.error("Error adding/updating Taxonomy:", error);
127
+ // alert("Failed to add/update Taxonomy");
128
+ // }
129
+ // };
130
+
131
+ // const handleSave = async (event: React.MouseEvent<HTMLButtonElement>) => {
132
+ // event.preventDefault();
133
+ // if (!validateForm()) return;
134
+
135
+ // try {
136
+ // if (isEditMode) {
137
+ // await updateTaxonomyApi(id, type, Number(code), value);
138
+ // alert("Taxonomy updated successfully");
139
+ // } else {
140
+ // await addTaxonomyApi(type, Number(code), value);
141
+ // alert("Taxonomy added successfully");
142
+ // }
143
+ // navigate("/admin/taxonomy");
144
+ // } catch (error) {
145
+ // console.error("Error adding/updating Taxonomy:", error);
146
+ // alert("Failed to add/update Taxonomy");
147
+ // }
148
+ // };
149
+
150
+ // useEffect(() => {
151
+ // const fetchIsMultiple = async () => {
152
+ // try {
153
+ // const result = await isMultipleApi(type);
154
+ // setIsMultiple(typeof result === "boolean");
155
+ // } catch (error) {
156
+ // console.error("Error checking if taxonomy is multiple:", error);
157
+ // }
158
+ // };
159
+
160
+ // fetchIsMultiple();
161
+ // }, [location.pathname, type]);
162
+
163
+ // Extract the id from the URL query parameters
164
+ const queryParams = new URLSearchParams(window.location.search);
165
+ const id = queryParams.get("id");
166
+
167
+ // Fetch taxonomy data if id exists
68
168
  useEffect(() => {
69
169
  if (id) {
70
170
  const fetchTaxonomyData = async () => {
@@ -89,11 +189,11 @@ const TaxonomyForm = () => {
89
189
  }
90
190
  }, [id]);
91
191
 
192
+ // Fetch similar taxonomies based on the type
92
193
  useEffect(() => {
93
194
  const handleFetchSimilarTaxonomies = async () => {
94
195
  try {
95
196
  const response = await fetchTaxonomiessApi();
96
- // const filteredTaxonomies = response.filter(
97
197
  const filteredTaxonomies = (response as { type: string }[]).filter(
98
198
  (taxonomy: { type: string }) => taxonomy.type === type
99
199
  );
@@ -108,12 +208,14 @@ const TaxonomyForm = () => {
108
208
  }
109
209
  }, [type]);
110
210
 
211
+ // Check if the current pathname matches "/taxonomy/taxonomyform"
111
212
  useEffect(() => {
112
- if (location.pathname === "/taxonomy/taxonomyform") {
213
+ if (window.location.pathname === "/taxonomy/taxonomyform") {
113
214
  setIsSimilarTaxonomyOpen(true);
114
215
  }
115
- }, [location.pathname]);
216
+ }, []);
116
217
 
218
+ // Handle form submission
117
219
  const handleSubmit = async (event: React.MouseEvent<HTMLButtonElement>) => {
118
220
  event.preventDefault();
119
221
  if (!validateForm()) return;
@@ -122,26 +224,19 @@ const TaxonomyForm = () => {
122
224
  if (isEditMode) {
123
225
  await addMultipleTaxonomiesApi(tempTaxonomy);
124
226
  setTempTaxonomy([]);
125
- alert("taxonomies added successfully");
227
+ alert("Taxonomies added successfully");
126
228
  } else {
127
229
  await addTaxonomyApi(type, Number(code), value);
128
230
  alert("Taxonomy added successfully");
129
231
  }
130
- // navigate("/admin/taxonomy");
131
-
132
- const link = document.createElement("a");
133
- link.href = "/admin/taxonomy";
134
- link.onclick = (e) => {
135
- e.preventDefault();
136
- window.history.pushState({}, "", "/admin/taxonomy");
137
- };
138
- link.click();
232
+ window.location.href = "/admin/taxonomy";
139
233
  } catch (error) {
140
234
  console.error("Error adding/updating Taxonomy:", error);
141
235
  alert("Failed to add/update Taxonomy");
142
236
  }
143
237
  };
144
238
 
239
+ // Handle save operation
145
240
  const handleSave = async (event: React.MouseEvent<HTMLButtonElement>) => {
146
241
  event.preventDefault();
147
242
  if (!validateForm()) return;
@@ -154,20 +249,14 @@ const TaxonomyForm = () => {
154
249
  await addTaxonomyApi(type, Number(code), value);
155
250
  alert("Taxonomy added successfully");
156
251
  }
157
- // navigate("/admin/taxonomy");
158
- const link = document.createElement("a");
159
- link.href = "/admin/taxonomy";
160
- link.onclick = (e) => {
161
- e.preventDefault();
162
- window.history.pushState({}, "", "/admin/taxonomy");
163
- };
164
- link.click();
252
+ window.location.href = "/admin/taxonomy"; // Navigate to the taxonomy page
165
253
  } catch (error) {
166
254
  console.error("Error adding/updating Taxonomy:", error);
167
255
  alert("Failed to add/update Taxonomy");
168
256
  }
169
257
  };
170
258
 
259
+ // Fetch "isMultiple" property based on the taxonomy type
171
260
  useEffect(() => {
172
261
  const fetchIsMultiple = async () => {
173
262
  try {
@@ -179,20 +268,20 @@ const TaxonomyForm = () => {
179
268
  };
180
269
 
181
270
  fetchIsMultiple();
182
- }, [location.pathname, type]);
271
+ }, [type]);
272
+
273
+ // const handleCancelClick = () => {
274
+ // setType("");
275
+ // setCode("");
276
+ // setValue("");
277
+ // navigate("/admin/taxonomy");
278
+ // };
183
279
 
184
280
  const handleCancelClick = () => {
185
281
  setType("");
186
282
  setCode("");
187
283
  setValue("");
188
- // navigate("/admin/taxonomy");
189
- const link = document.createElement("a");
190
- link.href = "/admin/taxonomy";
191
- link.onclick = (e) => {
192
- e.preventDefault(); // prevent the default behavior of the anchor tag
193
- window.history.pushState({}, "", "/admin/taxonomy");
194
- };
195
- link.click();
284
+ window.location.href = "/admin/taxonomy";
196
285
  };
197
286
 
198
287
  const handleOpenModal = () => {
@@ -375,20 +464,27 @@ const TaxonomyForm = () => {
375
464
  <div className="flex space-x-4 mt-6 justify-between">
376
465
  <div>
377
466
  {isEditMode && (
467
+ // <div>
468
+ // {similarTaxonomies.some((taxonomy) => taxonomy.isEdit) && (
469
+ // <button
470
+ // type="button"
471
+ // onClick={() => {
472
+ // handleDeleteClick(id);
473
+ // navigate("/admin/taxonomy");
474
+ // }}
475
+ // className="px-8 py-2.5 leading-5 text-white transition-colors duration-300 transform bg-blue-600 rounded-md hover:bg-blue-500 focus:outline-none focus:bg-gray-600"
476
+ // >
477
+ // Delete
478
+ // </button>
479
+ // )}
480
+ // </div>
378
481
  <div>
379
482
  {similarTaxonomies.some((taxonomy) => taxonomy.isEdit) && (
380
483
  <button
381
484
  type="button"
382
485
  onClick={() => {
383
486
  handleDeleteClick(id);
384
- // navigate("/admin/taxonomy");
385
- const link = document.createElement("a");
386
- link.href = "/admin/taxonomy";
387
- link.onclick = (e) => {
388
- e.preventDefault();
389
- window.history.pushState({}, "", "/admin/taxonomy");
390
- };
391
- link.click();
487
+ window.location.href = "/admin/taxonomy";
392
488
  }}
393
489
  className="px-8 py-2.5 leading-5 text-white transition-colors duration-300 transform bg-blue-600 rounded-md hover:bg-blue-500 focus:outline-none focus:bg-gray-600"
394
490
  >
@@ -6,7 +6,9 @@ export { default as Privacy } from "./footer/Privacy";
6
6
  export { default as Login } from "./login/Login";
7
7
  export { default as Header } from "./login/Header";
8
8
  export { default as Users } from "./admin/Users";
9
+ export { default as UserForm } from "./admin/Users";
9
10
  export { default as Taxionomies } from "./admin/Taxionomies";
11
+ export { default as TaxonomyForm } from "./admin/Taxionomies";
10
12
  export { default as AdminSideBar } from "./admin/Sidebar";
11
13
  export { default as Dashboard } from "./admin/Dashboard";
12
14
  export { registerApi, loginApi } from "./api/api";