progress.stories.jsx 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import React, { useState } from 'react';
  2. import { Progress, IconButton, Button } from '../../index';
  3. import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons';
  4. export default {
  5. title: 'Progress'
  6. }
  7. export const _Progress = () => (
  8. <div style={{ width: 200 }}>
  9. {/* <Progress percent={10} style= {{ height: 10 }}/> */}
  10. <Progress percent={25} aria-label="disk usage"/>
  11. <Progress percent={50} aria-label="disk usage"/>
  12. <Progress percent={80} aria-label="disk usage"/>
  13. </div>
  14. );
  15. _Progress.story = {
  16. name: 'progress',
  17. };
  18. export const Vertical = () => (
  19. <div style={{ height: 200 }}>
  20. <Progress percent={10} direction="vertical" style={{ width: 10 }} aria-label="disk usage"/>
  21. <Progress percent={25} direction="vertical" aria-label="disk usage"/>
  22. <Progress percent={50} direction="vertical" aria-label="disk usage"/>
  23. <Progress percent={80} direction="vertical" aria-label="disk usage"/>
  24. </div>
  25. );
  26. Vertical.story = {
  27. name: 'vertical',
  28. };
  29. export const CircleProgress = () => (
  30. <React.Fragment>
  31. <Progress percent={10} type="circle" aria-label="disk usage"/>
  32. <Progress percent={25} type="circle" aria-label="disk usage"/>
  33. <Progress percent={50} type="circle" aria-label="disk usage"/>
  34. <Progress percent={80} type="circle" aria-label="disk usage"/>
  35. </React.Fragment>
  36. );
  37. CircleProgress.story = {
  38. name: 'circle progress',
  39. };
  40. export const CircleProgressSmall = () => (
  41. <React.Fragment>
  42. <Progress percent={10} type="circle" size="small" aria-label="disk usage"/>
  43. <Progress percent={25} type="circle" size="small" aria-label="disk usage"/>
  44. <Progress percent={50} type="circle" size="small" aria-label="disk usage"/>
  45. <Progress percent={80} type="circle" size="small" aria-label="disk usage"/>
  46. </React.Fragment>
  47. );
  48. CircleProgressSmall.story = {
  49. name: 'circle progress small',
  50. };
  51. export const ProgressShowInfo = () => (
  52. <div style={{ width: 200 }}>
  53. {/* <Progress percent={10} style= {{ height: 10 }}/> */}
  54. <Progress percent={25} showInfo aria-label="disk usage"/>
  55. <Progress percent={50} showInfo aria-label="disk usage"/>
  56. <Progress percent={80} showInfo aria-label="disk usage"/>
  57. </div>
  58. );
  59. ProgressShowInfo.story = {
  60. name: 'progress showInfo',
  61. };
  62. export const CustomLineColor = () => {
  63. const [percent, setPercent] = useState(10);
  64. const strokeArr = [
  65. { percent: 20, color: 'red' },
  66. { percent: 40, color: 'orange-9' },
  67. { percent: 60, color: 'light-green-8' },
  68. { percent: 80, color: 'hsla(125, 50%, 46% / 1)' }
  69. ];
  70. return (
  71. <>
  72. <div>
  73. <Progress
  74. percent={percent}
  75. stroke={strokeArr}
  76. showInfo
  77. type="circle"
  78. width={100}
  79. aria-label="disk usage"
  80. />
  81. <Progress
  82. percent={percent}
  83. stroke={strokeArr}
  84. showInfo
  85. style={{ margin: '20px 0 10px', width: 200 }}
  86. aria-label="disk usage"
  87. />
  88. </div>
  89. <Button
  90. icon={<IconChevronLeft />}
  91. theme="light"
  92. onClick={() => {
  93. setPercent(percent - 10);
  94. }}
  95. disabled={percent === 0}
  96. />
  97. <Button
  98. icon={<IconChevronRight />}
  99. theme="light"
  100. onClick={() => {
  101. setPercent(percent + 10);
  102. }}
  103. disabled={percent === 100}
  104. />
  105. </>
  106. )
  107. }