Prevent yield() from being added before a range and filter function
Co-authored-by: Delmer Reed <delmer814+1@gmail.com>pull/10616/head
parent
699d86931f
commit
533ae1acf7
|
@ -39,9 +39,20 @@ class ExpressionNode extends PureComponent<Props> {
|
|||
data,
|
||||
scriptUpToYield,
|
||||
}) => {
|
||||
let isAfterRange = false
|
||||
let isAfterFilter = false
|
||||
|
||||
return (
|
||||
<>
|
||||
{funcs.map((func, i) => {
|
||||
if (func.name === 'range') {
|
||||
isAfterRange = true
|
||||
}
|
||||
|
||||
if (func.name === 'filter') {
|
||||
isAfterFilter = true
|
||||
}
|
||||
|
||||
if (func.name === 'yield') {
|
||||
const script = scriptUpToYield(bodyID, declarationID, i)
|
||||
|
||||
|
@ -68,6 +79,7 @@ class ExpressionNode extends PureComponent<Props> {
|
|||
onChangeArg={onChangeArg}
|
||||
onDelete={onDeleteFuncNode}
|
||||
onToggleYield={onToggleYield}
|
||||
isYieldable={isAfterFilter && isAfterRange}
|
||||
isYielding={this.isNextFuncYield(i)}
|
||||
declarationID={declarationID}
|
||||
onGenerateScript={onGenerateScript}
|
||||
|
|
|
@ -24,6 +24,7 @@ interface Props {
|
|||
onGenerateScript: () => void
|
||||
declarationsFromBody: string[]
|
||||
isYielding: boolean
|
||||
isYieldable: boolean
|
||||
}
|
||||
|
||||
interface State {
|
||||
|
@ -111,9 +112,17 @@ export default class FuncNode extends PureComponent<Props, State> {
|
|||
private handleClick = (e: MouseEvent<HTMLElement>): void => {
|
||||
e.stopPropagation()
|
||||
|
||||
const {onToggleYield, index, bodyID, declarationID} = this.props
|
||||
const {
|
||||
onToggleYield,
|
||||
index,
|
||||
bodyID,
|
||||
declarationID,
|
||||
isYieldable,
|
||||
} = this.props
|
||||
|
||||
onToggleYield(bodyID, declarationID, index)
|
||||
if (isYieldable) {
|
||||
onToggleYield(bodyID, declarationID, index)
|
||||
}
|
||||
}
|
||||
private handleClickArgs = (e: MouseEvent<HTMLElement>): void => {
|
||||
e.stopPropagation()
|
||||
|
|
Loading…
Reference in New Issue