From 8020561da6815f1597b4dc95617f92acee2ccccb Mon Sep 17 00:00:00 2001 From: AlexSserb Date: Sun, 2 Nov 2025 12:39:08 +0400 Subject: [PATCH] fix: showing only unused attributes in the left part of module editor --- .../AttributeTableActions.tsx | 42 ++++--------------- .../AttributesTable/AttributesTable.tsx | 10 ++++- 2 files changed, 16 insertions(+), 36 deletions(-) diff --git a/src/app/module-editor/[moduleId]/components/shared/AttributeTableActions/AttributeTableActions.tsx b/src/app/module-editor/[moduleId]/components/shared/AttributeTableActions/AttributeTableActions.tsx index 53a466d..c236c1d 100644 --- a/src/app/module-editor/[moduleId]/components/shared/AttributeTableActions/AttributeTableActions.tsx +++ b/src/app/module-editor/[moduleId]/components/shared/AttributeTableActions/AttributeTableActions.tsx @@ -1,10 +1,5 @@ -import { FC, useCallback, useMemo } from "react"; -import { - IconArrowRight, - IconEdit, - IconTrash, - IconX, -} from "@tabler/icons-react"; +import { FC } from "react"; +import { IconArrowRight, IconEdit, IconTrash } from "@tabler/icons-react"; import { Center, Flex } from "@mantine/core"; import { useModuleEditorContext } from "@/app/module-editor/[moduleId]/contexts/ModuleEditorContext"; import ActionIconWithTip from "@/components/ui/ActionIconWithTip/ActionIconWithTip"; @@ -15,22 +10,7 @@ type Props = { }; const AttributeTableActions: FC = ({ attribute }) => { - const { attributeActions, module } = useModuleEditorContext(); - const usedAttributeIds = useMemo( - () => new Set(module?.attributes.map(a => a.id)), - [module] - ); - - const toggleAttributeInModule = useCallback( - (attribute: AttributeSchema) => { - if (usedAttributeIds.has(attribute.id)) { - attributeActions.removeAttributeFromModule(attribute); - } else { - attributeActions.addAttributeToModule(attribute); - } - }, - [usedAttributeIds] - ); + const { attributeActions } = useModuleEditorContext(); return (
@@ -48,17 +28,11 @@ const AttributeTableActions: FC = ({ attribute }) => { toggleAttributeInModule(attribute)} - tipLabel={ - usedAttributeIds.has(attribute.id) - ? "Удалить из модуля" - : "Добавить в модуль" - }> - {usedAttributeIds.has(attribute.id) ? ( - - ) : ( - - )} + onClick={() => + attributeActions.addAttributeToModule(attribute) + } + tipLabel={"Добавить в модуль"}> +
diff --git a/src/app/module-editor/[moduleId]/components/shared/AttributesTable/AttributesTable.tsx b/src/app/module-editor/[moduleId]/components/shared/AttributesTable/AttributesTable.tsx index e833d5c..05d903d 100644 --- a/src/app/module-editor/[moduleId]/components/shared/AttributesTable/AttributesTable.tsx +++ b/src/app/module-editor/[moduleId]/components/shared/AttributesTable/AttributesTable.tsx @@ -1,10 +1,16 @@ +import { useMemo } from "react"; import { Box, Center, Text } from "@mantine/core"; import useAttributesTableColumns from "@/app/module-editor/[moduleId]/components/shared/AttributesTable/useAttributesTableColumns"; import { useModuleEditorContext } from "@/app/module-editor/[moduleId]/contexts/ModuleEditorContext"; import BaseTable from "@/components/ui/BaseTable/BaseTable"; const AttributesTable = () => { - const { attributes } = useModuleEditorContext(); + const { attributes, module } = useModuleEditorContext(); + const unusedAttributes = useMemo(() => { + const usedAttrIds = new Set(module?.attributes.map(a => a.id)); + return attributes.filter(a => !usedAttrIds.has(a.id)); + }, [module, attributes]); + const columns = useAttributesTableColumns(); if (attributes.length === 0) { @@ -22,7 +28,7 @@ const AttributesTable = () => {