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 (
setWidth(value)} />

); }; // TODO large data will cause memory heap // stories.add('large amount of data', () => );