import React, { useState } from 'react'
import {
getAnimatedScale,
getFractalBoxStyle,
getFractalContainerStyle,
} from './FractalHelpers'
export default function FractalTreeBranch(props) {
let {
depth = 1,
lean,
maxDepth = 7,
side,
size,
sprout,
} = props
let scale = getAnimatedScale(
'constant',
// startTime,
// startScale
)
// When lean/sprout are negative, scaling them can reduce
// the visible size, which feels kinda odd. The Math.min
// prevents this from occuring.
let scaledLean = Math.min(lean * scale, lean)
let scaledSprout = Math.min(sprout * scale, sprout)
if (depth > maxDepth) {
return null
} else {
return (
<div style={getFractalContainerStyle({
depth,
lean,
maxDepth,
side,
size,
sprout
})}>
<div
style={getFractalBoxStyle(depth, maxDepth)}
/>
<FractalTreeBranch
depth={depth + 1}
lean={scaledLean}
side='left'
sprout={scaledSprout}
size={size}
/>
<FractalTreeBranch
depth={depth + 1}
lean={scaledLean}
side='right'
sprout={scaledSprout}
size={size}
/>
</div>
)
}
}