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 (
{markdown.map((section, sIndex) => (
- {section.title}
))}
);
}
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 (
);
}
}
export default Home;