M: Disable move buttons when all selected
This commit is contained in:
parent
1650e81751
commit
581e7caf9c
|
@ -112,13 +112,13 @@ function ToolbarConstituenta({
|
||||||
<MiniButton
|
<MiniButton
|
||||||
titleHtml={prepareTooltip('Переместить вверх', 'Alt + вверх')}
|
titleHtml={prepareTooltip('Переместить вверх', 'Alt + вверх')}
|
||||||
icon={<IconMoveUp size='1.25rem' className='icon-primary' />}
|
icon={<IconMoveUp size='1.25rem' className='icon-primary' />}
|
||||||
disabled={disabled || modified}
|
disabled={disabled || modified || (controller.schema && controller.schema?.items.length < 2)}
|
||||||
onClick={controller.moveUp}
|
onClick={controller.moveUp}
|
||||||
/>
|
/>
|
||||||
<MiniButton
|
<MiniButton
|
||||||
titleHtml={prepareTooltip('Переместить вниз', 'Alt + вниз')}
|
titleHtml={prepareTooltip('Переместить вниз', 'Alt + вниз')}
|
||||||
icon={<IconMoveDown size='1.25rem' className='icon-primary' />}
|
icon={<IconMoveDown size='1.25rem' className='icon-primary' />}
|
||||||
disabled={disabled || modified}
|
disabled={disabled || modified || (controller.schema && controller.schema?.items.length < 2)}
|
||||||
onClick={controller.moveDown}
|
onClick={controller.moveDown}
|
||||||
/>
|
/>
|
||||||
</>
|
</>
|
||||||
|
|
|
@ -46,13 +46,21 @@ function ToolbarRSList() {
|
||||||
<MiniButton
|
<MiniButton
|
||||||
titleHtml={prepareTooltip('Переместить вверх', 'Alt + вверх')}
|
titleHtml={prepareTooltip('Переместить вверх', 'Alt + вверх')}
|
||||||
icon={<IconMoveUp size='1.25rem' className='icon-primary' />}
|
icon={<IconMoveUp size='1.25rem' className='icon-primary' />}
|
||||||
disabled={controller.isProcessing || controller.nothingSelected}
|
disabled={
|
||||||
|
controller.isProcessing ||
|
||||||
|
controller.selected.length === 0 ||
|
||||||
|
(controller.schema && controller.selected.length === controller.schema.items.length)
|
||||||
|
}
|
||||||
onClick={controller.moveUp}
|
onClick={controller.moveUp}
|
||||||
/>
|
/>
|
||||||
<MiniButton
|
<MiniButton
|
||||||
titleHtml={prepareTooltip('Переместить вниз', 'Alt + вниз')}
|
titleHtml={prepareTooltip('Переместить вниз', 'Alt + вниз')}
|
||||||
icon={<IconMoveDown size='1.25rem' className='icon-primary' />}
|
icon={<IconMoveDown size='1.25rem' className='icon-primary' />}
|
||||||
disabled={controller.isProcessing || controller.nothingSelected}
|
disabled={
|
||||||
|
controller.isProcessing ||
|
||||||
|
controller.selected.length === 0 ||
|
||||||
|
(controller.schema && controller.selected.length === controller.schema.items.length)
|
||||||
|
}
|
||||||
onClick={controller.moveDown}
|
onClick={controller.moveDown}
|
||||||
/>
|
/>
|
||||||
<div ref={insertMenu.ref}>
|
<div ref={insertMenu.ref}>
|
||||||
|
|
|
@ -137,7 +137,7 @@ function EditorTermGraph({ onOpenEdit }: EditorTermGraphProps) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const definition = controller.selected.map(id => controller.schema!.cstByID.get(id)!.alias).join(' ');
|
const definition = controller.selected.map(id => controller.schema!.cstByID.get(id)!.alias).join(' ');
|
||||||
controller.createCst(controller.nothingSelected ? CstType.BASE : CstType.TERM, false, definition);
|
controller.createCst(controller.selected.length === 0 ? CstType.BASE : CstType.TERM, false, definition);
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleDeleteCst() {
|
function handleDeleteCst() {
|
||||||
|
|
|
@ -65,7 +65,6 @@ export interface IRSEditContext extends ILibraryItemEditor {
|
||||||
isProcessing: boolean;
|
isProcessing: boolean;
|
||||||
isAttachedToOSS: boolean;
|
isAttachedToOSS: boolean;
|
||||||
canProduceStructure: boolean;
|
canProduceStructure: boolean;
|
||||||
nothingSelected: boolean;
|
|
||||||
canDeleteSelected: boolean;
|
canDeleteSelected: boolean;
|
||||||
|
|
||||||
updateSchema: (data: ILibraryUpdateData) => void;
|
updateSchema: (data: ILibraryUpdateData) => void;
|
||||||
|
@ -148,10 +147,9 @@ export const RSEditState = ({
|
||||||
[accessLevel, model.schema?.read_only]
|
[accessLevel, model.schema?.read_only]
|
||||||
);
|
);
|
||||||
const isContentEditable = useMemo(() => isMutable && !model.isArchive, [isMutable, model.isArchive]);
|
const isContentEditable = useMemo(() => isMutable && !model.isArchive, [isMutable, model.isArchive]);
|
||||||
const nothingSelected = useMemo(() => selected.length === 0, [selected]);
|
|
||||||
const canDeleteSelected = useMemo(
|
const canDeleteSelected = useMemo(
|
||||||
() => !nothingSelected && selected.every(id => !model.schema?.cstByID.get(id)?.is_inherited),
|
() => selected.length > 0 && selected.every(id => !model.schema?.cstByID.get(id)?.is_inherited),
|
||||||
[selected, nothingSelected, model.schema]
|
[selected, model.schema]
|
||||||
);
|
);
|
||||||
const isAttachedToOSS = useMemo(
|
const isAttachedToOSS = useMemo(
|
||||||
() =>
|
() =>
|
||||||
|
@ -625,7 +623,6 @@ export const RSEditState = ({
|
||||||
isProcessing: model.processing,
|
isProcessing: model.processing,
|
||||||
isAttachedToOSS,
|
isAttachedToOSS,
|
||||||
canProduceStructure,
|
canProduceStructure,
|
||||||
nothingSelected,
|
|
||||||
canDeleteSelected,
|
canDeleteSelected,
|
||||||
|
|
||||||
setOwner,
|
setOwner,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user