From 989d416b6c34d24607dbbb99ddab9319b84a269d Mon Sep 17 00:00:00 2001 From: JWittmeyer Date: Mon, 21 Oct 2024 16:01:40 +0200 Subject: [PATCH 1/5] Switch to specific IconPreset --- components/KernDropdown.tsx | 19 ++------------ components/SVGIcon.tsx | 52 +++++++++++++++++++++++++++++++++++++ helpers/dropdown-helper.ts | 11 +++++--- 3 files changed, 62 insertions(+), 20 deletions(-) create mode 100644 components/SVGIcon.tsx diff --git a/components/KernDropdown.tsx b/components/KernDropdown.tsx index c40160c..f3a5dfe 100644 --- a/components/KernDropdown.tsx +++ b/components/KernDropdown.tsx @@ -4,11 +4,11 @@ import { KernDropdownProps } from '../types/dropdown'; import { combineClassNames } from '../../javascript-functions/general'; import { SELECT_ALL, checkDropdownProps, getActiveNegateGroupColor, getDropdownDisplayText, prepareDropdownOptionsToArray, reduceColorProperty, setOptionsWithSearchBar } from '../helpers/dropdown-helper'; import { Tooltip } from '@nextui-org/react'; -import { IconChevronDown, IconDotsVertical, IconExternalLink, IconLoader } from '@tabler/icons-react'; +import { IconChevronDown, IconDotsVertical, IconExternalLink } from '@tabler/icons-react'; import { IconTrashXFilled } from '@tabler/icons-react'; import useOnClickOutside from '../hooks/useHooks/useOnClickOutside'; -import * as TablerIcons from '@tabler/icons-react'; import { useDefaults } from '../hooks/useDefaults'; +import SVGIcon from './SVGIcon'; const DEFAULTS = { fontSizeClass: 'text-xs' }; @@ -279,18 +279,3 @@ function HoverBox(props: { position: any, hoverBox: any }) { } ) } - -function SVGIcon({ icon, size, strokeWidth, useFillForIcons }) { - const Icon = TablerIcons[icon]; - if (Icon) { - return ( - - ) - } else { - return - } -} \ No newline at end of file diff --git a/components/SVGIcon.tsx b/components/SVGIcon.tsx new file mode 100644 index 0000000..cd5fa14 --- /dev/null +++ b/components/SVGIcon.tsx @@ -0,0 +1,52 @@ +import { IconBolt, IconChevronDown, IconCode, IconDotsVertical, IconExternalLink, IconFileInfo, IconFilePencil, IconLoader, IconPlayerPlayFilled, IconSquare, IconSquareCheck, IconTrash } from '@tabler/icons-react'; +import { useMemo } from 'react'; + +export const SUPPORTED_ICONS = ['IconCode', 'IconBolt', 'IconSquareCheck', 'IconSquare', 'IconPlayerPlayFilled', 'IconTrash', 'IconExternalLink', + 'IconLoader', 'IconFilePencil', 'IconFileInfo' +] + +type SVGIconProps = { + icon: string, + size?: number, + strokeWidth?: number, + useFillForIcons?: boolean +} + +export default function SVGIcon(props: SVGIconProps) { + const unsupported = useMemo(() => { + const r = props.icon && !SUPPORTED_ICONS.includes(props.icon) + if (r) console.warn(`Icon ${props.icon} is not supported`) + return r + }, [props.icon]); + + if (unsupported) return null; + + switch (props.icon) { + case 'IconCode': + return + case 'IconBolt': + return + case 'IconSquareCheck': + return + case 'IconSquare': + return + case 'IconPlayerPlayFilled': + return + case 'IconTrash': + return + case 'IconExternalLink': + return + case 'IconChevronDown': + return + case 'IconDotsVertical': + return + case 'IconLoader': + return + case 'IconFilePencil': + return + case 'IconFileInfo': + return + default: return + } + +} \ No newline at end of file diff --git a/helpers/dropdown-helper.ts b/helpers/dropdown-helper.ts index fa1a46a..41a73e0 100644 --- a/helpers/dropdown-helper.ts +++ b/helpers/dropdown-helper.ts @@ -1,3 +1,4 @@ +import { SUPPORTED_ICONS } from "../components/SVGIcon"; import { KernDropdownProps } from "../types/dropdown"; export const SELECT_ALL = 'Select all'; @@ -67,8 +68,12 @@ export function checkDropdownProps(props: KernDropdownProps) { throw new Error('Dropdown: linkList should be used with optionsHaveLink'); } else if (props.hoverBoxList && !props.optionsHaveHoverBox) { throw new Error('Dropdown: hoverBoxList should be used with optionsHaveHoverBox'); - } else if (props.iconsArray && (props.iconsArray.length != props.options.length)) { - throw new Error('Dropdown: iconsArray length must be equal to options length'); + } else if (props.iconsArray) { + if (props.iconsArray.length != props.options.length) { + throw new Error('Dropdown: iconsArray length must be equal to options length'); + } else if (props.iconsArray.some((icon: string) => !SUPPORTED_ICONS.includes(icon))) { + throw new Error('Dropdown: icon not yet supported'); + } } else if (props.useFillForIcons && (props.useFillForIcons.length != props.options.length)) { throw new Error('Dropdown: useFillForIcons length must be equal to options length'); } @@ -135,4 +140,4 @@ export function getActiveNegateGroupColor(group: any) { } return '#4e46e5'; -} \ No newline at end of file +} From d6d15432504c7718ec9ec730929ff53e2f607a03 Mon Sep 17 00:00:00 2001 From: JWittmeyer Date: Mon, 21 Oct 2024 16:10:37 +0200 Subject: [PATCH 2/5] Remove warning for bricks --- components/SVGIcon.tsx | 9 --------- 1 file changed, 9 deletions(-) diff --git a/components/SVGIcon.tsx b/components/SVGIcon.tsx index cd5fa14..5d51a2d 100644 --- a/components/SVGIcon.tsx +++ b/components/SVGIcon.tsx @@ -1,5 +1,4 @@ import { IconBolt, IconChevronDown, IconCode, IconDotsVertical, IconExternalLink, IconFileInfo, IconFilePencil, IconLoader, IconPlayerPlayFilled, IconSquare, IconSquareCheck, IconTrash } from '@tabler/icons-react'; -import { useMemo } from 'react'; export const SUPPORTED_ICONS = ['IconCode', 'IconBolt', 'IconSquareCheck', 'IconSquare', 'IconPlayerPlayFilled', 'IconTrash', 'IconExternalLink', 'IconLoader', 'IconFilePencil', 'IconFileInfo' @@ -13,14 +12,6 @@ type SVGIconProps = { } export default function SVGIcon(props: SVGIconProps) { - const unsupported = useMemo(() => { - const r = props.icon && !SUPPORTED_ICONS.includes(props.icon) - if (r) console.warn(`Icon ${props.icon} is not supported`) - return r - }, [props.icon]); - - if (unsupported) return null; - switch (props.icon) { case 'IconCode': return From 9e811a58f16e1238a1fcd65b0b5616a29dcaced6 Mon Sep 17 00:00:00 2001 From: Lina Date: Tue, 22 Oct 2024 09:58:26 +0200 Subject: [PATCH 3/5] Admin message should always stay on the bottom right --- components/AdminMessages.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/AdminMessages.tsx b/components/AdminMessages.tsx index dadcc67..1f46e3a 100644 --- a/components/AdminMessages.tsx +++ b/components/AdminMessages.tsx @@ -13,7 +13,7 @@ export default function AdminMessages(props: AdminMessagesProps) { props.setActiveAdminMessages(adminMessagesCopy); } - return (
+ return (
{props.adminMessages && props.adminMessages.map((activeMessage, index) => (
From 49f6fd2a48b20cdcf0ab0ab233da23e7c09780e8 Mon Sep 17 00:00:00 2001 From: Lina Date: Tue, 22 Oct 2024 11:36:02 +0200 Subject: [PATCH 4/5] Fix then setting the search value --- components/KernDropdown.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/components/KernDropdown.tsx b/components/KernDropdown.tsx index f3a5dfe..969d1df 100644 --- a/components/KernDropdown.tsx +++ b/components/KernDropdown.tsx @@ -18,7 +18,7 @@ export default function KernDropdown(props: KernDropdownProps) { const [dropdownCaptions, setDropdownCaptions] = useState([]); const [disabledOptions, setDisabledOptions] = useState([]); const [backgroundColors, setBackgroundColors] = useState([]); - const [searchText, setSearchText] = useState(props.searchDefaultValue ?? ''); + const [searchText, setSearchText] = useState(''); const [isOpen, setIsOpen] = useState(false); const [selectedCheckboxes, setSelectedCheckboxes] = useState([]); const [position, setPosition] = useState(null); @@ -38,6 +38,10 @@ export default function KernDropdown(props: KernDropdownProps) { props.onSearchChange(searchText) }, [props.onSearchChange, searchText]); + useEffect(() => { + setSearchText(props.searchDefaultValue ?? ''); + }, [props.searchDefaultValue]); + useEffect(() => { const prepareOptions = prepareDropdownOptionsToArray(props.options, props.hasSearchBar, props.valuePropertyPath); if (props.hasSearchBar) { From d23d4bf62f0f40e8a5b84c39227620f706241c5b Mon Sep 17 00:00:00 2001 From: Lina Date: Tue, 22 Oct 2024 16:14:04 +0200 Subject: [PATCH 5/5] Web sockets const add --- hooks/web-socket/constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hooks/web-socket/constants.ts b/hooks/web-socket/constants.ts index 766019b..37003a7 100644 --- a/hooks/web-socket/constants.ts +++ b/hooks/web-socket/constants.ts @@ -91,7 +91,7 @@ export const WHITELIST_LOOKUP_REFINERY = { [CurrentPageSubKey.NONE]: ['labeling_task_updated', 'labeling_task_created', 'label_created', 'label_deleted', 'labeling_task_deleted', 'information_source_deleted', 'information_source_updated', 'model_callback_update_statistics', 'embedding_deleted', 'embedding', 'payload_finished', 'payload_failed', 'payload_created', 'payload_update_statistics'] }, [CurrentPage.HEURISTICS]: { - [CurrentPageSubKey.NONE]: ['labeling_task_updated', 'labeling_task_created', 'labeling_task_deleted', 'information_source_created', 'information_source_updated', 'information_source_deleted', 'payload_finished', 'payload_failed', 'payload_created', 'payload_update_statistics', 'embedding_deleted', 'weak_supervision_started', 'weak_supervision_finished'], + [CurrentPageSubKey.NONE]: ['labeling_task_updated', 'labeling_task_created', 'labeling_task_deleted', 'information_source_created', 'information_source_updated', 'information_source_deleted', 'payload_finished', 'payload_failed', 'payload_created', 'payload_update_statistics', 'embedding_deleted', 'weak_supervision_started', 'weak_supervision_finished', 'tokenization'], }, [CurrentPage.EDIT_RECORDS]: {