import React, { useState } from 'react';
import { Icon, Tag, Table, Slider } from '../../index';
import OverflowList from '..';
import {
IconAlarm,
IconCamera,
IconBookmark,
IconDuration,
IconEdit,
IconFolder,
IconFolderOpen,
IconBolt,
} from '@douyinfe/semi-icons';
export default {
title: 'OverflowList'
}
const ITEMS = [
{ icon: , key: 'All' },
{ icon: , key: 'Users' },
{ icon: , key: 'Janet' },
{ href: '#', icon: , key: 'Photos' },
{ href: '#', icon: , key: 'Wednesday' },
{ icon: , key: 'image', current: true },
];
class Demo extends React.Component {
renderOverflow = items => {
// console.log('overflow items: ', items);
return {items.length};
};
renderItem = (item, ind) => {
// console.log('visible item: ', item);
return (
{item.key}
);
};
render() {
return (
);
}
}
export const ASimpleOverflowList = () => ;
ASimpleOverflowList.story = {
name: 'a simple semi overflow list',
};
class StartCollapse extends React.Component {
renderOverflow = items => {
// console.log('overflow items: ', items);
return {items.length};
};
renderItem = (item, ind) => {
// console.log('visible item: ', item);
return (
{item.key}
);
};
render() {
return (
);
}
}
export const CollapseFromStart = () => ;
CollapseFromStart.story = {
name: 'collapse from start',
};
class MinCollapse extends React.Component {
renderOverflow = items => {
// console.log('overflow items: ', items);
return {items.length};
};
renderItem = (item, ind) => {
// console.log('visible item: ', item);
return (
{item.key}
);
};
render() {
return (
console.log(item)}
/>
);
}
}
export const MinVisibleItems = () => ;
MinVisibleItems.story = {
name: 'minVisibleItems',
};
class OverlapDemo extends React.Component {
renderOverflow = items => {
return items.map(item => {item.length});
};
renderItem = (item, ind) => {
return (
{item.key}
);
};
render() {
return (
);
}
}
export const OverlapOverflowList = () => ;
OverlapOverflowList.story = {
name: 'overlap overflow list',
};
class OverlapDemo2 extends React.Component {
renderOverflow = items => {
return items.map(item => {item.length});
};
renderItem = (item, ind) => {
return (
{item.key}
);
};
render() {
return (
console.log(item)}
overflowRenderer={this.renderOverflow}
visibleItemRenderer={this.renderItem}
renderMode="scroll"
/>
);
}
}
export const OverlapOverflowThreshold = () => ;
OverlapOverflowThreshold.story = {
name: 'overlap overflow threshold',
};
const data = [
{
key: '1',
name: 'John Brown',
age: 32,
age1: 23,
age2: 11,
address: [1, 2, 3, 4, 5],
},
{
key: '2',
name: 'Jim Green',
age: 42,
age1: 23,
age2: 11,
address: [1, 2, 3, 4, 5],
},
{
key: '3',
name: 'Joe Black',
age: 32,
age1: 23,
age2: 11,
address: [1, 2, 3, 4, 5],
},
{
key: '4',
name: 'Disabled User',
age: 99,
age1: 23,
age2: 11,
address: [1, 2, 3, 4, 5],
},
];
class TableDemo extends React.Component {
renderOverflow = items => {
return {items.length};
};
renderItem = (item, ind) => {
return (
{item}
);
};
renderColumn(items) {
return (
{items.length}}
visibleItemRenderer={(item, ind) => (
{item}
)}
/>
);
// return (
//
//
//
// );
}
render() {
const columns = [
{
title: 'Name',
dataIndex: 'name',
width: '30%',
},
{
title: 'combine',
dataIndex: 'test',
children: [
{
title: 'Age',
children: [
{
title: 'Age1',
dataIndex: 'age1',
},
{
title: 'Age2',
dataIndex: 'age2',
},
],
},
{
title: 'Key',
dataIndex: 'key',
},
],
},
{
title: 'Address',
width: '20%',
dataIndex: 'address',
render: item => this.renderColumn(item),
className: 'table-width-test',
},
];
return ;
}
}
export const OverflowInTable = () => ;
OverflowInTable.story = {
name: 'overflow in table',
};
const LargeData = () => {
const [width, setWidth] = useState(100);
const renderOverflow = items => {
// console.log('overflow items: ', items);
return items.length ? +{items.length} : null;
};
const renderItem = (item, ind) => {
// console.log('visible item: ', item);
return (
{item.icon}
{item.key}
);
};
const items = [
{ icon: , key: 'alarm' },
{ icon: , key: 'bookmark' },
{ icon: , key: 'camera' },
{ icon: , key: 'duration' },
{ icon: , key: 'edit' },
{ icon: , key: 'folder' },
];
return (
);
};
export const OverflowListWithSlide = () =>{
const [width, setWidth] = useState(100);
const renderOverflow = items => {
return items.length ? +{items.length} : null;
};
const renderItem = (item, ind) => {
return (
{item.icon}
{item.key}
);
};
const items = [
{ icon: , key: 'alarm' },
{ icon: , key: 'bookmark' },
{ icon: , key: 'camera' },
{ icon: , key: 'duration' },
{ icon: , key: 'edit' },
{ icon: , key: 'folder' },
];
return (
);
}
OverflowListWithSlide.story = {
name: 'overflowList with slide',
};
// TODO large data will cause memory heap
// stories.add('large amount of data', () => );