feat(xo-web/SortedTable): support link actions (#2893)
This commit is contained in:
parent
5928984069
commit
78e0c2d8fa
@ -90,7 +90,7 @@ export default class ActionButton extends Component {
|
||||
if (redirectOnSuccess) {
|
||||
return this.context.router.push(
|
||||
isFunction(redirectOnSuccess)
|
||||
? redirectOnSuccess(result)
|
||||
? redirectOnSuccess(result, handlerParam)
|
||||
: redirectOnSuccess
|
||||
)
|
||||
}
|
||||
|
@ -197,6 +197,7 @@ const actionsShape = propTypes.arrayOf(
|
||||
icon: propTypes.string.isRequired,
|
||||
label: propTypes.node.isRequired,
|
||||
level: propTypes.oneOf(['primary', 'warning', 'danger']),
|
||||
redirectOnSuccess: propTypes.oneOfType([propTypes.func, propTypes.string]),
|
||||
})
|
||||
)
|
||||
|
||||
@ -208,21 +209,23 @@ class IndividualAction extends Component {
|
||||
(disabled, item, userData) =>
|
||||
isFunction(disabled) ? disabled(item, userData) : disabled
|
||||
)
|
||||
|
||||
_executeAction = () => {
|
||||
const p = this.props
|
||||
return p.handler(p.item, p.userData)
|
||||
}
|
||||
|
||||
render () {
|
||||
const { icon, label, level } = this.props
|
||||
const { icon, item, label, level, redirectOnSuccess, userData } = this.props
|
||||
|
||||
return (
|
||||
<ActionRowButton
|
||||
btnStyle={level}
|
||||
data-item={item}
|
||||
data-userData={userData}
|
||||
disabled={this._getIsDisabled()}
|
||||
handler={this._executeAction}
|
||||
icon={icon}
|
||||
redirectOnSuccess={redirectOnSuccess}
|
||||
tooltip={label}
|
||||
/>
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user