banner.stories.jsx 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. import React, { useState } from 'react';
  2. import Banner from '../index';
  3. import Button from '@douyinfe/semi-ui/button/index';
  4. import { Layout } from '@douyinfe/semi-ui';
  5. export default {
  6. title: 'Banner',
  7. }
  8. export const Default = () => (
  9. <>
  10. <Banner description="A pre-released version is available" />
  11. <br />
  12. <Banner
  13. onClick={e => console.log('clicking banner!!!!', e.target)}
  14. onClose={e => {
  15. e.stopPropagation();
  16. }}
  17. description="A pre-released version is available A pre-released version is availableA pre-released version is availableA pre-released version is availableA pre-released version is availableA pre-released version is availableA pre-released version is available"
  18. >
  19. <Button onClick={e => e.stopPropagation()}>test</Button>
  20. </Banner>
  21. </>
  22. );
  23. export const InContainer = () => (
  24. <Banner
  25. onClick={e => console.log('clicking banner!!!!', e.target)}
  26. onClose={e => {
  27. e.stopPropagation();
  28. }}
  29. fullMode={false}
  30. title="标题"
  31. description="A pre-released version is available"
  32. >
  33. <Button onClick={e => e.stopPropagation()}>test</Button>
  34. </Banner>
  35. );
  36. export const InContainerAndBordered = () => (
  37. <Banner title="标题" bordered description="A pre-released version is available">
  38. <Button onClick={e => e.stopPropagation()}>test</Button>
  39. </Banner>
  40. );
  41. export const ShowAndHideBanner = () => {
  42. const [visible, setVisible] = useState(false);
  43. const changeVisible = () => {
  44. setVisible(!visible);
  45. };
  46. const { Header, Footer, Content } = Layout;
  47. const banner = (
  48. <Banner
  49. onClose={changeVisible}
  50. description="A pre-released version is available"
  51. />
  52. );
  53. return (
  54. <>
  55. <Layout>
  56. <Header>Header</Header>
  57. {visible? banner : null}
  58. <Content>Content</Content>
  59. <Footer>Footer</Footer>
  60. </Layout>
  61. <Button
  62. onClick={changeVisible}
  63. style={{
  64. display: 'block',
  65. width: '120px',
  66. margin: '0 auto'
  67. }}
  68. >
  69. { visible ? 'Hide Banner' : 'Show Banner' }
  70. </Button>
  71. </>
  72. );
  73. };
  74. export const MultiTypeBanner = () => (
  75. <>
  76. <Banner
  77. type="info"
  78. description="A pre-released version is available."
  79. />
  80. <br/>
  81. <Banner
  82. type="warning"
  83. description="This version of the document is going to expire after 4 days."
  84. />
  85. <br/>
  86. <Banner
  87. type="danger"
  88. description="This document was deprecated since Jan 1, 2019."
  89. />
  90. <br/>
  91. <Banner
  92. type="success"
  93. description="You are viewing the latest version of this document."
  94. />
  95. </>
  96. );