import React from 'react';
import { storiesOf } from '@kadira/storybook';
import { withKnobs } from '@kadira/storybook-addon-knobs';
import Tree from './Tree.jsx';

const stories = storiesOf('Version Tree', module);
stories.addDecorator(withKnobs);

const response = {
    listCount: 6,
    results: [
        {
            id: '123',
            name: '1.0',
            description: 'string',
            baseId: '',
            status: 'Draft',
            creationTime: '2017-06-08T08:55:37.831Z',
            modificationTime: '2017-06-08T08:55:37.831Z'
        },
        {
            id: '1234',
            name: '1.1',
            description: 'string',
            baseId: '123',
            status: 'Draft',
            creationTime: '2017-06-08T08:55:37.831Z',
            modificationTime: '2017-06-08T08:55:37.831Z'
        },
        {
            id: '12345',
            name: '2.0',
            description: 'string',
            baseId: '123',
            status: 'Draft',
            creationTime: '2017-06-08T08:55:37.831Z',
            modificationTime: '2017-06-08T08:55:37.831Z'
        },
        {
            id: '123456',
            name: '3.0',
            description: 'string',
            baseId: '12345',
            status: 'Draft',
            creationTime: '2017-06-08T08:55:37.831Z',
            modificationTime: '2017-06-08T08:55:37.831Z'
        },
        {
            id: '1234567',
            name: '1.2',
            description: 'string',
            baseId: '1234',
            status: 'Draft',
            creationTime: '2017-06-08T08:55:37.831Z',
            modificationTime: '2017-06-08T08:55:37.831Z'
        },
        {
            id: '12345678',
            name: '2.1',
            description: 'string',
            baseId: '12345',
            status: 'Draft',
            creationTime: '2017-06-08T08:55:37.831Z',
            modificationTime: '2017-06-08T08:55:37.831Z'
        },
        {
            id: '123456789',
            name: '4.0',
            description: 'string',
            baseId: '123456',
            status: 'Draft',
            creationTime: '2017-06-08T08:55:37.831Z',
            modificationTime: '2017-06-08T08:55:37.831Z'
        },
        {
            id: '12345678910',
            name: '3.1',
            description: 'string',
            baseId: '123456',
            status: 'Draft',
            creationTime: '2017-06-08T08:55:37.831Z',
            modificationTime: '2017-06-08T08:55:37.831Z'
        }
    ]
};
const divStyle = {
    width: '200px',
    borderStyle: 'solid',
    borderColor: 'black',
    border: '1px solid black'
};
const tree = response.results.map(item => ({
    id: item.id,
    name: item.name,
    parent: item.baseId
}));
const nodeClickHandler = function(node) {
    window.alert(node.name);
};
stories
    .add('Classic Version Tree', () => (
        <div>
            <Tree
                nodes={tree}
                onNodeClick={nodeClickHandler}
                selectedNodeId={'1234'}
            />
        </div>
    ))
    .add('Single Version Tree', () => (
        <div>
            <Tree nodes={[tree[0]]} onNodeClick={nodeClickHandler} />
        </div>
    ))
    .add('Single Path Version Tree', () => (
        <div>
            <Tree nodes={[tree[0], tree[1]]} onNodeClick={nodeClickHandler} />
        </div>
    ))
    .add('Empty Tree', () => (
        <div>
            <Tree nodes={[]} />
        </div>
    ))
    .add('Add Tree in Version Page Frame', () => (
        <div style={divStyle}>
            Tree wider than frame<br />
            <br />
            <br />
            <Tree
                name={'versions-tree'}
                width={200}
                nodes={tree}
                onRenderedBeyondWidth={() => {
                    console.log('rendered beyond width');
                }}
                allowScaleWidth={false}
                onNodeClick={nodeClickHandler}
            />
        </div>
    ));