Skip to content

Commit 615e2ac

Browse files
committed
Update examples
1 parent d6534d2 commit 615e2ac

23 files changed

+10652
-360
lines changed

examples/app.jsx

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ import InfiniteTree from '../src';
33
import rowRenderer from './renderer';
44
import { quoteattr } from './helper';
55
import '../src/index.styl';
6+
import './app.styl';
67
import './animation.styl';
78

89
const generateData = () => {
910
const data = [];
10-
const source = '{"id":"<root>","label":"<root>","props":{"droppable":true},"children":[{"id":"alpha","label":"Alpha","props":{"droppable":true}},{"id":"bravo","label":"Bravo","props":{"droppable":true},"children":[{"id":"charlie","label":"Charlie","props":{"droppable":true},"children":[{"id":"delta","label":"Delta","props":{"droppable":true},"children":[{"id":"echo","label":"Echo","props":{"droppable":true}},{"id":"foxtrot","label":"Foxtrot","props":{"droppable":true}}]},{"id":"golf","label":"Golf","props":{"droppable":true}}]},{"id":"hotel","label":"Hotel","props":{"droppable":true},"children":[{"id":"india","label":"India","props":{"droppable":true},"children":[{"id":"juliet","label":"Juliet","props":{"droppable":true}}]}]},{"id":"kilo","label":"(Load On Demand) Kilo","loadOnDemand":true,"props":{"droppable":true}}]}]}';
11+
const source = '{"id":"<root>","name":"<root>","props":{"droppable":true},"children":[{"id":"alpha","name":"Alpha","props":{"droppable":true}},{"id":"bravo","name":"Bravo","props":{"droppable":true},"children":[{"id":"charlie","name":"Charlie","props":{"droppable":true},"children":[{"id":"delta","name":"Delta","props":{"droppable":true},"children":[{"id":"echo","name":"Echo","props":{"droppable":true}},{"id":"foxtrot","name":"Foxtrot","props":{"droppable":true}}]},{"id":"golf","name":"Golf","props":{"droppable":true}}]},{"id":"hotel","name":"Hotel","props":{"droppable":true},"children":[{"id":"india","name":"India","props":{"droppable":true},"children":[{"id":"juliet","name":"Juliet","props":{"droppable":true}}]}]},{"id":"kilo","name":"(Load On Demand) Kilo","loadOnDemand":true,"props":{"droppable":true}}]}]}';
1112
for (let i = 0; i < 1000; ++i) {
12-
data.push(JSON.parse(source.replace(/"(id|label)":"([^"]*)"/g, '"$1": "$2.' + i + '"')));
13+
data.push(JSON.parse(source.replace(/"(id|name)":"([^"]*)"/g, '"$1": "$2.' + i + '"')));
1314
}
1415
return data;
1516
};
@@ -18,11 +19,11 @@ class App extends React.Component {
1819
tree = null;
1920

2021
updatePreview(node) {
21-
const el = document.querySelector('#preview');
22+
const el = document.querySelector('[data-id="preview"]');
2223
if (node) {
2324
let o = {
2425
id: node.id,
25-
label: node.label,
26+
name: node.name,
2627
children: node.children ? node.children.length : 0,
2728
parent: node.parent ? node.parent.id : null,
2829
state: node.state
@@ -48,17 +49,28 @@ class App extends React.Component {
4849
<InfiniteTree
4950
ref={(c) => this.tree = c.tree}
5051
autoOpen={true}
51-
droppable={true}
52+
droppable={{
53+
hoverClass: 'infinite-tree-drop-hover',
54+
accept: function(opts) {
55+
const { type, draggableTarget, droppableTarget, node } = opts;
56+
return true;
57+
},
58+
drop: function(e, opts) {
59+
const { draggableTarget, droppableTarget, node } = opts;
60+
const source = e.dataTransfer.getData('text');
61+
document.querySelector('[data-id="dropped-result"]').innerHTML = 'Dropped to <b>' + quoteattr(node.name) + '</b>';
62+
}
63+
}}
5264
loadNodes={(parentNode, done) => {
5365
const suffix = parentNode.id.replace(/(\w)+/, '');
5466
const nodes = [
5567
{
5668
id: 'node1' + suffix,
57-
label: 'Node 1'
69+
name: 'Node 1'
5870
},
5971
{
6072
id: 'node2' + suffix,
61-
label: 'Node 2'
73+
name: 'Node 2'
6274
}
6375
];
6476
setTimeout(() => {
@@ -75,13 +87,13 @@ class App extends React.Component {
7587
}}
7688
onDropNode={(node, e) => {
7789
const source = e.dataTransfer.getData('text');
78-
document.querySelector('#dropped-result').innerHTML = 'Dropped to <b>' + quoteattr(node.label) + '</b>';
90+
document.querySelector('[data-id="dropped-result"]').innerHTML = 'Dropped to <b>' + quoteattr(node.name) + '</b>';
7991
}}
80-
onUpdate={() => {
81-
this.updatePreview(this.tree.getSelectedNode());
92+
onContentWillUpdate={() => {
93+
console.log('onContentWillUpdate');
8294
}}
83-
onScrollProgress={(progress) => {
84-
document.querySelector('#scrolling-progress').style.width = progress + '%';
95+
onContentDidUpdate={() => {
96+
this.updatePreview(this.tree.getSelectedNode());
8597
}}
8698
onSelect={(node) => {
8799
this.updatePreview(node);

examples/app.styl

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
@import 'nib'
2+
3+
#classic {
4+
.preview {
5+
font-family: Consolas;
6+
font-size: 14px;
7+
font-weight: bold;
8+
white-space: pre-wrap;
9+
background-color: #282c34;
10+
border: solid 1px #ccc;
11+
color: #9197a3;
12+
padding: 20px;
13+
min-height: 400px;
14+
}
15+
.progress-bar {
16+
-webkit-transition: none;
17+
-moz-transition: none;
18+
-ms-transition: none;
19+
-o-transition: none;
20+
transition: none;
21+
}
22+
.dropped-result {
23+
font-size: 16px;
24+
line-height: 42px;
25+
}
26+
.tree {
27+
border: 1px solid #ccc;
28+
background-color: #fff;
29+
}
30+
31+
.infinite-tree-item.infinite-tree-drop-hover {
32+
border: 1px dotted #ccc;
33+
background-color: #f5f6f7;
34+
}
35+
.infinite-tree-toggler {
36+
text-align: center;
37+
margin-right: 5px;
38+
}
39+
.infinite-tree-folder-icon {
40+
width: 19px;
41+
}
42+
.infinite-tree-folder-icon:first-child {
43+
margin-left: 20px;
44+
}
45+
.infinite-tree-folder-icon:before {
46+
margin-right: 5px;
47+
}
48+
49+
.infinite-tree-node .count {
50+
position: absolute;
51+
right: 4px;
52+
padding: 0 8px;
53+
height: 18px;
54+
line-height: 18px;
55+
background-color: #D8DFEA;
56+
color: #3B5998;
57+
font-style: normal;
58+
font-weight: bold;
59+
text-align: center;
60+
border-radius: 2px;
61+
}
62+
.infinite-tree-scroll {
63+
overflow: auto;
64+
max-height: 400px;
65+
}
66+
}

0 commit comments

Comments
 (0)