/
githubmirror
/
ionic-framework
Обзор
Документация
Войти
/
githubmirror
/
ionic-framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/react/test/base/src/pages/overlay-components/IonModalConditionalSibling.tsx
38 строк
1 KB
Liam DeBeasi
test(react): migrate to builder architecture (#26959)
17 мар 2023, 23:21
Не верифицирован
17 мар 2023, 23:21
e3a1d7b
Код
Авторство
О чём код?
import { IonButton, IonCard, IonContent, IonModal } from '@ionic/react'; import { useRef } from 'react'; import { useState } from 'react'; /** * Issue: https://github.com/ionic-team/ionic-framework/issues/25590 * * Exception is thrown when adding/removing nodes that are siblings of IonModal, * while the modal is being dismissed. */ const IonModalConditionalSibling = () => { const [items, setItems] = useState<string[]>(['Item 1']); const [isOpen, setIsOpen] = useState(true); const modal = useRef<HTMLIonModalElement>(null); return ( <IonContent> {items && items.map((item) => <IonCard key={item}>Before {item}</IonCard>)} <IonModal ref={modal} isOpen={isOpen} onWillDismiss={() => { setItems([...items, `Item ${items.length + 1}`]); }} onDidDismiss={() => setIsOpen(false)} > <IonContent> Modal Content <IonButton onClick={() => modal.current!.dismiss()}>Close</IonButton> </IonContent> </IonModal> {items && items.map((item) => <IonCard key={item}>After {item}</IonCard>)} </IonContent> ); }; export default IonModalConditionalSibling;