import React, { useCallback, useState } from 'react';
import {
IonButton,
IonContent,
IonPage,
IonModal,
IonHeader,
IonTitle,
IonToolbar,
} from '@ionic/react';
import { useContext } from 'react';
const Body: React.FC<{
count: number;
onDismiss: () => void;
onIncrement: () => void;
}> = ({ count, onDismiss, onIncrement }) => (
My Modal
Count in modal: {count}
onIncrement()}>
Increment Count
onDismiss()}>
Close
);
const ModalWithContext: React.FC = () => {
const ctx = useContext(MyContext);
return
{ctx.value}
;
};
const ModalComponent: React.FC = () => {
const [count, setCount] = useState(0);
const [show, setShow] = useState(false);
const [showContext, setShowContext] = useState(false);
const handleIncrement = useCallback(() => {
setCount(count + 1);
}, [count, setCount]);
return (
setShow(false)}>
setShow(false)}
onIncrement={handleIncrement}
/>
setShowContext(false)}>
{
setShow(true);
}}
>
Show Modal
{
setShow(true);
setTimeout(() => setShow(false), 250);
}}
>
Show Modal, hide after 250 ms
{
setShowContext(true);
}}
>
Show Modal with Context
Count: {count}
);
};
const MyContext = React.createContext({
value: 'default value',
});
export default ModalComponent;