eleven-solutions-common-website-unique-web 6.0.12 → 6.0.14

Sign up to get free protection for your applications and to get access to all the features.
@@ -27,7 +27,10 @@ const TaxonomyForm = () => {
27
27
  const [tempTaxonomy, setTempTaxonomy] = useState([]);
28
28
  const [similarTaxonomies, setSimilarTaxonomies] = useState([]);
29
29
  const [isSimilarTaxonomyOpen, setIsSimilarTaxonomyOpen] = useState(true);
30
+ //for child taxonomies
31
+ // nested table
30
32
  const [allTaxonomies, setAllTaxonomies] = useState([]);
33
+ const [expandedRows, setExpandedRows] = useState([]);
31
34
  useEffect(() => {
32
35
  const fetchAllTaxonomies = () => __awaiter(void 0, void 0, void 0, function* () {
33
36
  try {
@@ -42,6 +45,10 @@ const TaxonomyForm = () => {
42
45
  });
43
46
  fetchAllTaxonomies();
44
47
  }, []);
48
+ // Fetch child taxonomies for a parentId
49
+ const getChildTaxonomies = (parentId) => {
50
+ return allTaxonomies.filter((taxonomy) => taxonomy.parentId === parentId);
51
+ };
45
52
  const [editTaxonomyItem, setEditTaxonomyItem] = useState(null);
46
53
  const [editTempTaxonomyItem, setEditTempTaxonomyItem] = useState(null);
47
54
  const [selectedTaxonomyId, setSelectedTaxonomyId] = useState("");
@@ -274,7 +281,6 @@ const TaxonomyForm = () => {
274
281
  window.location.href = "/admin/taxinomies";
275
282
  }, 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) &&
276
283
  !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) => {
277
- const isParent = similarTaxonomies.some((t) => t.parentId === taxonomy.id);
278
284
  return (_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", strokeWidth: "1.5", stroke: "currentColor", className: "w-5 h-5", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "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: () => handleEditClick(index, taxonomy.id), className: "text-gray-500 transition-colors duration-200 dark:hover:text-yellow-500 dark:text-gray-300 hover:text-yellow-500 focus:outline-none", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "1.5", stroke: "currentColor", className: "w-5 h-5", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L10.582 16.07a4.5 4.5 0 01-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 011.13-1.897l8.932-8.931zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0115.75 21H5.25A2.25 2.25 0 013 18.75V8.25A2.25 2.25 0 015.25 6H10" }) }) }), _jsx("button", { type: "button", onClick: () => handleAddSubType(index, taxonomy.id), className: "text-gray-500 transition-colors duration-200 dark:hover:text-blue-500 dark:text-gray-300 hover:text-blue-500 focus:outline-none", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "1.5", stroke: "currentColor", className: "w-5 h-5", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 4.5v15m7.5-7.5h-15" }) }) })] }) })), _jsx("td", { className: "px-4 py-4 text-sm text-gray-500 dark:text-gray-400", children: taxonomy.code }), _jsx("td", { className: "px-4 py-4 text-sm font-medium text-gray-900 dark:text-white", children: _jsxs("div", { className: "flex justify-between items-center", children: [_jsx("span", { children: taxonomy.value }), allTaxonomies.some((item) => item.parentId === taxonomy.id) && (_jsx("button", { type: "button", className: "text-gray-500 transition-colors duration-200 dark:hover:text-blue-600 dark:text-gray-300 hover:text-blue-500 focus:outline-none", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "1.5", stroke: "currentColor", className: "w-5 h-5", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M19.5 8.25l-7.5 7.5-7.5-7.5" }) }) }))] }) })] }, index));
279
285
  }) })] }) }), similarTaxonomies.some((taxonomy) => taxonomy.isEdit) && (_jsx("div", { className: "flex space-x-4 mt-6 justify-start", children: _jsxs("button", { type: "button", onClick: handleOpenModal, className: "flex items-center justify-center px-6 py-2 font-medium tracking-wide text-white capitalize transition-colors duration-300 transform bg-blue-600 rounded-lg hover:bg-blue-500 focus:outline-none focus:ring focus:ring-blue-300 focus:ring-opacity-80", children: [_jsx(FaPlus, { className: "mr-2 font-medium" }), "Add Multiple Values"] }) }))] })), isEditMode && (_jsx(_Fragment, { children: tempTaxonomy.length > 0 && (_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: [_jsx("th", { scope: "col", className: "px-4 py-3.5 text-md font-normal text-left rtl:text-right text-gray-500 dark:text-gray-400", children: "Edit/Delete" }), _jsx("th", { scope: "col", className: "px-4 py-3.5 text-md font-normal text-left text-gray-500 dark:text-gray-400", children: "Code" }), _jsx("th", { scope: "col", className: "px-4 py-3.5 text-md font-normal text-left text-gray-500 dark:text-gray-400", children: "Value" })] }) }), _jsx("tbody", { className: "bg-white divide-y divide-gray-200 dark:bg-gray-800 dark:divide-gray-700", children: [...tempTaxonomy].map((item, index) => (_jsxs("tr", { children: [_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: () => {
280
286
  const newTempTaxonomy = [...tempTaxonomy];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eleven-solutions-common-website-unique-web",
3
- "version": "6.0.12",
3
+ "version": "6.0.14",
4
4
  "main": "./dist/index.js",
5
5
  "scripts": {
6
6
  "build": "tsc",
@@ -36,7 +36,10 @@ const TaxonomyForm = () => {
36
36
  const [similarTaxonomies, setSimilarTaxonomies] = useState<any[]>([]);
37
37
  const [isSimilarTaxonomyOpen, setIsSimilarTaxonomyOpen] = useState(true);
38
38
 
39
+ //for child taxonomies
40
+ // nested table
39
41
  const [allTaxonomies, setAllTaxonomies] = useState<any[]>([]);
42
+ const [expandedRows, setExpandedRows] = useState<number[]>([]);
40
43
 
41
44
  useEffect(() => {
42
45
  const fetchAllTaxonomies = async () => {
@@ -53,6 +56,11 @@ const TaxonomyForm = () => {
53
56
  fetchAllTaxonomies();
54
57
  }, []);
55
58
 
59
+ // Fetch child taxonomies for a parentId
60
+ const getChildTaxonomies = (parentId: number) => {
61
+ return allTaxonomies.filter((taxonomy) => taxonomy.parentId === parentId);
62
+ };
63
+
56
64
  const [editTaxonomyItem, setEditTaxonomyItem] = useState<{
57
65
  id: string;
58
66
  type: string;
@@ -478,119 +486,7 @@ const TaxonomyForm = () => {
478
486
  </tr>
479
487
  </thead>
480
488
  <tbody className="divide-y divide-gray-200">
481
- {/* {similarTaxonomies.map((taxonomy, index) => (
482
- <tr key={index}>
483
- {similarTaxonomies.some(
484
- (taxonomy) => taxonomy.isEdit
485
- ) && (
486
- <td className="px-4 py-4 text-sm whitespace-nowrap">
487
- <div className="flex items-center gap-x-6">
488
- <button
489
- type="button"
490
- onClick={() => handleDeleteClick(taxonomy.id)}
491
- className="text-gray-500 transition-colors duration-200 dark:hover:text-red-600 dark:text-gray-300 hover:text-red-500 focus:outline-none"
492
- >
493
- <svg
494
- xmlns="http://www.w3.org/2000/svg"
495
- fill="none"
496
- viewBox="0 0 24 24"
497
- stroke-width="1.5"
498
- stroke="currentColor"
499
- className="w-5 h-5"
500
- >
501
- <path
502
- stroke-linecap="round"
503
- stroke-linejoin="round"
504
- 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"
505
- />
506
- </svg>
507
- </button>
508
-
509
- <button
510
- type="button"
511
- onClick={() => {
512
- handleEditClick(index, taxonomy.id);
513
- }}
514
- className="text-gray-500 transition-colors duration-200 dark:hover:text-yellow-500 dark:text-gray-300 hover:text-yellow-500 focus:outline-none"
515
- >
516
- <svg
517
- xmlns="http://www.w3.org/2000/svg"
518
- fill="none"
519
- viewBox="0 0 24 24"
520
- stroke-width="1.5"
521
- stroke="currentColor"
522
- className="w-5 h-5"
523
- >
524
- <path
525
- stroke-linecap="round"
526
- stroke-linejoin="round"
527
- d="M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L10.582 16.07a4.5 4.5 0 01-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 011.13-1.897l8.932-8.931zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0115.75 21H5.25A2.25 2.25 0 013 18.75V8.25A2.25 2.25 0 015.25 6H10"
528
- />
529
- </svg>
530
- </button>
531
-
532
- <button
533
- type="button"
534
- onClick={() => {
535
- handleAddSubType(index, taxonomy.id);
536
- }}
537
- className="text-gray-500 transition-colors duration-200 dark:hover:text-blue-500 dark:text-gray-300 hover:text-blue-500 focus:outline-none"
538
- >
539
- <svg
540
- xmlns="http://www.w3.org/2000/svg"
541
- fill="none"
542
- viewBox="0 0 24 24"
543
- stroke-width="1.5"
544
- stroke="currentColor"
545
- className="w-5 h-5"
546
- >
547
- <path
548
- stroke-linecap="round"
549
- stroke-linejoin="round"
550
- d="M12 4.5v15m7.5-7.5h-15"
551
- />
552
- </svg>
553
- </button>
554
- </div>
555
- </td>
556
- )}
557
-
558
- <td className="px-4 py-4 text-sm text-gray-500 dark:text-gray-400">
559
- {taxonomy.code}
560
- </td>
561
-
562
- <td className="px-4 py-4 text-sm font-medium text-gray-900 dark:text-white">
563
- <div className="flex justify-between items-center">
564
- <span>{taxonomy.value}</span>
565
-
566
- <button
567
- type="button"
568
- className="text-gray-500 transition-colors duration-200 dark:hover:text-blue-600 dark:text-gray-300 hover:text-blue-500 focus:outline-none"
569
- >
570
- <svg
571
- xmlns="http://www.w3.org/2000/svg"
572
- fill="none"
573
- viewBox="0 0 24 24"
574
- strokeWidth="1.5"
575
- stroke="currentColor"
576
- className="w-5 h-5"
577
- >
578
- <path
579
- strokeLinecap="round"
580
- strokeLinejoin="round"
581
- d="M19.5 8.25l-7.5 7.5-7.5-7.5"
582
- />
583
- </svg>
584
- </button>
585
- </div>
586
- </td>
587
- </tr>
588
- ))} */}
589
-
590
489
  {similarTaxonomies.map((taxonomy, index) => {
591
- const isParent = similarTaxonomies.some(
592
- (t) => t.parentId === taxonomy.id
593
- );
594
490
  return (
595
491
  <tr key={index}>
596
492
  {similarTaxonomies.some(
@@ -676,7 +572,6 @@ const TaxonomyForm = () => {
676
572
  <div className="flex justify-between items-center">
677
573
  <span>{taxonomy.value}</span>
678
574
 
679
- {/* {isParent && ( */}
680
575
  {allTaxonomies.some(
681
576
  (item) => item.parentId === taxonomy.id
682
577
  ) && (