diff --git a/rsconcept/frontend/src/app/Footer.tsx b/rsconcept/frontend/src/app/Footer.tsx index e22c4655..bae26d81 100644 --- a/rsconcept/frontend/src/app/Footer.tsx +++ b/rsconcept/frontend/src/app/Footer.tsx @@ -15,7 +15,7 @@ function Footer() { className={clsx( 'z-navigation', 'mx-auto', - 'sm:px-4 sm:py-2 flex flex-col items-center gap-1', + 'px-3 py-2 flex flex-col items-center gap-1', 'text-xs sm:text-sm select-none whitespace-nowrap' )} > diff --git a/rsconcept/frontend/src/components/DomainIcons.tsx b/rsconcept/frontend/src/components/DomainIcons.tsx index 065961f0..cf93b85d 100644 --- a/rsconcept/frontend/src/components/DomainIcons.tsx +++ b/rsconcept/frontend/src/components/DomainIcons.tsx @@ -1,5 +1,6 @@ import { AccessPolicy, LibraryItemType, LocationHead } from '@/models/library'; import { CstMatchMode, DependencyMode } from '@/models/miscellaneous'; +import { ExpressionStatus } from '@/models/rsform'; import { IconAlias, @@ -21,6 +22,10 @@ import { IconRSForm, IconSettings, IconShow, + IconStatusError, + IconStatusIncalculable, + IconStatusOK, + IconStatusUnknown, IconTemplates, IconTerm, IconText, @@ -80,34 +85,51 @@ export function LocationIcon({ value, size = '1.25rem', className }: DomIconProp } } -export function DependencyIcon(mode: DependencyMode, size: string, color?: string) { - switch (mode) { +export function DependencyIcon({ value, size = '1.25rem', className }: DomIconProps) { + switch (value) { case DependencyMode.ALL: - return ; + return ; case DependencyMode.EXPRESSION: - return ; + return ; case DependencyMode.OUTPUTS: - return ; + return ; case DependencyMode.INPUTS: - return ; + return ; case DependencyMode.EXPAND_OUTPUTS: - return ; + return ; case DependencyMode.EXPAND_INPUTS: - return ; + return ; } } -export function MatchModeIcon(mode: CstMatchMode, size: string, color?: string) { - switch (mode) { +export function MatchModeIcon({ value, size = '1.25rem', className }: DomIconProps) { + switch (value) { case CstMatchMode.ALL: - return ; + return ; case CstMatchMode.TEXT: - return ; + return ; case CstMatchMode.EXPR: - return ; + return ; case CstMatchMode.TERM: - return ; + return ; case CstMatchMode.NAME: - return ; + return ; + } +} + +export function StatusIcon({ value, size = '1.25rem', className }: DomIconProps) { + switch (value) { + case ExpressionStatus.VERIFIED: + case ExpressionStatus.PROPERTY: + return ; + + case ExpressionStatus.UNKNOWN: + return ; + case ExpressionStatus.INCALCULABLE: + return ; + + case ExpressionStatus.INCORRECT: + case ExpressionStatus.UNDEFINED: + return ; } } diff --git a/rsconcept/frontend/src/components/select/SelectGraphFilter.tsx b/rsconcept/frontend/src/components/select/SelectGraphFilter.tsx index bf8bb90b..0d0bdd8e 100644 --- a/rsconcept/frontend/src/components/select/SelectGraphFilter.tsx +++ b/rsconcept/frontend/src/components/select/SelectGraphFilter.tsx @@ -39,7 +39,7 @@ function SelectGraphFilter({ value, dense, onChange }: SelectGraphFilterProps) { title='Настройка фильтрации по графу термов' hideTitle={menu.isOpen} className='h-full pr-2' - icon={DependencyIcon(value, '1rem', value !== DependencyMode.ALL ? 'icon-primary' : '')} + icon={} text={dense || size.isSmall ? undefined : labelCstSource(value)} onClick={menu.toggle} /> @@ -55,7 +55,7 @@ function SelectGraphFilter({ value, dense, onChange }: SelectGraphFilterProps) { onClick={() => handleChange(source)} >
- {DependencyIcon(source, '1rem')} + {} {!dense ? ( {labelCstSource(source)}: {describeCstSource(source)} diff --git a/rsconcept/frontend/src/components/select/SelectMatchMode.tsx b/rsconcept/frontend/src/components/select/SelectMatchMode.tsx index 5b07f7cc..1ad1d932 100644 --- a/rsconcept/frontend/src/components/select/SelectMatchMode.tsx +++ b/rsconcept/frontend/src/components/select/SelectMatchMode.tsx @@ -38,7 +38,7 @@ function SelectMatchMode({ value, dense, onChange }: SelectMatchModeProps) { title='Настройка фильтрации по проверяемым атрибутам' hideTitle={menu.isOpen} className='h-full pr-2' - icon={MatchModeIcon(value, '1rem', value !== CstMatchMode.ALL ? 'icon-primary' : '')} + icon={} text={dense || size.isSmall ? undefined : labelCstMatchMode(value)} onClick={menu.toggle} /> @@ -54,7 +54,7 @@ function SelectMatchMode({ value, dense, onChange }: SelectMatchModeProps) { onClick={() => handleChange(matchMode)} >
- {MatchModeIcon(matchMode, '1rem')} + {} {!dense ? ( {labelCstMatchMode(matchMode)}: {describeCstMatchMode(matchMode)} diff --git a/rsconcept/frontend/src/pages/LibraryPage/SearchPanel.tsx b/rsconcept/frontend/src/pages/LibraryPage/SearchPanel.tsx index c026b804..70b188e0 100644 --- a/rsconcept/frontend/src/pages/LibraryPage/SearchPanel.tsx +++ b/rsconcept/frontend/src/pages/LibraryPage/SearchPanel.tsx @@ -79,7 +79,7 @@ function SearchPanel({ 'clr-input' )} > -
+
{filtered} из {total}
diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusBar.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusBar.tsx index 9b8e1e3f..fac0141c 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusBar.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusBar.tsx @@ -4,6 +4,7 @@ import clsx from 'clsx'; import { AnimatePresence } from 'framer-motion'; import { useMemo } from 'react'; +import { StatusIcon } from '@/components/DomainIcons'; import Loader from '@/components/ui/Loader'; import { useConceptOptions } from '@/context/OptionsContext'; import { ExpressionStatus } from '@/models/rsform'; @@ -14,8 +15,6 @@ import { colorBgCstStatus } from '@/styling/color'; import { globals } from '@/utils/constants'; import { labelExpressionStatus, prepareTooltip } from '@/utils/labels'; -import StatusIcon from './StatusIcon'; - interface StatusBarProps { processing?: boolean; isModified?: boolean; @@ -58,7 +57,7 @@ function StatusBar({ isModified, processing, constituenta, parseData, onAnalyze {processing ? : null} {!processing ? ( <> - + {labelExpressionStatus(status)} diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusIcon.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusIcon.tsx deleted file mode 100644 index 7871e619..00000000 --- a/rsconcept/frontend/src/pages/RSFormPage/EditorRSExpression/StatusIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -'use client'; - -import { IconStatusError, IconStatusIncalculable, IconStatusOK, IconStatusUnknown } from '@/components/Icons'; -import { ExpressionStatus } from '@/models/rsform'; - -interface StatusIconProps { - status: ExpressionStatus; -} - -function StatusIcon({ status }: StatusIconProps) { - if (status === ExpressionStatus.VERIFIED || status === ExpressionStatus.PROPERTY) { - return ; - } else if (status === ExpressionStatus.UNKNOWN) { - return ; - } else if (status === ExpressionStatus.INCALCULABLE) { - return ; - } else { - return ; - } -} - -export default StatusIcon; diff --git a/rsconcept/frontend/src/pages/RSFormPage/EditorTermGraph/FocusToolbar.tsx b/rsconcept/frontend/src/pages/RSFormPage/EditorTermGraph/FocusToolbar.tsx index b56243fb..38e017ba 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/EditorTermGraph/FocusToolbar.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/EditorTermGraph/FocusToolbar.tsx @@ -36,7 +36,7 @@ function FocusToolbar({ }, [reset, controller]); return ( -
+
Фокус {center.alias} @@ -48,24 +48,12 @@ function FocusToolbar({ /> - ) : ( - - ) - } + icon={} onClick={toggleShowInputs} /> - ) : ( - - ) - } + icon={} onClick={toggleShowOutputs} />
diff --git a/rsconcept/frontend/src/pages/UserProfilePage/UserTabs.tsx b/rsconcept/frontend/src/pages/UserProfilePage/UserTabs.tsx index f4e79272..f5357dea 100644 --- a/rsconcept/frontend/src/pages/UserProfilePage/UserTabs.tsx +++ b/rsconcept/frontend/src/pages/UserProfilePage/UserTabs.tsx @@ -3,7 +3,7 @@ import { AnimatePresence } from 'framer-motion'; import { useMemo, useState } from 'react'; -import { IconFollow, IconFollowOff } from '@/components/Icons'; +import { SubscribeIcon } from '@/components/DomainIcons'; import MiniButton from '@/components/ui/MiniButton'; import Overlay from '@/components/ui/Overlay'; import AnimateFade from '@/components/wrap/AnimateFade'; @@ -39,13 +39,7 @@ function UserTabs() { - ) : ( - - ) - } + icon={} onClick={() => setShowSubs(prev => !prev)} />