wwf
3 天以前 a430284aa21e3ae1f0d5654e55b2ad2852519cc2
app/components/datasets/formatted-text/flavours/shared.tsx
@@ -1,32 +1,22 @@
import type { ComponentProps, FC } from 'react'
import { type ComponentProps, type FC, forwardRef } from 'react'
import classNames from '@/utils/classnames'
const baseStyle = 'py-[3px]'
export type SliceContainerProps = ComponentProps<'span'>
export const SliceContainer: FC<SliceContainerProps> = (
  {
    ref,
    ...props
  },
) => {
export const SliceContainer: FC<SliceContainerProps> = forwardRef((props, ref) => {
  const { className, ...rest } = props
  return <span {...rest} ref={ref} className={classNames(
    'group align-bottom mr-1 select-none text-sm',
    className,
  )} />
}
})
SliceContainer.displayName = 'SliceContainer'
export type SliceLabelProps = ComponentProps<'span'> & { labelInnerClassName?: string }
export const SliceLabel: FC<SliceLabelProps> = (
  {
    ref,
    ...props
  },
) => {
export const SliceLabel: FC<SliceLabelProps> = forwardRef((props, ref) => {
  const { className, children, labelInnerClassName, ...rest } = props
  return <span {...rest} ref={ref} className={classNames(
    baseStyle,
@@ -37,17 +27,12 @@
      {children}
    </span>
  </span>
}
})
SliceLabel.displayName = 'SliceLabel'
export type SliceContentProps = ComponentProps<'span'>
export const SliceContent: FC<SliceContentProps> = (
  {
    ref,
    ...props
  },
) => {
export const SliceContent: FC<SliceContentProps> = forwardRef((props, ref) => {
  const { className, children, ...rest } = props
  return <span {...rest} ref={ref} className={classNames(
    baseStyle,
@@ -56,17 +41,12 @@
  )}>
    {children}
  </span>
}
})
SliceContent.displayName = 'SliceContent'
export type SliceDividerProps = ComponentProps<'span'>
export const SliceDivider: FC<SliceDividerProps> = (
  {
    ref,
    ...props
  },
) => {
export const SliceDivider: FC<SliceDividerProps> = forwardRef((props, ref) => {
  const { className, ...rest } = props
  return <span {...rest} ref={ref} className={classNames(
    baseStyle,
@@ -76,5 +56,5 @@
    {/* use a zero-width space to make the hover area bigger */}
    &#8203;
  </span>
}
})
SliceDivider.displayName = 'SliceDivider'