// eslint-disable-next-line no-unused-vars class ExploreCurriculumItem extends React.Component { curriculum() { return this.props.index[this.props.id]; } downloadModal() { const resource = this.curriculum().resource; return (resource.downloads && resource.downloads.length > 0) ? : ''; } render() { const props = this.props; const curriculum = this.curriculum(); const colorCode = colorCodeCss(curriculum.resource.subject, curriculum.resource.grade); // An item should expand if its parent is the last parent in the active branch. // Collapsed Grade -> Collapsed Mod -> Expanded Unit 1, Unit 2, Unit 3 const activeParent = props.index[props.active[props.active.length - 2]]; const shouldItemExpand = props.active.length === 1 || _.some(activeParent.children, c => c.id === props.id); const isItemActive = props.active.length > 1 && props.active[props.active.length - 2] === props.id; let onClickItem = shouldItemExpand ? props.onClickViewDetails.bind(this, props.parentage) : props.onClickExpand.bind(this, props.parentage); if (curriculum.resource.is_assessment) { onClickItem = function() { location.href = curriculum.resource.path; }; } const item = ; // Children should be rendered if the item is a parent in the active branch. const shouldRenderChildren = props.active.length > 1 && _.includes(props.active, props.id) && _.last(props.active) !== props.id; const cssClasses = classNames( 'c-ec-cards__children', { 'c-ec-cards__children--lessons': curriculum.type === 'unit', 'c-ec-cards__children--expanded': shouldRenderChildren }); const children = _.filter(curriculum.children, x => !x.resource.is_opr); const childrenElements = shouldRenderChildren ? children.map(c => ( c.type === 'lesson' ? : )) : []; const shouldRenderOpr = shouldRenderChildren && curriculum.type === 'unit'; const opr = shouldRenderOpr ? : []; return (
{item} {opr}
{childrenElements}
{this.downloadModal()}
); } }