| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331 |
- /* argus-disable unPkgSensitiveInfo */
- import React from 'react';
- import Breadcrumb from '../index';
- import Popover from '../../popover';
- import {
- IconMore,
- IconArrowRight,
- IconHome,
- IconArticle,
- IconChevronRight,
- } from '@douyinfe/semi-icons';
- export default {
- title: 'Breadcrumb',
- }
- export const Default = () => (
- <div>
- <Breadcrumb
- routes={[
- {
- path: '/home',
- name: 'home',
- },
- 'breadcrumb',
- 'default',
- ]}
- aria-label='example-1'
- onClick={item => console.log(item)}
- />
- <Breadcrumb
- aria-label='example-2'
- routes={[
- {
- path: '/home',
- icon: <IconHome />,
- href: '#',
- },
- {
- path: '/breadcrumb',
- name: 'breadcrumb',
- icon: <IconChevronRight />,
- },
- 'icon',
- ]}
- onClick={item => console.log(item)}
- />
- <Breadcrumb
- aria-label='example-3'
- routes={[
- {
- path: '/home',
- name: 'home',
- },
- 'breadcrumb',
- 'separator',
- 'string',
- ]}
- onClick={item => console.log(item)}
- separator={'>'}
- />
- <Breadcrumb
- aria-label='example-4'
- routes={[
- {
- path: '/home',
- name: 'home',
- },
- 'breadcrumb',
- 'separator',
- 'with icon',
- ]}
- onClick={item => console.log(item)}
- separator={<IconArrowRight size={'small'} />}
- />
- <Breadcrumb
- aria-label='example-5'
- routes={['首页', '当这个页面标题很长时需要省略', '详情页']}
- onClick={item => console.log(item)}
- />
- <Breadcrumb
- aria-label='example-6'
- routes={[
- '首页',
- '当层级很多的时候',
- '又一层很长需要省略的时候',
- '再一层',
- '上上一层',
- '上一层',
- '详情页',
- ]}
- onClick={item => console.log(item)}
- />
- </div>
- );
- export const Compact = () => (
- <div>
- <Breadcrumb
- aria-label='example-1'
- routes={[
- {
- path: '/home',
- name: 'home',
- },
- 'breadcrumb',
- 'compact',
- ]}
- onClick={item => console.log(item)}
- compact={true}
- />
- <Breadcrumb
- aria-label='example-2'
- routes={[
- {
- path: '/home',
- icon: <IconHome />,
- },
- {
- path: '/breadcrumb',
- name: 'breadcrumb',
- icon: <IconChevronRight />,
- },
- 'icon',
- ]}
- onClick={item => console.log(item)}
- compact={true}
- />
- <Breadcrumb
- aria-label='example-3'
- routes={[
- {
- path: '/home',
- name: 'home',
- },
- 'breadcrumb',
- 'separator',
- 'string',
- ]}
- onClick={item => console.log(item)}
- separator={'>'}
- compact={true}
- />
- <Breadcrumb
- aria-label='example-4'
- routes={[
- {
- path: '/home',
- name: 'home',
- },
- 'breadcrumb',
- 'separator',
- 'icon',
- ]}
- onClick={item => console.log(item)}
- separator={<IconArrowRight size={'small'} />}
- compact={true}
- />
- <Breadcrumb
- aria-label='example-5'
- routes={['首页', '当这个页面标题很长时需要省略', '详情页']}
- onClick={item => console.log(item)}
- compact={true}
- />
- <Breadcrumb
- aria-label='example-6'
- routes={[
- '首页',
- '当层级很多的时候',
- '又一层很长需要省略的时候',
- '再一层',
- '上上一层',
- '上一层',
- '详情页',
- ]}
- onClick={item => console.log(item)}
- compact={true}
- />
- </div>
- );
- export const BreadcrumbItemJSX = () => (
- <div>
- <Breadcrumb aria-label='example-1' onClick={item => console.log(item)}>
- <Breadcrumb.Item onClick={item => console.log('child', item)}>home</Breadcrumb.Item>
- <Breadcrumb.Item href="#">breadcrumb</Breadcrumb.Item>
- <Breadcrumb.Item>default</Breadcrumb.Item>
- </Breadcrumb>
- <Breadcrumb aria-label='example-2' onClick={item => console.log(item)}>
- <Breadcrumb.Item icon={<IconHome />}></Breadcrumb.Item>
- <Breadcrumb.Item>breadcrumb</Breadcrumb.Item>
- <Breadcrumb.Item>default</Breadcrumb.Item>
- </Breadcrumb>
- <Breadcrumb aria-label='example-3' separator={'>'} onClick={item => console.log(item)}>
- <Breadcrumb.Item>home</Breadcrumb.Item>
- <Breadcrumb.Item href="#">breadcrumb</Breadcrumb.Item>
- <Breadcrumb.Item>separator</Breadcrumb.Item>
- </Breadcrumb>
- <Breadcrumb aria-label='example-4' compact={true} onClick={item => console.log(item)}>
- <Breadcrumb.Item>home</Breadcrumb.Item>
- <Breadcrumb.Item>breadcrumb</Breadcrumb.Item>
- <Breadcrumb.Item>compact</Breadcrumb.Item>
- </Breadcrumb>
- <Breadcrumb aria-label='example-5' onClick={item => console.log(item)}>
- <Breadcrumb.Item>首页</Breadcrumb.Item>
- <Breadcrumb.Item>当这个页面标题很长时需要省略</Breadcrumb.Item>
- <Breadcrumb.Item>详情页</Breadcrumb.Item>
- </Breadcrumb>
- <Breadcrumb aria-label='example-6' onClick={item => console.log(item)}>
- <Breadcrumb.Item>首页</Breadcrumb.Item>
- <Breadcrumb.Item>当层级很多的时候</Breadcrumb.Item>
- <Breadcrumb.Item>又一层很长需要省略的时候</Breadcrumb.Item>
- <Breadcrumb.Item>再一层</Breadcrumb.Item>
- <Breadcrumb.Item>上上一层</Breadcrumb.Item>
- <Breadcrumb.Item>上一层</Breadcrumb.Item>
- <Breadcrumb.Item>详情页</Breadcrumb.Item>
- </Breadcrumb>
- <Breadcrumb></Breadcrumb>
- </div>
- );
- export const Test = () => (
- <div>
- <Breadcrumb aria-label='example-1' onClick={item => console.log(item)}>
- <Breadcrumb.Item onClick={item => console.log('child', item)}>home jump</Breadcrumb.Item>
- <Breadcrumb.Item href="#">breadcrumb</Breadcrumb.Item>
- <Breadcrumb.Item>
- <h1>default</h1>
- </Breadcrumb.Item>
- </Breadcrumb>
- <Breadcrumb aria-label='example-2'>
- <Breadcrumb.Item icon={<IconHome />}></Breadcrumb.Item>
- <Breadcrumb.Item icon={<IconArticle />}>
- <h5>breadcrumb</h5>
- </Breadcrumb.Item>
- <Breadcrumb.Item>with icon</Breadcrumb.Item>
- </Breadcrumb>
- </div>
- );
- const separator = '-'; // 用于拼接 restItem 数组项的分隔符
- const renderMore = restItem => {
- const content = (
- <>
- {restItem.map((item, idx) => (
- <React.Fragment key={`restItem-${idx}`}>
- {item}
- {idx !== restItem.length - 1 && (
- <span
- style={{
- color: 'var(--semi-color-text-2)',
- marginRight: '6px',
- }}
- >
- {separator}
- </span>
- )}
- </React.Fragment>
- ))}
- </>
- );
- return (
- <Popover
- content={content}
- style={{
- padding: 12,
- }}
- showArrow
- >
- <IconMore />
- </Popover>
- );
- };
- export const RenderMore = () => (
- <div
- style={{
- margin: '100px',
- }}
- >
- <Breadcrumb
- aria-label='example-1'
- renderMore={restItem => renderMore(restItem)}
- onClick={(item, e) => console.log(item, e)}
- >
- <Breadcrumb.Item>首页</Breadcrumb.Item>
- <Breadcrumb.Item>当层级很多的时候</Breadcrumb.Item>
- <Breadcrumb.Item>又一层</Breadcrumb.Item>
- <Breadcrumb.Item>再一层</Breadcrumb.Item>
- <Breadcrumb.Item>上上一层</Breadcrumb.Item>
- <Breadcrumb.Item>上一层</Breadcrumb.Item>
- <Breadcrumb.Item>详情页</Breadcrumb.Item>
- </Breadcrumb>
- <br />
- <br />
- <div>
- <Breadcrumb
- aria-label='example-2'
- renderMore={restItem => renderMore(restItem)}
- onClick={(item, e) => console.log(item, e)}
- routes={[
- {
- path: '/',
- href: '/',
- icon: <IconHome />,
- },
- {
- path: '/breadcrumb',
- href: '/components/breadcrumb',
- name: 'breadcrumb',
- icon: <IconArticle />,
- },
- {
- path: '/breadcrumb',
- href: '/components/breadcrumb',
- name: 'breadcrumb',
- icon: <IconArticle />,
- },
- {
- path: '/breadcrumb',
- href: '/components/breadcrumb',
- name: 'breadcrumb',
- icon: <IconArticle />,
- },
- 'with icon',
- ]}
- />
- </div>
- </div>
- );
|