mirror of
https://github.com/langgenius/dify.git
synced 2026-05-13 08:57:28 +08:00
fix: native button
This commit is contained in:
parent
ea7b03f28a
commit
4e94683fd4
@ -89,9 +89,13 @@ const DropDown = ({
|
|||||||
setConfirmMessage(isUsedByApp ? t('datasetUsedByApp', { ns: 'dataset' })! : t('deleteDatasetConfirmContent', { ns: 'dataset' })!)
|
setConfirmMessage(isUsedByApp ? t('datasetUsedByApp', { ns: 'dataset' })! : t('deleteDatasetConfirmContent', { ns: 'dataset' })!)
|
||||||
setShowConfirmDelete(true)
|
setShowConfirmDelete(true)
|
||||||
}
|
}
|
||||||
catch (e: any) {
|
catch (e: unknown) {
|
||||||
const res = await e.json()
|
let message = 'Unknown error'
|
||||||
toast(res?.message || 'Unknown error', { type: 'error' })
|
if (e instanceof Response) {
|
||||||
|
const res = await e.json() as { message?: string }
|
||||||
|
message = res?.message || message
|
||||||
|
}
|
||||||
|
toast(message, { type: 'error' })
|
||||||
}
|
}
|
||||||
}, [dataset.id, t])
|
}, [dataset.id, t])
|
||||||
|
|
||||||
@ -112,10 +116,15 @@ const DropDown = ({
|
|||||||
open={open}
|
open={open}
|
||||||
onOpenChange={setOpen}
|
onOpenChange={setOpen}
|
||||||
>
|
>
|
||||||
<DropdownMenuTrigger render={<div />}>
|
<DropdownMenuTrigger
|
||||||
<ActionButton className={cn(expand ? 'size-8 rounded-lg' : 'size-6 rounded-md', open && 'bg-state-base-hover')}>
|
render={(
|
||||||
<span aria-hidden className="i-ri-more-fill size-4" />
|
<ActionButton
|
||||||
</ActionButton>
|
aria-label={t('operation.more', { ns: 'common' })}
|
||||||
|
className={cn(expand ? 'size-8 rounded-lg' : 'size-6 rounded-md', open && 'bg-state-base-hover')}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
>
|
||||||
|
<span aria-hidden className="i-ri-more-fill size-4" />
|
||||||
</DropdownMenuTrigger>
|
</DropdownMenuTrigger>
|
||||||
<DropdownMenuContent
|
<DropdownMenuContent
|
||||||
placement={expand ? 'bottom-end' : 'right-start'}
|
placement={expand ? 'bottom-end' : 'right-start'}
|
||||||
|
|||||||
@ -65,12 +65,13 @@ export function Infotip({
|
|||||||
delay={delay}
|
delay={delay}
|
||||||
closeDelay={closeDelay}
|
closeDelay={closeDelay}
|
||||||
aria-label={ariaLabel}
|
aria-label={ariaLabel}
|
||||||
render={(
|
className={cn(
|
||||||
<span className={cn('inline-flex h-4 w-4 shrink-0 items-center justify-center', className)}>
|
'inline-flex h-4 w-4 shrink-0 cursor-pointer items-center justify-center border-0 bg-transparent p-0 focus-visible:ring-1 focus-visible:ring-components-input-border-hover focus-visible:outline-hidden',
|
||||||
<span aria-hidden className={cn('i-ri-question-line h-3.5 w-3.5 text-text-quaternary hover:text-text-tertiary', iconClassName)} />
|
className,
|
||||||
</span>
|
|
||||||
)}
|
)}
|
||||||
/>
|
>
|
||||||
|
<span aria-hidden className={cn('i-ri-question-line h-3.5 w-3.5 text-text-quaternary hover:text-text-tertiary', iconClassName)} />
|
||||||
|
</PopoverTrigger>
|
||||||
<PopoverContent
|
<PopoverContent
|
||||||
placement={placement}
|
placement={placement}
|
||||||
popupClassName={cn('max-w-[300px] rounded-md px-3 py-2 system-xs-regular text-text-tertiary', popupClassName)}
|
popupClassName={cn('max-w-[300px] rounded-md px-3 py-2 system-xs-regular text-text-tertiary', popupClassName)}
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import type {
|
|||||||
OnSelectBlock,
|
OnSelectBlock,
|
||||||
ToolWithProvider,
|
ToolWithProvider,
|
||||||
} from '../types'
|
} from '../types'
|
||||||
|
import { cn } from '@langgenius/dify-ui/cn'
|
||||||
import {
|
import {
|
||||||
Popover,
|
Popover,
|
||||||
PopoverContent,
|
PopoverContent,
|
||||||
@ -177,18 +178,19 @@ const NodeSelector: FC<NodeSelectorProps> = ({
|
|||||||
}, [activeTab, t])
|
}, [activeTab, t])
|
||||||
|
|
||||||
const defaultTriggerElement = (
|
const defaultTriggerElement = (
|
||||||
<div
|
<PopoverTrigger
|
||||||
className={`
|
aria-label={t('common.addBlock', { ns: 'workflow' })}
|
||||||
z-10 flex h-4
|
className={cn(
|
||||||
w-4 cursor-pointer items-center justify-center rounded-full bg-components-button-primary-bg text-text-primary-on-surface hover:bg-components-button-primary-bg-hover
|
'z-10 flex h-4 w-4 cursor-pointer items-center justify-center rounded-full border-0 bg-components-button-primary-bg p-0 text-text-primary-on-surface hover:bg-components-button-primary-bg-hover focus-visible:ring-1 focus-visible:ring-components-input-border-hover focus-visible:outline-hidden',
|
||||||
${triggerClassName?.(open)}
|
triggerClassName?.(open),
|
||||||
`}
|
)}
|
||||||
style={triggerStyle}
|
style={triggerStyle}
|
||||||
|
onClick={handleTrigger}
|
||||||
>
|
>
|
||||||
<Plus02 className="h-2.5 w-2.5" />
|
<Plus02 aria-hidden className="h-2.5 w-2.5" />
|
||||||
</div>
|
</PopoverTrigger>
|
||||||
)
|
)
|
||||||
const triggerElement = trigger ? trigger(open) : defaultTriggerElement
|
const triggerElement = trigger?.(open)
|
||||||
const triggerElementProps = React.isValidElement(triggerElement)
|
const triggerElementProps = React.isValidElement(triggerElement)
|
||||||
? (triggerElement.props as {
|
? (triggerElement.props as {
|
||||||
onClick?: MouseEventHandler<HTMLElement>
|
onClick?: MouseEventHandler<HTMLElement>
|
||||||
@ -216,15 +218,17 @@ const NodeSelector: FC<NodeSelectorProps> = ({
|
|||||||
const sideOffset = typeof offset === 'number' ? offset : (resolvedOffset?.mainAxis ?? 0)
|
const sideOffset = typeof offset === 'number' ? offset : (resolvedOffset?.mainAxis ?? 0)
|
||||||
const alignOffset = typeof offset === 'number' ? 0 : (resolvedOffset?.crossAxis ?? 0)
|
const alignOffset = typeof offset === 'number' ? 0 : (resolvedOffset?.crossAxis ?? 0)
|
||||||
const nativeButton = asChild
|
const nativeButton = asChild
|
||||||
&& React.isValidElement(triggerElement)
|
? React.isValidElement(triggerElement) && (typeof triggerElement.type !== 'string' || triggerElement.type === 'button')
|
||||||
&& (typeof triggerElement.type !== 'string' || triggerElement.type === 'button')
|
: false
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Popover
|
<Popover
|
||||||
open={open}
|
open={open}
|
||||||
onOpenChange={handleOpenChange}
|
onOpenChange={handleOpenChange}
|
||||||
>
|
>
|
||||||
<PopoverTrigger nativeButton={nativeButton} render={resolvedTriggerElement as React.ReactElement} />
|
{trigger
|
||||||
|
? <PopoverTrigger nativeButton={nativeButton} render={resolvedTriggerElement as React.ReactElement} />
|
||||||
|
: defaultTriggerElement}
|
||||||
<PopoverContent
|
<PopoverContent
|
||||||
placement={placement}
|
placement={placement}
|
||||||
sideOffset={sideOffset}
|
sideOffset={sideOffset}
|
||||||
|
|||||||
@ -230,6 +230,7 @@ const VarReferencePickerTrigger: FC<Props> = ({
|
|||||||
? variablePicker
|
? variablePicker
|
||||||
: (
|
: (
|
||||||
<PopoverTrigger
|
<PopoverTrigger
|
||||||
|
nativeButton={false}
|
||||||
render={variablePicker}
|
render={variablePicker}
|
||||||
onClick={handleTriggerReadonlyClick}
|
onClick={handleTriggerReadonlyClick}
|
||||||
/>
|
/>
|
||||||
@ -344,6 +345,7 @@ const VarReferencePickerTrigger: FC<Props> = ({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<PopoverTrigger
|
<PopoverTrigger
|
||||||
|
nativeButton={false}
|
||||||
render={triggerContent}
|
render={triggerContent}
|
||||||
onClick={handleTriggerReadonlyClick}
|
onClick={handleTriggerReadonlyClick}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user