Improve icons

This commit is contained in:
Ivan 2024-07-28 01:30:00 +03:00
parent f67e304a79
commit c7da60325c
2 changed files with 21 additions and 5 deletions

View File

@ -105,6 +105,8 @@ export { FaSortAmountDownAlt as IconSortList } from 'react-icons/fa';
export { LuNetwork as IconGenerateStructure } from 'react-icons/lu'; export { LuNetwork as IconGenerateStructure } from 'react-icons/lu';
export { LuBookCopy as IconInlineSynthesis } from 'react-icons/lu'; export { LuBookCopy as IconInlineSynthesis } from 'react-icons/lu';
export { LuWand2 as IconGenerateNames } from 'react-icons/lu'; export { LuWand2 as IconGenerateNames } from 'react-icons/lu';
export { GrConnect as IconConnect } from 'react-icons/gr';
export { BsPlay as IconExecute } from 'react-icons/bs';
// ======== Graph UI ======= // ======== Graph UI =======
export { BiCollapse as IconGraphCollapse } from 'react-icons/bi'; export { BiCollapse as IconGraphCollapse } from 'react-icons/bi';

View File

@ -3,7 +3,7 @@
import { useCallback, useEffect, useRef, useState } from 'react'; import { useCallback, useEffect, useRef, useState } from 'react';
import { toast } from 'react-toastify'; import { toast } from 'react-toastify';
import { IconDestroy, IconEdit2, IconNewItem, IconRSForm } from '@/components/Icons'; import { IconConnect, IconDestroy, IconEdit2, IconExecute, IconNewItem, IconRSForm } from '@/components/Icons';
import Dropdown from '@/components/ui/Dropdown'; import Dropdown from '@/components/ui/Dropdown';
import DropdownButton from '@/components/ui/DropdownButton'; import DropdownButton from '@/components/ui/DropdownButton';
import useClickedOutside from '@/hooks/useClickedOutside'; import useClickedOutside from '@/hooks/useClickedOutside';
@ -63,11 +63,16 @@ function NodeContextMenu({ operation, cursorX, cursorY, onHide, onDelete, onCrea
onCreateInput(operation.id); onCreateInput(operation.id);
}; };
const handleRunSynthesis = () => {
toast.error('Not implemented');
handleHide();
};
return ( return (
<div ref={ref} className='absolute' style={{ top: cursorY, left: cursorX, width: 10, height: 10 }}> <div ref={ref} className='absolute' style={{ top: cursorY, left: cursorX, width: 10, height: 10 }}>
<Dropdown isOpen={isOpen} stretchLeft={cursorX >= window.innerWidth - PARAMETER.ossContextMenuWidth}> <Dropdown isOpen={isOpen} stretchLeft={cursorX >= window.innerWidth - PARAMETER.ossContextMenuWidth}>
<DropdownButton <DropdownButton
text='Свойства операции' text='Редактировать'
titleHtml={prepareTooltip('Редактировать операцию', 'Ctrl + клик')} titleHtml={prepareTooltip('Редактировать операцию', 'Ctrl + клик')}
icon={<IconEdit2 size='1rem' className='icon-primary' />} icon={<IconEdit2 size='1rem' className='icon-primary' />}
disabled={controller.isProcessing} disabled={controller.isProcessing}
@ -92,15 +97,24 @@ function NodeContextMenu({ operation, cursorX, cursorY, onHide, onDelete, onCrea
onClick={handleCreateSchema} onClick={handleCreateSchema}
/> />
) : null} ) : null}
{controller.isMutable && operation.operation_type === OperationType.INPUT ? ( {controller.isMutable && !operation.result && operation.operation_type === OperationType.INPUT ? (
<DropdownButton <DropdownButton
text='Привязать схему' text='Загрузить схему'
title='Выбрать схему для загрузки' title='Выбрать схему для загрузки'
icon={<IconRSForm size='1rem' className='icon-primary' />} icon={<IconConnect size='1rem' className='icon-primary' />}
disabled={controller.isProcessing} disabled={controller.isProcessing}
onClick={handleEditSchema} onClick={handleEditSchema}
/> />
) : null} ) : null}
{controller.isMutable && !operation.result && operation.operation_type === OperationType.SYNTHESIS ? (
<DropdownButton
text='Выполнить синтез'
title='Выполнить операцию и получить синтезированную КС'
icon={<IconExecute size='1rem' className='icon-green' />}
disabled={controller.isProcessing}
onClick={handleRunSynthesis}
/>
) : null}
<DropdownButton <DropdownButton
text='Удалить операцию' text='Удалить операцию'