diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/ConstituentaToolbar.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/ConstituentaToolbar.tsx index 82b9ecf9..d8daa11c 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/ConstituentaToolbar.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/ConstituentaToolbar.tsx @@ -1,6 +1,3 @@ -'use client'; - -import { useMemo } from 'react'; import { BiDownvote, BiDuplicate, BiPlusCircle, BiReset, BiTrash, BiUpvote } from 'react-icons/bi'; import { FiSave } from 'react-icons/fi'; @@ -9,8 +6,8 @@ import Overlay from '@/components/ui/Overlay'; import { messages, prepareTooltip } from '@/utils/labels'; interface ConstituentaToolbarProps { - isMutable: boolean; - isModified: boolean; + disabled: boolean; + modified: boolean; onSubmit: () => void; onReset: () => void; @@ -23,8 +20,8 @@ interface ConstituentaToolbarProps { } function ConstituentaToolbar({ - isMutable, - isModified, + disabled, + modified, onSubmit, onReset, onMoveUp, @@ -33,49 +30,48 @@ function ConstituentaToolbar({ onClone, onCreate }: ConstituentaToolbarProps) { - const canSave = useMemo(() => isModified && isMutable, [isModified, isMutable]); return ( } + disabled={disabled || !modified} onClick={onSubmit} /> } + disabled={disabled || !modified} + onClick={onReset} /> } + disabled={disabled} + onClick={onCreate} /> } + disabled={disabled || modified} + onClick={onClone} /> } /> } - disabled={!isMutable} + disabled={disabled || modified} onClick={onMoveUp} /> } - disabled={!isMutable} + disabled={disabled || modified} onClick={onMoveDown} /> diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/ControlsOverlay.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/ControlsOverlay.tsx index 7837a25f..ff85de58 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/ControlsOverlay.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/ControlsOverlay.tsx @@ -8,33 +8,26 @@ import { messages } from '@/utils/labels'; interface ControlsOverlayProps { constituenta?: IConstituenta; - isMutable: boolean; - isModified: boolean; + disabled: boolean; + modified: boolean; processing: boolean; onRename: () => void; onEditTerm: () => void; } -function ControlsOverlay({ - constituenta, - isMutable, - isModified, - processing, - onRename, - onEditTerm -}: ControlsOverlayProps) { +function ControlsOverlay({ constituenta, disabled, modified, processing, onRename, onEditTerm }: ControlsOverlayProps) { return ( - {isMutable || processing ? ( + {!disabled || processing ? ( } - disabled={isModified} + disabled={modified} /> ) : null}
Имя {constituenta?.alias ?? ''}
- {isMutable || processing ? ( + {!disabled || processing ? ( } - disabled={isModified} + disabled={modified} /> ) : null}
diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/EditorConstituenta.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/EditorConstituenta.tsx index 142ed22a..505df0e0 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/EditorConstituenta.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/EditorConstituenta/EditorConstituenta.tsx @@ -35,8 +35,8 @@ function EditorConstituenta({ activeCst, isModified, setIsModified, onOpenEdit } const [toggleReset, setToggleReset] = useState(false); const disabled = useMemo( - () => !activeCst || !controller.isContentEditable, - [activeCst, controller.isContentEditable] + () => !activeCst || !controller.isContentEditable || controller.isProcessing, + [activeCst, controller.isContentEditable, controller.isProcessing] ); const isNarrow = useMemo(() => !!windowSize.width && windowSize.width <= SIDELIST_LAYOUT_THRESHOLD, [windowSize]); @@ -79,10 +79,10 @@ function EditorConstituenta({ activeCst, isModified, setIsModified, onOpenEdit } return ( <> - {controller.isContentEditable || controller.isProcessing ? ( + {controller.isContentEditable ? ( setTerm(newValue)} />