import React, { useEffect, useState } from 'react'; import { StyleSheet, Text, View, Button, useColorScheme } from 'react-native'; import { SvgUri, SvgXml } from 'react-native-svg'; 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 [loading, setLoading] = useState(true); const [res, setData] = useState(null); const [imgXml, setImgXml] = useState(''); const fetchData = async () => { await fetch(`https://kanjialive-api.p.rapidapi.com/api/public/kanji/${props.kanji}`, options) .then(async response => { const data = await response.json() setData(data); const xml = await (await fetch(data.kanji.video.poster)).text(); setImgXml(xml); }) .catch(err => console.log(err)); } useEffect(() => { setLoading(true); fetchData().then(_ => { setLoading(false); }); }, []); return ( {loading ? Loading... : {res.kanji.onyomi.katakana}} {!loading && ( )} {loading ? : {res.kanji.meaning.english}}