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
@@ -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
|
) && (
|