import React, { Component } from 'react'; import ReactDOM from 'react-dom'; import { connect } from 'react-redux'; import changedir from 'actions/changedir'; import { bind } from 'store'; import Hammer from 'react-hammerjs'; @connect(props) export default class Breadcrumb extends Component { render() { let els = []; if (this.props.search) { els = [ Search: {this.props.search} ] } else { let directories = this.props.cwd.split('/').filter(a => a); let lastDirectories = this.props.lwd.split('/').filter(a => a); directories.unshift('sdcard'); let sumLength = directories.length + lastDirectories.length; els = els.concat(directories.map((dir, index, arr) => { let path = arr.slice(1, index + 1).join('/'); let style = { zIndex: sumLength - index }; return ( {dir} ); })); if (lastDirectories.length > directories.length - 1) { lastDirectories.splice(0, directories.length - 1); let history = lastDirectories.map((dir, index, arr) => { let current = directories.slice(1).concat(arr.slice(0, index + 1)); let path = current.join('/').replace(/^\//, ''); // remove starting slash let key = directories.length + index; let style = { zIndex: arr.length - index}; return ( {dir} ) }); els = els.concat(history); } } return (
{els}
); } componentDidUpdate() { let container = this.refs.container; let currents = container.querySelectorAll('span:not(.history)'); container.scrollLeft = currents[currents.length - 1].offsetLeft; } } function props(state) { return { lwd: state.get('lwd'), // last working directory cwd: state.get('cwd'), search: state.get('search') } }