import React from 'react'; import ReactMarkdown from 'react-markdown'; import { Link } from 'react-router-dom'; import { intro } from '../resources/const'; const markdown = require('../resources/markdown.json'); const getHandleId = (() => { let id = 0; return () => ('handle-' + (++id)); })(); console.log(getHandleId(), getHandleId()); function getSectionLinks() { return ( ); } const tutos = [ { name: 'JavaScript', items: [ { name: 'pouet', items: [ { name: 'pouet child', items: [] } ] }, { name: 'popop', items: [] }, { name: 'douap', items: [] } ] }, { name: 'jQuery', items: [] }, { name: 'AngularJS', items: [] }, { name: 'React', items: [] } ]; class Tree extends React.Component { render() { const { items } = this.props; return (

X

{items.map(item => )}
); } } /* * get DOM ref => https://reactjs.org/docs/refs-and-the-dom.html * dnd w/ handle => https://github.com/jdiamond/html5-examples/blob/master/drag-and-drop/drag-handle.html */ class TreeNode extends React.Component { constructor(props) { super(props); this.onMouseDown = this.onMouseDown.bind(this); this.onDragStart = this.onDragStart.bind(this); } onMouseDown(e) { this.dragTarget = e.target; console.log('onMouseDown', this.dragTarget); } onDragStart(e) { // e.preventDefault(); e.stopPropagation(); console.log('onDragStart', this.props.item.name, this.draggable); const { draggable } = this; var handle = draggable.getElementsByClassName('drag-handle')[0]; console.log(this.draggable, handle.id) // draggable.onmousedown = function(e) { // target = e.target; // }; // draggable.ondragstart = function(e) { if (handle.contains(this.dragTarget)) { console.log('transfer to handle') e.dataTransfer.setData('text/plain', handle.id); } else { console.log('abord onDragStart') e.preventDefault(); } // }; } render() { const { name, items } = this.props.item; const { level } = this.props; const paddingLeft = (level * 15) + 'px'; return (
{ this.draggable = div; }} draggable>
drag_handle{ name }
{items.map(item => )}
); } } class Home extends React.Component { render() { return (
home Accueil
); } } export default Home;