import React, {useEffect, useRef, useState } from 'react'; import { SketchCanvas, SketchCanvasRef } from 'rn-perfect-sketch-canvas'; import { StyleSheet, Button, View, Text, useColorScheme } from 'react-native'; import { SvgXml } from 'react-native-svg'; import Slider from '@react-native-community/slider' import { useSelector } from 'react-redux'; import { Kanji, KanjiMapper } from '../model/kanji'; type DrawingCanvaProps = { backgroundImage: string; } const DrawingCanva = (props: DrawingCanvaProps) => { const style = useColorScheme() == 'light' ? style_light : style_dark; const canvasRef = useRef(null); const [strokeWidth, setStroke] = useState(5); const [isCanvasReady, setIsCanvasReady] = useState(false); const [imgXml, setImgXml] = useState(''); const selectedKanji = KanjiMapper.SerializedObjectToKanji(useSelector(state => state.kanjiReducer.selectedKanji)); useEffect(() => { fetchXml(); if (canvasRef.current) { setIsCanvasReady(true); } }, [canvasRef.current, selectedKanji]); const fetchXml = async () => { if (selectedKanji instanceof Kanji) { const xml = await (await fetch(selectedKanji.image)).text(); setImgXml(xml); } } return ( {selectedKanji && ( )} setStroke(val)} minimumValue={5} maximumValue={10} minimumTrackTintColor={"#FF5C5C"} /> {isCanvasReady && (