0 ? 'ion-padding-top' : ''}>
+
+ {meaning.partOfSpeech}
+
+
+ {meaning.definitions.map((definition, index2) => {
+ return (
+
0 ? 'ion-padding-top' : ''}>
+ {index2 + 1}.
+ {definition.definition}
+
+ );
+ })}
+
+);
diff --git a/03_source/mobile/src/pages/DemoDictionaryApp/components/WordModal.jsx b/03_source/mobile/src/pages/DemoDictionaryApp/components/WordModal.jsx
new file mode 100644
index 0000000..0896a4b
--- /dev/null
+++ b/03_source/mobile/src/pages/DemoDictionaryApp/components/WordModal.jsx
@@ -0,0 +1,122 @@
+import {
+ IonBadge,
+ IonButton,
+ IonButtons,
+ IonCard,
+ IonCardContent,
+ IonCardHeader,
+ IonCardSubtitle,
+ IonCardTitle,
+ IonCol,
+ IonContent,
+ IonGrid,
+ IonHeader,
+ IonIcon,
+ IonNote,
+ IonPage,
+ IonRow,
+ IonText,
+ IonTitle,
+ IonToolbar,
+} from '@ionic/react';
+import { heart, heartOutline, play } from 'ionicons/icons';
+import { useStoreState } from 'pullstate';
+import { WordStore } from '../store';
+import { getFavourites } from '../store/Selectors';
+import { addToFavourites } from '../store/WordStore';
+import { WordCardHeading } from './WordCardHeading';
+import { WordMeaning } from './WordMeaning';
+
+const WordModal = ({ dismiss, word }) => {
+ const favourites = useStoreState(WordStore, getFavourites);
+ const isFavourite = favourites.includes(word);
+ const audio = word.phonetics[0] ? word.phonetics[0].audio : false;
+
+ const playAudio = () => {
+ const audioElement = new Audio(`https:${audio}`);
+ audioElement.play();
+ };
+
+ return (
+