packages-rc/console-base-rc-dialog/stories/demo-special/multiple/index.tsx (72 lines of code) (raw):

import React, { useState } from 'react'; import styled from 'styled-components'; import { H1, Button } from '@alicloud/demo-rc-elements'; import Dialog from '../../../src'; const ScContentBase = styled.div` display: flex; align-items: center; justify-content: center; font-size: 24px; color: #fff; `; const Sc1 = styled(ScContentBase)` background-color: #c00; height: 600px; `; const Sc2 = styled(ScContentBase)` background-color: #0c0; height: 500px; `; const Sc3 = styled(ScContentBase)` background-color: #00c; height: 400px; `; export default function Multiple(): JSX.Element { const [yes1, setYes1] = useState<boolean>(false); const [yes2, setYes2] = useState<boolean>(false); const [yes3, setYes3] = useState<boolean>(false); return <> <H1>多个 Dialog 一起打开</H1> <Button {...{ onClick: () => setYes1(true) }}>open 1</Button> <Button {...{ onClick: () => setYes2(true) }}>open 2</Button> <Button {...{ onClick: () => setYes3(true) }}>open 3</Button> <Button {...{ onClick: () => { setYes1(true); setYes2(true); } }}>open 1 + 2</Button> <Button {...{ onClick: () => { setYes1(true); setYes2(true); setYes3(true); } }}>open 1 + 2 + 3</Button> {yes1 ? <Dialog {...{ title: '111', content: <Sc1>1111</Sc1>, onClose: () => setYes1(false) }} /> : null} {yes2 ? <Dialog {...{ title: '222', content: <Sc2>2222</Sc2>, onClose: () => setYes2(false) }} /> : null} {yes3 ? <Dialog {...{ title: '333', content: <Sc3>3333</Sc3>, onClose: () => setYes3(false) }} /> : null} </>; }