Remove implicit yield functionality

Co-authored-by: Delmer Reed <delmer814+1@gmail.com>
pull/3730/head
Iris Scholten 2018-06-19 11:44:42 -07:00
parent bbd2d7aadd
commit d4c9a96a9d
1 changed files with 3 additions and 82 deletions

View File

@ -24,7 +24,6 @@ interface YieldToggles {
interface State {
nonYieldableIndexesToggled: YieldToggles
isImplicitYieldToggled: boolean
}
// an Expression is a group of one or more functions
@ -34,7 +33,6 @@ class ExpressionNode extends PureComponent<Props, State> {
this.state = {
nonYieldableIndexesToggled: this.nonYieldableNodesFromScript,
isImplicitYieldToggled: this.isImplicitYieldToggled,
}
}
@ -151,44 +149,8 @@ class ExpressionNode extends PureComponent<Props, State> {
/>
</Fragment>
)
} else if (this.isEndOfScript(i)) {
const script = scriptUpToYield(bodyID, declarationID, i, true)
return (
<Fragment key={`${i}-notInScript`}>
<FuncNode
key={i}
index={i}
func={func}
funcs={funcs}
bodyID={bodyID}
service={service}
onChangeArg={onChangeArg}
onDelete={onDeleteFuncNode}
onToggleYield={this.handleHideImplicitYield}
isYieldable={isAfterFilter && isAfterRange}
isYielding={this.isBeforeYielding(i)}
isYieldedInScript={this.isYieldNodeIndex(i + 1)}
declarationID={declarationID}
onGenerateScript={onGenerateScript}
declarationsFromBody={declarationsFromBody}
onToggleYieldWithLast={this.handleToggleYieldWithLast}
onDeleteBody={onDeleteBody}
/>
<YieldFuncNode
index={i}
func={func}
data={data}
script={script}
bodyID={bodyID}
service={service}
declarationID={declarationID}
/>
</Fragment>
)
} else {
return funcNode
}
return funcNode
})}
<FuncSelector
bodyID={bodyID}
@ -204,26 +166,13 @@ class ExpressionNode extends PureComponent<Props, State> {
}
private isBeforeYielding(funcIndex: number): boolean {
const {funcs, isLastBody} = this.props
const {isImplicitYieldToggled, nonYieldableIndexesToggled} = this.state
const {nonYieldableIndexesToggled} = this.state
const beforeToggledLastYield = !!nonYieldableIndexesToggled[funcIndex]
if (beforeToggledLastYield) {
return true
}
if (
funcIndex === funcs.length - 1 &&
isLastBody &&
isImplicitYieldToggled
) {
return true
}
if (funcIndex === funcs.length - 1) {
return false
}
return this.isYieldNodeIndex(funcIndex + 1)
}
@ -255,9 +204,7 @@ class ExpressionNode extends PureComponent<Props, State> {
}
if (isBeforeFilter || isBeforeRange) {
const nextNode = _.get(funcs, `${index + 1}`, null)
if (nextNode && nextNode.name === 'yield') {
if (this.isYieldNodeIndex(index + 1)) {
return {...acc, [index]: true}
}
}
@ -268,18 +215,6 @@ class ExpressionNode extends PureComponent<Props, State> {
)
}
private get isImplicitYieldToggled(): boolean {
const {isLastBody} = this.props
return isLastBody && this.isLastFuncYield
}
private get isLastFuncYield(): boolean {
const {funcs} = this.props
return _.get(funcs, `${funcs.length - 1}.name`) !== 'yield'
}
// if funcNode is not yieldable, add last before yield()
private handleToggleYieldWithLast = (funcNodeIndex: number) => {
this.setState(({nonYieldableIndexesToggled}) => {
@ -293,20 +228,6 @@ class ExpressionNode extends PureComponent<Props, State> {
}
})
}
private handleHideImplicitYield = () => {
this.setState(() => ({
isImplicitYieldToggled: false,
}))
}
private isEndOfScript(index: number): boolean {
const {isLastBody, funcs} = this.props
const {isImplicitYieldToggled} = this.state
const isLastScriptFunc = isLastBody && index === funcs.length - 1
return isLastScriptFunc && isImplicitYieldToggled
}
}
export default ExpressionNode