import React, { useEffect, useState } from 'react'; import { StyleSheet, Text, View, Button, useColorScheme } from 'react-native'; import { SvgUri, SvgXml } from 'react-native-svg'; import { useSelector } from 'react-redux'; import { Kanji } from '../model/kanji'; import { KanjiListByGrade } from '../model/kanjiListByGrades'; import { KanjiMapper } from '../model/kanjiMapper'; import KanjiAnswerField from './KanjiAnswerField'; type KanjiProps = { kanji: string; } const KanjiCard = (props: KanjiProps) => { const kanjiCardStyle = useColorScheme() == 'light' ? kanjiCardStyle_light : kanjiCardStyle_dark; const options = { method: 'GET', headers: { 'X-RapidAPI-Key': '19516a9900mshce10de76f99976bp10f192jsn8c8d82222baa', 'X-RapidAPI-Host': 'kanjialive-api.p.rapidapi.com' } } const [kanji, setKanji] = useState((): Kanji | null => { return null }); const [imgXml, setImgXml] = useState(''); var kanjis: KanjiListByGrade = useSelector(state => state.kanjiReducer.kanjis); const allKanjis: Kanji[] = [].concat(...Object.values(kanjis)) const selectedKanji = allKanjis[Math.floor(Math.random() * allKanjis.length)] const fetchXml = async () => { if (kanji) { const xml = await (await fetch(kanji?.image!)).text(); setImgXml(xml); } } useEffect(() => { setKanji(selectedKanji); }, []); useEffect(() => { fetchXml().then(_ => { }); }, [kanji]); return ( {kanji?.onyomi} {kanji?.meaning}