import Slider from '@react-native-community/slider'; import React, { useEffect, useRef, useState } from 'react'; import { Button, StyleSheet, TouchableOpacity, useColorScheme, View } from 'react-native'; import { SvgXml } from 'react-native-svg'; import { SketchCanvas, SketchCanvasRef } from 'rn-perfect-sketch-canvas'; import { useSelector } from 'react-redux'; import { Kanji } from '../model/kanji'; import { KanjiMapper } from '../model/kanjiMapper'; import { Eye, EyeOff } from "react-native-feather"; import { learnihonColors } from '../assets/colors'; const DrawingCanva = () => { 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 [drawnStrokes, setDrawnStrokes] = useState(0); const selectedKanji = KanjiMapper.SerializedObjectToKanji(useSelector(state => state.kanjiReducer.selectedKanji)); const [isVisible, setIsVisible] = useState(true); useEffect(() => { fetchXml(); if (canvasRef.current) { setIsCanvasReady(true); } }, [canvasRef.current, selectedKanji]); const getCanvasStrokeCount = () => { return canvasRef.current?.toPoints().length; } const fetchXml = async () => { if (selectedKanji instanceof Kanji) { const xml = await (await fetch(selectedKanji.image)).text(); setImgXml(xml); } } return ( setIsVisible(!isVisible)}> {isVisible ? () : ()} {selectedKanji && isVisible && ( )} setStroke(val)} minimumValue={5} maximumValue={15} minimumTrackTintColor={learnihonColors.main} /> {isCanvasReady && (