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 { interface State {
nonYieldableIndexesToggled: YieldToggles nonYieldableIndexesToggled: YieldToggles
isImplicitYieldToggled: boolean
} }
// an Expression is a group of one or more functions // an Expression is a group of one or more functions
@ -34,7 +33,6 @@ class ExpressionNode extends PureComponent<Props, State> {
this.state = { this.state = {
nonYieldableIndexesToggled: this.nonYieldableNodesFromScript, nonYieldableIndexesToggled: this.nonYieldableNodesFromScript,
isImplicitYieldToggled: this.isImplicitYieldToggled,
} }
} }
@ -151,44 +149,8 @@ class ExpressionNode extends PureComponent<Props, State> {
/> />
</Fragment> </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 <FuncSelector
bodyID={bodyID} bodyID={bodyID}
@ -204,26 +166,13 @@ class ExpressionNode extends PureComponent<Props, State> {
} }
private isBeforeYielding(funcIndex: number): boolean { private isBeforeYielding(funcIndex: number): boolean {
const {funcs, isLastBody} = this.props const {nonYieldableIndexesToggled} = this.state
const {isImplicitYieldToggled, nonYieldableIndexesToggled} = this.state
const beforeToggledLastYield = !!nonYieldableIndexesToggled[funcIndex] const beforeToggledLastYield = !!nonYieldableIndexesToggled[funcIndex]
if (beforeToggledLastYield) { if (beforeToggledLastYield) {
return true return true
} }
if (
funcIndex === funcs.length - 1 &&
isLastBody &&
isImplicitYieldToggled
) {
return true
}
if (funcIndex === funcs.length - 1) {
return false
}
return this.isYieldNodeIndex(funcIndex + 1) return this.isYieldNodeIndex(funcIndex + 1)
} }
@ -255,9 +204,7 @@ class ExpressionNode extends PureComponent<Props, State> {
} }
if (isBeforeFilter || isBeforeRange) { if (isBeforeFilter || isBeforeRange) {
const nextNode = _.get(funcs, `${index + 1}`, null) if (this.isYieldNodeIndex(index + 1)) {
if (nextNode && nextNode.name === 'yield') {
return {...acc, [index]: true} 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() // if funcNode is not yieldable, add last before yield()
private handleToggleYieldWithLast = (funcNodeIndex: number) => { private handleToggleYieldWithLast = (funcNodeIndex: number) => {
this.setState(({nonYieldableIndexesToggled}) => { 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 export default ExpressionNode