diff --git a/web/app/components/base/select/index.tsx b/web/app/components/base/select/index.tsx index 362b56e0a4..472b5be508 100644 --- a/web/app/components/base/select/index.tsx +++ b/web/app/components/base/select/index.tsx @@ -29,6 +29,7 @@ export type Item = { export type ISelectProps = { className?: string wrapperClassName?: string + renderTrigger?: (value: Item | null) => JSX.Element | null items?: Item[] defaultValue?: number | string disabled?: boolean @@ -168,6 +169,7 @@ const Select: FC = ({ const SimpleSelect: FC = ({ className, wrapperClassName = '', + renderTrigger, items = defaultItems, defaultValue = 1, disabled = false, @@ -203,27 +205,29 @@ const SimpleSelect: FC = ({ >
- {selectedItem?.name ?? localPlaceholder} - - {selectedItem - ? ( - { - e.stopPropagation() - setSelectedItem(null) - onSelect({ name: '', value: '' }) - }} - className="h-5 w-5 text-gray-400 cursor-pointer" - aria-hidden="false" - /> - ) - : ( - + {renderTrigger ? renderTrigger(selectedItem) : {selectedItem?.name ?? localPlaceholder}} + {!renderTrigger && ( + + {selectedItem + ? ( + { + e.stopPropagation() + setSelectedItem(null) + onSelect({ name: '', value: '' }) + }} + className="h-5 w-5 text-gray-400 cursor-pointer" + aria-hidden="false" + /> + ) + : ( + + )} {!disabled && ( handleSubVarKeyChange(item.value as string)} + renderTrigger={item => ( + item + ?
+
+ +
{item?.name}
+
+ handleSubVarKeyChange('')} /> +
+ :
{t('common.placeholder.select')}
+ )} /> ) : (