Correcting bugs and code smells
continuous-integration/drone/push Build is passing Details

master
Arthur VALIN 2 years ago
parent dccb918a0c
commit 00ec8cf9f5

Binary file not shown.

@ -19,7 +19,6 @@ const DrawingCanva = () => {
const [strokeWidth, setStroke] = useState(5); const [strokeWidth, setStroke] = useState(5);
const [isCanvasReady, setIsCanvasReady] = useState(false); const [isCanvasReady, setIsCanvasReady] = useState(false);
const [imgXml, setImgXml] = useState('<svg></svg>'); const [imgXml, setImgXml] = useState('<svg></svg>');
const [drawnStrokes, setDrawnStrokes] = useState(0);
const selectedKanji = KanjiMapper.SerializedObjectToKanji(useSelector(state => state.kanjiReducer.selectedKanji)); const selectedKanji = KanjiMapper.SerializedObjectToKanji(useSelector(state => state.kanjiReducer.selectedKanji));
const [isVisible, setIsVisible] = useState(true); const [isVisible, setIsVisible] = useState(true);
@ -31,10 +30,6 @@ const DrawingCanva = () => {
} }
}, [canvasRef.current, selectedKanji]); }, [canvasRef.current, selectedKanji]);
const getCanvasStrokeCount = () => {
return canvasRef.current?.toPoints().length;
}
const fetchXml = async () => { const fetchXml = async () => {
if (selectedKanji instanceof Kanji) { if (selectedKanji instanceof Kanji) {
const xml = await (await fetch(selectedKanji.image)).text(); const xml = await (await fetch(selectedKanji.image)).text();

@ -5,7 +5,7 @@ import { learnihonColors } from '../assets/colors';
interface gradeChipProps { interface gradeChipProps {
grade: number; grade: number;
onSelect: (item: string, isSelected: Boolean) => void; onSelect: (item: string, isSelected: boolean) => void;
} }
const GradeChip = (props: gradeChipProps) => { const GradeChip = (props: gradeChipProps) => {

@ -1,10 +1,9 @@
import { useNavigation } from "@react-navigation/native";
import React from "react"; import React from "react";
import { FlatList, StyleSheet, View } from "react-native"; import { FlatList, StyleSheet, View } from "react-native";
import GradeChip from './GradeChip'; import GradeChip from './GradeChip';
interface kanjiListSeachPanelProps { interface kanjiListSeachPanelProps {
onSelect: (item: string, isSelected: Boolean) => void; onSelect: (item: string, isSelected: boolean) => void;
} }
const GradeChipList = (props: kanjiListSeachPanelProps) => { const GradeChipList = (props: kanjiListSeachPanelProps) => {

@ -11,9 +11,9 @@ import KanjiAnswerField from './KanjiAnswerField';
const KanjiCard = () => { const KanjiCard = () => {
var kanjiCardStyle = useColorScheme() == 'light' ? kanjiCardStyle_light : kanjiCardStyle_dark; let kanjiCardStyle = useColorScheme() == 'light' ? kanjiCardStyle_light : kanjiCardStyle_dark;
const [answerTextColor, setAnswerTextColor] = useState(kanjiCardStyle.text.color); const [answerTextColor, setAnswerTextColor] = useState(kanjiCardStyle.text.color);
var textAnswerStyle = StyleSheet.create({ let textAnswerStyle = StyleSheet.create({
text: { text: {
color: answerTextColor, color: answerTextColor,
fontWeight: "bold", fontWeight: "bold",
@ -35,7 +35,7 @@ const KanjiCard = () => {
const nextKanji = () => { const nextKanji = () => {
if (selectedItems.length) { if (selectedItems.length) {
var items= [].concat(...Object.values(selectedItems.map(it => it.data))) let items= [].concat(...Object.values(selectedItems.map(it => it.data)))
return items[Math.floor(Math.random() * items.length)] return items[Math.floor(Math.random() * items.length)]
} }
return allKanjis[Math.floor(Math.random() * allKanjis.length)] return allKanjis[Math.floor(Math.random() * allKanjis.length)]
@ -46,7 +46,7 @@ const KanjiCard = () => {
const [hasAnswered, setHasAnswered] = useState(false); const [hasAnswered, setHasAnswered] = useState(false);
const [answer, setAnswer] = React.useState(""); const [answer, setAnswer] = React.useState("");
var kanjis: KanjiListByGrade = useSelector(state => state.kanjiReducer.kanjis); let kanjis: KanjiListByGrade = useSelector(state => state.kanjiReducer.kanjis);
const allKanjis = [].concat(...Object.values(kanjis)) const allKanjis = [].concat(...Object.values(kanjis))
@ -69,7 +69,7 @@ const KanjiCard = () => {
}, [kanji]); }, [kanji]);
const computeAnswer = () => { const computeAnswer = () => {
var isCorrect = isAnswerRight(); let isCorrect = isAnswerRight();
setAnswerTextColor(isCorrect ? learnihonColors.correct : learnihonColors.wrong); setAnswerTextColor(isCorrect ? learnihonColors.correct : learnihonColors.wrong);
storeGuess(kanji?.character!, isCorrect); storeGuess(kanji?.character!, isCorrect);
setHasAnswered(true); setHasAnswered(true);

@ -12,7 +12,7 @@ const KanjiList = () => {
const kanjiListStyle = useColorScheme() == 'light' ? kanjiListStyle_light : kanjiListStyle_dark; const kanjiListStyle = useColorScheme() == 'light' ? kanjiListStyle_light : kanjiListStyle_dark;
var kanjis: KanjiListByGrade = useSelector(state => state.kanjiReducer.kanjis); let kanjis: KanjiListByGrade = useSelector(state => state.kanjiReducer.kanjis);
const [selectedItems, setSelectedItems] = useState<{title: string, data: Kanji[]}[]>([]); const [selectedItems, setSelectedItems] = useState<{title: string, data: Kanji[]}[]>([]);
const updateSelectedItems = (item: string, isSelected: Boolean) => { const updateSelectedItems = (item: string, isSelected: Boolean) => {

@ -3,7 +3,7 @@ import React, { useEffect, useMemo, useState } from 'react';
import { StyleSheet, Text, TouchableOpacity, useColorScheme } from 'react-native'; import { StyleSheet, Text, TouchableOpacity, useColorScheme } from 'react-native';
import { learnihonColors } from '../assets/colors'; import { learnihonColors } from '../assets/colors';
import { Kanji } from '../model/kanji'; import { Kanji } from '../model/kanji';
import { calcCorrectGuessesRatio, getColorByRatio, KanjiGuess } from '../model/kanjiGuess'; import { calcCorrectGuessesRatio, getColorByRatio } from '../model/kanjiGuess';
import { retrieveGuess } from '../storage/storage'; import { retrieveGuess } from '../storage/storage';
interface kanjiListCellProps { interface kanjiListCellProps {
@ -17,7 +17,7 @@ const KanjiListCell = React.memo((props: kanjiListCellProps) => {
const navigator = useNavigation(); const navigator = useNavigation();
const [guessColor, setGuessColor] = useState(cellStyle.text.color); const [guessColor, setGuessColor] = useState(cellStyle.text.color);
const [ratio, setRatio] = useState(-1); const [ratio, setRatio] = useState(-1);
var ratioStyle = StyleSheet.create({ let ratioStyle = StyleSheet.create({
text: text:
{ {
color: guessColor, color: guessColor,

@ -3,12 +3,12 @@ import { Kanji } from "./kanji";
export class KanjiMapper { export class KanjiMapper {
static ApiJsonToKanji(json: any): Kanji { static ApiJsonToKanji(json: any): Kanji {
var radical: { character: string, position: string } = { let radical: { character: string, position: string } = {
character: json.radical.character, character: json.radical.character,
position: json.radical.position.icon position: json.radical.position.icon
}; };
var examples: { japanese: string, english: string }[] = []; let examples: { japanese: string, english: string }[] = [];
json.examples.forEach( json.examples.forEach(
(entry) => { (entry) => {

@ -54,7 +54,7 @@ const Detail = ({route}) => {
<Text style={detailStyle.tinyText}>{kanji.strokes + " strokes"}</Text> <Text style={detailStyle.tinyText}>{kanji.strokes + " strokes"}</Text>
<Text style={detailStyle.meaningText}>{kanji.meaning}</Text> <Text style={detailStyle.meaningText}>{kanji.meaning}</Text>
{kanji.radical.position && kanji.radical.character && {!!(kanji.radical.position && kanji.radical.character) &&
(<> (<>
<Text style={detailStyle.title}>Radical</Text> <Text style={detailStyle.title}>Radical</Text>
<DetailRadical character={kanji.radical.character} icon={iconXml}/> <DetailRadical character={kanji.radical.character} icon={iconXml}/>

Loading…
Cancel
Save