anchor.stories.tsx 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. import React from 'react';
  2. import { Anchor } from '../../index';
  3. import { storiesOf } from '@storybook/react';
  4. const { Link } = Anchor;
  5. const stories = storiesOf('Anchor', module);
  6. const getContainer = () => {
  7. const node = document.getElementById('box');
  8. return node;
  9. };
  10. stories.add('不同大小', () => (
  11. <div>
  12. <div>小号尺寸</div>
  13. <Anchor size={'small'}>
  14. <Link href="#welcome" title="welcome" />
  15. <Link href="#api" title="api too much to show" />
  16. <Link href="#contact" title="contact" />
  17. </Anchor>
  18. <br />
  19. <div>默认</div>
  20. <Anchor>
  21. <Link href="#welcome" title="welcome" />
  22. <Link href="#api" title="api too much to show" />
  23. <Link href="#contact" title="contact" />
  24. </Anchor>
  25. </div>
  26. ));
  27. stories.add('不同主题', () => (
  28. <div>
  29. <div>点击锚点查看效果</div>
  30. <br />
  31. <Anchor railTheme={'primary'}>
  32. <Link href="#组件" title="组件" />
  33. <Link href="#设计语言" title="设计语言" />
  34. <Link href="#物料平台" title="物料平台" />
  35. <Link href="#主题商店" title="主题商店" />
  36. </Anchor>
  37. <br />
  38. <Anchor railTheme={'tertiary'}>
  39. <Link href="#组件" title="组件" />
  40. <Link href="#设计语言" title="设计语言" />
  41. <Link href="#物料平台" title="物料平台" />
  42. <Link href="#主题商店" title="主题商店" />
  43. </Anchor>
  44. <br />
  45. <Anchor railTheme={'muted'}>
  46. <Link href="#组件" title="组件" />
  47. <Link href="#设计语言" title="设计语言" />
  48. <Link href="#物料平台" title="物料平台" />
  49. <Link href="#主题商店" title="主题商店" />
  50. </Anchor>
  51. </div>
  52. ));
  53. stories.add('动态展示', () => (
  54. <div>
  55. <div>Anchor 设置 autoCollapse 可以动态展示下一级锚点。</div>
  56. <br />
  57. <div>点击 1.Semi Design 查看效果</div>
  58. <Anchor autoCollapse={true}>
  59. <Link href="#Semi Design" title="1. Semi Design">
  60. <Link href="#组件" title="1.1 组件">
  61. <Link href="#头像" title="1.1.1 Avatar" />
  62. <Link href="#按钮" title="1.1.2 Button" />
  63. <Link href="#图标" title="1.1.3 Icon" />
  64. </Link>
  65. <Link href="#物料" title="1.2 物料" />
  66. <Link href="#主题商店" title="1.3 主题商店" />
  67. </Link>
  68. <Link href="#设计语言" title="2. 设计语言" />
  69. </Anchor>
  70. <br />
  71. <div>默认不进行动态折叠</div>
  72. <Anchor autoCollapse={false}>
  73. <Link href="#Semi Design" title="1. Semi Design">
  74. <Link href="#组件" title="1.1 组件">
  75. <Link href="#头像" title="1.1.1 Avatar" />
  76. <Link href="#按钮" title="1.1.2 Button" />
  77. <Link href="#图标" title="1.1.3 Icon" />
  78. </Link>
  79. <Link href="#物料" title="1.2 物料" />
  80. <Link href="#主题商店" title="1.3 主题商店" />
  81. </Link>
  82. <Link href="#设计语言" title="2. 设计语言" />
  83. </Anchor>
  84. </div>
  85. ));
  86. stories.add('工具提示', () => (
  87. <div>
  88. <div>工具提示可以在 Link 超出最大宽度时显示 Link 的文字内容</div>
  89. <br />
  90. <Anchor showTooltip={true}>
  91. <Link href="#组件" title="组件" />
  92. <Link href="#设计语言" title="设计语言" />
  93. <Link href="#物料平台" title="物料平台" />
  94. <Link href="#主题商店" title="主题商店" />
  95. <Link href="#显示工具提示" title="工具提示是一个有用的工具,它可以在文字缩略时展示全部内容。" />
  96. </Anchor>
  97. <br />
  98. <div>position可以设置工具提示的位置</div>
  99. <Anchor showTooltip={true} position={'right'}>
  100. <Link href="#组件" title="组件" />
  101. <Link href="#设计语言" title="设计语言" />
  102. <Link href="#物料平台" title="物料平台" />
  103. <Link href="#主题商店" title="主题商店" />
  104. <Link href="#工具提示位置" title="工具提示是一个有用的工具,它可以在文字缩略时展示全部内容。" />
  105. </Anchor>
  106. </div>
  107. ));
  108. stories.add('max-height', () => (
  109. <div>
  110. <div>设置 maxHeight 可以控制 Anchor 的高度,滚动显示 Anchor 内容</div>
  111. <br />
  112. <Anchor maxHeight={'100px'}>
  113. <Link href="#组件" title="组件" />
  114. <Link href="#设计语言" title="设计语言" />
  115. <Link href="#物料平台" title="物料平台" />
  116. <Link href="#主题商店" title="主题商店" />
  117. <Link href="#显示工具提示" title="工具提示是一个有用的工具,它可以在文字缩略时展示全部内容。" />
  118. </Anchor>
  119. </div>
  120. ));
  121. stories.add('定位方式', () => (
  122. <div>
  123. <Anchor style={{ position: 'absolute', right: 0 }} scrollMotion={false} getContainer={getContainer}>
  124. <Link href="#welcome" title="welcome" />
  125. <Link href="#api" title="api too much to show">
  126. <Link href="#docs" title="docs">
  127. <Link href="#doc1" title="doc1" />
  128. <Link href="#doc2" title="doc2" />
  129. </Link>
  130. </Link>
  131. <Link href="#contact" title="contact" />
  132. </Anchor>
  133. <div>设置style对象可以改变 Anchor 组件的定位方式,右边就是个 fixed 的 Anchor</div>
  134. <div id="box" style={{ height: '500px', overflow: 'scroll' }}>
  135. <h1 id="welcome" style={{ height: '300px' }}>
  136. Welcome
  137. </h1>
  138. <h1 id="api" style={{ height: '300px' }}>
  139. API
  140. </h1>
  141. <h2 id="docs" style={{ height: '200px' }}>
  142. Docs
  143. </h2>
  144. <h3 id="doc1" style={{ height: '100px' }}>
  145. Doc1
  146. </h3>
  147. <h3 id="doc2" style={{ height: '100px' }}>
  148. Doc2
  149. </h3>
  150. <h1 id="contact" style={{ height: '300px' }}>
  151. Contact me
  152. </h1>
  153. </div>
  154. </div>
  155. ));