AW-105-palmistry-points-edits

This commit is contained in:
Денис Катаев 2024-06-17 22:17:26 +00:00 committed by Daniil Chemerkin
parent 524de968e6
commit e200667823
3 changed files with 34 additions and 5 deletions

View File

@ -8,6 +8,7 @@ import { selectors } from "@/store";
import { useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import routes from "@/routes"; import routes from "@/routes";
import { IPalmistryLine } from "@/api/resources/Palmistry"; import { IPalmistryLine } from "@/api/resources/Palmistry";
import { IPalmistryFingerLocal } from "@/store/palmistry";
const drawElementChangeDelay = 1500; const drawElementChangeDelay = 1500;
const startDelay = 500; const startDelay = 500;
@ -33,7 +34,10 @@ export default function StepScanPhoto() {
const goNextElement = (delay: number) => { const goNextElement = (delay: number) => {
changeTitleTimeOut.current = setTimeout(() => { changeTitleTimeOut.current = setTimeout(() => {
setTitle(drawElements[currentElementIndex]?.name); const title =
(drawElements[currentElementIndex] as IPalmistryFingerLocal)
.fingerName || drawElements[currentElementIndex].name;
setTitle(title);
setCurrentElementIndex((prevState) => prevState + 1); setCurrentElementIndex((prevState) => prevState + 1);
}, delay); }, delay);
}; };

View File

@ -10,6 +10,28 @@ import PalmCameraModal from "../palm-camera-modal/palm-camera-modal";
import { useApi } from "@/api"; import { useApi } from "@/api";
import { useDispatch } from "react-redux"; import { useDispatch } from "react-redux";
import { actions } from "@/store"; import { actions } from "@/store";
import { IPalmistryFinger } from "@/api/resources/Palmistry";
import { IPalmistryFingerLocal } from "@/store/palmistry";
const fingersNames = {
thumb: "Thumb finger",
index_finger: "Index finger",
middle_finger: "Middle finger",
ring_finger: "Ring finger",
pinky: "Little finger",
};
const setFingersNames = (
fingers: IPalmistryFinger[]
): IPalmistryFingerLocal[] => {
if (!fingers) return [];
return fingers.map((finger) => {
return {
...finger,
fingerName: fingersNames[finger.name as keyof typeof fingersNames],
};
});
};
type Props = { type Props = {
onOpenModal: (isOpen: boolean) => void; onOpenModal: (isOpen: boolean) => void;
@ -40,11 +62,12 @@ export default function StepUpload(props: Props) {
const formData = new FormData(); const formData = new FormData();
formData.append("file", file); formData.append("file", file);
const result = await api.getPalmistryLines({ formData }); const result = await api.getPalmistryLines({ formData });
const fingers = setFingersNames(result?.fingers);
dispatch( dispatch(
actions.palmistry.update({ actions.palmistry.update({
lines: result?.lines, lines: result?.lines,
fingers: result?.fingers, fingers,
}) })
); );
}; };
@ -54,10 +77,10 @@ export default function StepUpload(props: Props) {
if (!event.target.files || event.target.files.length === 0) return; if (!event.target.files || event.target.files.length === 0) return;
await getLines(event.target.files[0]);
setIsUpladProcessing(true); setIsUpladProcessing(true);
await getLines(event.target.files[0]);
const reader = new FileReader(); const reader = new FileReader();
reader.onloadend = () => { reader.onloadend = () => {

View File

@ -2,9 +2,11 @@ import { IPalmistryFinger, IPalmistryLine } from "@/api/resources/Palmistry";
import { createSlice, createSelector } from "@reduxjs/toolkit"; import { createSlice, createSelector } from "@reduxjs/toolkit";
import type { PayloadAction } from "@reduxjs/toolkit"; import type { PayloadAction } from "@reduxjs/toolkit";
export type IPalmistryFingerLocal = IPalmistryFinger & { fingerName?: string }
interface IPalmistry { interface IPalmistry {
lines: IPalmistryLine[]; lines: IPalmistryLine[];
fingers: IPalmistryFinger[]; fingers: IPalmistryFingerLocal[];
} }
const initialState: IPalmistry = { const initialState: IPalmistry = {