You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

component.tsx 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { type FC, useEffect } from 'react'
  2. import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'
  3. import { useSelectOrDelete } from '../../hooks'
  4. import { DELETE_LAST_RUN_COMMAND, LastRunBlockNode } from '.'
  5. import cn from '@/utils/classnames'
  6. import { Variable02 } from '../../../icons/src/vender/solid/development'
  7. type Props = {
  8. nodeKey: string
  9. }
  10. const LastRunBlockComponent: FC<Props> = ({
  11. nodeKey,
  12. }) => {
  13. const [editor] = useLexicalComposerContext()
  14. const [ref, isSelected] = useSelectOrDelete(nodeKey, DELETE_LAST_RUN_COMMAND)
  15. useEffect(() => {
  16. if (!editor.hasNodes([LastRunBlockNode]))
  17. throw new Error('WorkflowVariableBlockPlugin: WorkflowVariableBlock not registered on editor')
  18. }, [editor])
  19. return (
  20. <div
  21. className={cn(
  22. 'group/wrap relative mx-0.5 flex h-[18px] select-none items-center rounded-[5px] border pl-0.5 pr-[3px] text-text-accent hover:border-state-accent-solid hover:bg-state-accent-hover',
  23. isSelected ? ' border-state-accent-solid bg-state-accent-hover' : ' border-components-panel-border-subtle bg-components-badge-white-to-dark',
  24. )}
  25. onClick={(e) => {
  26. e.stopPropagation()
  27. }}
  28. ref={ref}
  29. >
  30. <Variable02 className='mr-0.5 h-[14px] w-[14px]' />
  31. <div className='text-xs font-medium'>last_run</div>
  32. </div>
  33. )
  34. }
  35. export default LastRunBlockComponent