From ff483645363a090e5e466bd81d9c32bc16265c3f Mon Sep 17 00:00:00 2001 From: IRBorisov <8611739+IRBorisov@users.noreply.github.com> Date: Thu, 2 May 2024 19:13:54 +0300 Subject: [PATCH] Refactor icons --- rsconcept/frontend/src/components/Icons.tsx | 21 ++++++++++ .../components/select/SubstitutionsPicker.tsx | 39 ++++++++++++------- .../ui/DataTable/PaginationTools.tsx | 10 ++--- .../components/ui/PDFViewer/PageControls.tsx | 10 ++--- .../EditorRSExpression/StatusIcon.tsx | 11 +++--- .../src/pages/RSFormPage/RSTabsMenu.tsx | 32 ++++++++------- 6 files changed, 78 insertions(+), 45 deletions(-) diff --git a/rsconcept/frontend/src/components/Icons.tsx b/rsconcept/frontend/src/components/Icons.tsx index 285f79aa..ccccbf21 100644 --- a/rsconcept/frontend/src/components/Icons.tsx +++ b/rsconcept/frontend/src/components/Icons.tsx @@ -1,6 +1,7 @@ // Search new icons at https://reactsvgicons.com/ // ==== General actions ======= +export { BiMenu as IconMenu } from 'react-icons/bi'; export { LuLogOut as IconLogout } from 'react-icons/lu'; export { FiSave as IconSave } from 'react-icons/fi'; export { BiCheck as IconAccept } from 'react-icons/bi'; @@ -8,6 +9,7 @@ export { BiX as IconRemove } from 'react-icons/bi'; export { BiTrash as IconDestroy } from 'react-icons/bi'; export { BiReset as IconReset } from 'react-icons/bi'; export { LiaEdit as IconEdit } from 'react-icons/lia'; +export { FiEdit as IconEdit2 } from 'react-icons/fi'; export { BiSearchAlt2 as IconSearch } from 'react-icons/bi'; export { BiDownload as IconDownload } from 'react-icons/bi'; export { BiUpload as IconUpload } from 'react-icons/bi'; @@ -15,6 +17,7 @@ export { BiCog as IconSettings } from 'react-icons/bi'; export { BiShareAlt as IconShare } from 'react-icons/bi'; export { BiFilterAlt as IconFilter } from 'react-icons/bi'; export { BiDownArrowCircle as IconOpenList } from 'react-icons/bi'; +export { LuAlertTriangle as IconAlert } from 'react-icons/lu'; // ===== UI elements ======= export { BiX as IconClose } from 'react-icons/bi'; @@ -30,6 +33,10 @@ export { RiPushpinFill as IconPin } from 'react-icons/ri'; export { RiUnpinLine as IconUnpin } from 'react-icons/ri'; export { BiCaretDown as IconSortDesc } from 'react-icons/bi'; export { BiCaretUp as IconSortAsc } from 'react-icons/bi'; +export { BiChevronLeft as IconPageLeft } from 'react-icons/bi'; +export { BiChevronRight as IconPageRight } from 'react-icons/bi'; +export { BiFirstPage as IconPageFirst } from 'react-icons/bi'; +export { BiLastPage as IconPageLast } from 'react-icons/bi'; // ==== User status ======= export { LuUserCircle2 as IconUser } from 'react-icons/lu'; @@ -40,7 +47,10 @@ export { TbMeteorOff as IconAdminOff } from 'react-icons/tb'; export { LuGlasses as IconReader } from 'react-icons/lu'; // ===== Domain entities ======= +export { VscLibrary as IconLibrary } from 'react-icons/vsc'; export { IoLibrary as IconLibrary2 } from 'react-icons/io5'; +export { BiDiamond as IconTemplates } from 'react-icons/bi'; +export { LuArchive as IconArchive } from 'react-icons/lu'; export { LuDatabase as IconDatabase } from 'react-icons/lu'; export { LuImage as IconImage } from 'react-icons/lu'; export { TbColumns as IconList } from 'react-icons/tb'; @@ -54,6 +64,14 @@ export { RiTreeLine as IconTree } from 'react-icons/ri'; export { FaRegKeyboard as IconControls } from 'react-icons/fa6'; export { BiCheckShield as IconImmutable } from 'react-icons/bi'; export { RiOpenSourceLine as IconPublic } from 'react-icons/ri'; +export { BiBug as IconStatusError } from 'react-icons/bi'; +export { BiCheckCircle as IconStatusOK } from 'react-icons/bi'; +export { BiHelpCircle as IconStatusUnknown } from 'react-icons/bi'; +export { BiPauseCircle as IconStatusIncalculable } from 'react-icons/bi'; +export { LuPower as IconKeepAliasOn } from 'react-icons/lu'; +export { LuPowerOff as IconKeepAliasOff } from 'react-icons/lu'; +export { LuFlag as IconKeepTermOn } from 'react-icons/lu'; +export { LuFlagOff as IconKeepTermOff } from 'react-icons/lu'; // ===== Domain actions ===== export { BiUpvote as IconMoveUp } from 'react-icons/bi'; @@ -67,6 +85,9 @@ export { BiPlusCircle as IconNewItem } from 'react-icons/bi'; export { FaSquarePlus as IconNewItem2 } from 'react-icons/fa6'; export { BiDuplicate as IconClone } from 'react-icons/bi'; export { LuReplace as IconReplace } from 'react-icons/lu'; +export { LuNetwork as IconGenerateStructure } from 'react-icons/lu'; +export { LuBookCopy as IconInlineSynthesis } from 'react-icons/lu'; +export { LuWand2 as IconGenerateNames } from 'react-icons/lu'; // ======== Graph UI ======= export { BiCollapse as IconGraphCollapse } from 'react-icons/bi'; diff --git a/rsconcept/frontend/src/components/select/SubstitutionsPicker.tsx b/rsconcept/frontend/src/components/select/SubstitutionsPicker.tsx index b2676fa6..4f5704ae 100644 --- a/rsconcept/frontend/src/components/select/SubstitutionsPicker.tsx +++ b/rsconcept/frontend/src/components/select/SubstitutionsPicker.tsx @@ -1,8 +1,6 @@ 'use client'; import { useCallback, useMemo, useState } from 'react'; -import { BiChevronLeft, BiChevronRight, BiFirstPage, BiLastPage } from 'react-icons/bi'; -import { LuFlag, LuFlagOff, LuPower, LuPowerOff } from 'react-icons/lu'; import ConstituentaBadge from '@/components/info/ConstituentaBadge'; import ConstituentaSelector from '@/components/select/ConstituentaSelector'; @@ -13,7 +11,18 @@ import { useConceptOptions } from '@/context/OptionsContext'; import { IConstituenta, IRSForm, ISubstitution } from '@/models/rsform'; import { describeConstituenta } from '@/utils/labels'; -import { IconRemove, IconReplace } from '../Icons'; +import { + IconKeepAliasOff, + IconKeepAliasOn, + IconKeepTermOff, + IconKeepTermOn, + IconPageFirst, + IconPageLast, + IconPageLeft, + IconPageRight, + IconRemove, + IconReplace +} from '../Icons'; interface SubstitutionsPickerProps { prefixID: string; @@ -31,15 +40,15 @@ interface SubstitutionsPickerProps { function SubstitutionIcon({ item }: { item: ISubstitution }) { if (item.deleteRight) { if (item.takeLeftTerm) { - return ; + return ; } else { - return ; + return ; } } else { if (item.takeLeftTerm) { - return ; + return ; } else { - return ; + return ; } } } @@ -165,9 +174,9 @@ function SubstitutionsPicker({ onClick={toggleDelete} icon={ deleteRight ? ( - + ) : ( - + ) } /> @@ -177,9 +186,9 @@ function SubstitutionsPicker({ onClick={toggleTerm} icon={ takeLeftTerm ? ( - + ) : ( - + ) } /> @@ -211,9 +220,9 @@ function SubstitutionsPicker({ onClick={toggleDelete} icon={ !deleteRight ? ( - + ) : ( - + ) } /> @@ -223,9 +232,9 @@ function SubstitutionsPicker({ onClick={toggleTerm} icon={ !takeLeftTerm ? ( - + ) : ( - + ) } /> diff --git a/rsconcept/frontend/src/components/ui/DataTable/PaginationTools.tsx b/rsconcept/frontend/src/components/ui/DataTable/PaginationTools.tsx index faa53ded..e5b19dd0 100644 --- a/rsconcept/frontend/src/components/ui/DataTable/PaginationTools.tsx +++ b/rsconcept/frontend/src/components/ui/DataTable/PaginationTools.tsx @@ -3,8 +3,8 @@ import { Table } from '@tanstack/react-table'; import clsx from 'clsx'; import { useCallback } from 'react'; -import { BiChevronLeft, BiChevronRight, BiFirstPage, BiLastPage } from 'react-icons/bi'; +import { IconPageFirst, IconPageLast, IconPageLeft, IconPageRight } from '@/components/Icons'; import { prefixes } from '@/utils/constants'; interface PaginationToolsProps { @@ -50,7 +50,7 @@ function PaginationTools({ onClick={() => table.setPageIndex(0)} disabled={!table.getCanPreviousPage()} > - + ({ onClick={() => table.previousPage()} disabled={!table.getCanPreviousPage()} > - + ({ onClick={() => table.nextPage()} disabled={!table.getCanNextPage()} > - + ({ onClick={() => table.setPageIndex(table.getPageCount() - 1)} disabled={!table.getCanNextPage()} > - + setPageNumber(1)} disabled={pageNumber < 2} > - + setPageNumber(prev => prev - 1)} disabled={pageNumber < 2} > - + Страница {pageNumber} из {pageCount} @@ -34,7 +34,7 @@ function PageControls({ pageNumber, pageCount, setPageNumber }: PageControlsProp onClick={() => setPageNumber(prev => prev + 1)} disabled={pageNumber >= pageCount} > - + setPageNumber(pageCount)} disabled={pageNumber >= pageCount} > - + > ); diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusIcon.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusIcon.tsx index 1fc8f9a5..7871e619 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusIcon.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusIcon.tsx @@ -1,7 +1,6 @@ 'use client'; -import { BiBug, BiCheckCircle, BiHelpCircle, BiPauseCircle } from 'react-icons/bi'; - +import { IconStatusError, IconStatusIncalculable, IconStatusOK, IconStatusUnknown } from '@/components/Icons'; import { ExpressionStatus } from '@/models/rsform'; interface StatusIconProps { @@ -10,13 +9,13 @@ interface StatusIconProps { function StatusIcon({ status }: StatusIconProps) { if (status === ExpressionStatus.VERIFIED || status === ExpressionStatus.PROPERTY) { - return ; + return ; } else if (status === ExpressionStatus.UNKNOWN) { - return ; + return ; } else if (status === ExpressionStatus.INCALCULABLE) { - return ; + return ; } else { - return ; + return ; } } diff --git a/rsconcept/frontend/src/pages/RSFormPage/RSTabsMenu.tsx b/rsconcept/frontend/src/pages/RSFormPage/RSTabsMenu.tsx index 47cfd99e..3fec7227 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/RSTabsMenu.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/RSTabsMenu.tsx @@ -1,22 +1,26 @@ 'use client'; -import { BiDiamond, BiMenu } from 'react-icons/bi'; -import { FiEdit } from 'react-icons/fi'; -import { LuAlertTriangle, LuArchive, LuBookCopy, LuNetwork, LuWand2 } from 'react-icons/lu'; -import { VscLibrary } from 'react-icons/vsc'; - import { urls } from '@/app/urls'; import { IconAdmin, + IconAlert, + IconArchive, IconClone, IconDestroy, IconDownload, + IconEdit2, + IconGenerateNames, + IconGenerateStructure, + IconInlineSynthesis, + IconLibrary, + IconMenu, IconNewItem, IconOwner, IconReader, IconReplace, IconShare, IconSortList, + IconTemplates, IconUpload } from '@/components/Icons'; import Button from '@/components/ui/Button'; @@ -131,7 +135,7 @@ function RSTabsMenu({ onDestroy }: RSTabsMenuProps) { tabIndex={-1} title='Меню' hideTitle={schemaMenu.isOpen} - icon={} + icon={} className='h-full pl-2' onClick={schemaMenu.toggle} /> @@ -188,7 +192,7 @@ function RSTabsMenu({ onDestroy }: RSTabsMenuProps) { ) : null} } + icon={} onClick={() => router.push(urls.library)} /> @@ -204,21 +208,21 @@ function RSTabsMenu({ onDestroy }: RSTabsMenuProps) { title={'Редактирование'} hideTitle={editMenu.isOpen} className='h-full px-2' - icon={} + icon={} onClick={editMenu.toggle} /> } + icon={} disabled={!controller.isContentEditable || controller.isProcessing} onClick={handleTemplates} /> } + icon={} disabled={!controller.isContentEditable || controller.isProcessing} onClick={handleInlineSynthesis} /> @@ -233,14 +237,14 @@ function RSTabsMenu({ onDestroy }: RSTabsMenuProps) { } + icon={} disabled={!controller.isContentEditable || controller.isProcessing} onClick={handleReindex} /> } + icon={} disabled={!controller.isContentEditable || !controller.canProduceStructure} onClick={handleProduceStructure} /> @@ -263,7 +267,7 @@ function RSTabsMenu({ onDestroy }: RSTabsMenuProps) { titleHtml='Архив: Редактирование запрещеноПерейти к актуальной версии' hideTitle={accessMenu.isOpen} className='h-full px-2' - icon={} + icon={} onClick={event => controller.viewVersion(undefined, event.ctrlKey)} /> ) : null} @@ -322,7 +326,7 @@ function RSTabsMenu({ onDestroy }: RSTabsMenuProps) { titleHtml='Анонимный режимВойти в Портал' hideTitle={accessMenu.isOpen} className='h-full pr-2' - icon={} + icon={} onClick={handleLogin} /> ) : null}
Страница {pageNumber} из {pageCount} @@ -34,7 +34,7 @@ function PageControls({ pageNumber, pageCount, setPageNumber }: PageControlsProp onClick={() => setPageNumber(prev => prev + 1)} disabled={pageNumber >= pageCount} > - + setPageNumber(pageCount)} disabled={pageNumber >= pageCount} > - + > ); diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusIcon.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusIcon.tsx index 1fc8f9a5..7871e619 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusIcon.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusIcon.tsx @@ -1,7 +1,6 @@ 'use client'; -import { BiBug, BiCheckCircle, BiHelpCircle, BiPauseCircle } from 'react-icons/bi'; - +import { IconStatusError, IconStatusIncalculable, IconStatusOK, IconStatusUnknown } from '@/components/Icons'; import { ExpressionStatus } from '@/models/rsform'; interface StatusIconProps { @@ -10,13 +9,13 @@ interface StatusIconProps { function StatusIcon({ status }: StatusIconProps) { if (status === ExpressionStatus.VERIFIED || status === ExpressionStatus.PROPERTY) { - return ; + return ; } else if (status === ExpressionStatus.UNKNOWN) { - return ; + return ; } else if (status === ExpressionStatus.INCALCULABLE) { - return ; + return ; } else { - return ; + return ; } } diff --git a/rsconcept/frontend/src/pages/RSFormPage/RSTabsMenu.tsx b/rsconcept/frontend/src/pages/RSFormPage/RSTabsMenu.tsx index 47cfd99e..3fec7227 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/RSTabsMenu.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/RSTabsMenu.tsx @@ -1,22 +1,26 @@ 'use client'; -import { BiDiamond, BiMenu } from 'react-icons/bi'; -import { FiEdit } from 'react-icons/fi'; -import { LuAlertTriangle, LuArchive, LuBookCopy, LuNetwork, LuWand2 } from 'react-icons/lu'; -import { VscLibrary } from 'react-icons/vsc'; - import { urls } from '@/app/urls'; import { IconAdmin, + IconAlert, + IconArchive, IconClone, IconDestroy, IconDownload, + IconEdit2, + IconGenerateNames, + IconGenerateStructure, + IconInlineSynthesis, + IconLibrary, + IconMenu, IconNewItem, IconOwner, IconReader, IconReplace, IconShare, IconSortList, + IconTemplates, IconUpload } from '@/components/Icons'; import Button from '@/components/ui/Button'; @@ -131,7 +135,7 @@ function RSTabsMenu({ onDestroy }: RSTabsMenuProps) { tabIndex={-1} title='Меню' hideTitle={schemaMenu.isOpen} - icon={} + icon={} className='h-full pl-2' onClick={schemaMenu.toggle} /> @@ -188,7 +192,7 @@ function RSTabsMenu({ onDestroy }: RSTabsMenuProps) { ) : null} } + icon={} onClick={() => router.push(urls.library)} /> @@ -204,21 +208,21 @@ function RSTabsMenu({ onDestroy }: RSTabsMenuProps) { title={'Редактирование'} hideTitle={editMenu.isOpen} className='h-full px-2' - icon={} + icon={} onClick={editMenu.toggle} /> } + icon={} disabled={!controller.isContentEditable || controller.isProcessing} onClick={handleTemplates} /> } + icon={} disabled={!controller.isContentEditable || controller.isProcessing} onClick={handleInlineSynthesis} /> @@ -233,14 +237,14 @@ function RSTabsMenu({ onDestroy }: RSTabsMenuProps) { } + icon={} disabled={!controller.isContentEditable || controller.isProcessing} onClick={handleReindex} /> } + icon={} disabled={!controller.isContentEditable || !controller.canProduceStructure} onClick={handleProduceStructure} /> @@ -263,7 +267,7 @@ function RSTabsMenu({ onDestroy }: RSTabsMenuProps) { titleHtml='Архив: Редактирование запрещеноПерейти к актуальной версии' hideTitle={accessMenu.isOpen} className='h-full px-2' - icon={} + icon={} onClick={event => controller.viewVersion(undefined, event.ctrlKey)} /> ) : null} @@ -322,7 +326,7 @@ function RSTabsMenu({ onDestroy }: RSTabsMenuProps) { titleHtml='Анонимный режимВойти в Портал' hideTitle={accessMenu.isOpen} className='h-full pr-2' - icon={} + icon={} onClick={handleLogin} /> ) : null}