focalxaiinspection
Version:
Focalx AI Inspection
74 lines (66 loc) • 3.06 kB
JavaScript
/* eslint-disable no-script-url */
/* eslint-disable jsx-a11y/anchor-is-valid */
import React, { useEffect, useState } from 'react';
import './SelectCarPosition.scss';
import positionSheet from '../../jsonFiles/position.json';
import { Link, useNavigate } from 'react-router-dom';
let getDamageData;
const SelectCarPosition = () => {
const navigate = useNavigate();
const [positionVal, setPositionVal] = useState("");
const [positionName, setPositionName] = useState("");
const positionComponents= positionSheet.frames.map((item, index) => (
<div key={index} className="custom-radio">
<label className="position" htmlFor={item.id}>
<img src={require("../../Assets/images/carPosition/"+item.filename+".svg")} alt={item.name} />
</label>
<input onChange={(e) => handleClick(e)} type="radio" id={item.id} data-name={item.name} name="car-position" value={item.zone} />
<label htmlFor={item.id}>{item.name}</label>
</div>
));
const handleClick = (e) => {
setPositionVal(e.target.value);
setPositionName(e.target.dataset.name);
getDamageData.catZone = e.target.value;
getDamageData.position = e.target.dataset.name;
sessionStorage.setItem("manualDamage", JSON.stringify(getDamageData));
}
useEffect(() => {
getDamageData = JSON.parse(sessionStorage.getItem("manualDamage") || {});
renderImg(getDamageData.img)
},[]);
const renderImg = async(base64Img) => {
const blob = await (await fetch(base64Img)).blob();
const imageUrl = window.URL.createObjectURL(blob);
document.getElementById("damagePrevieImg").src = imageUrl;
}
const nextStep = () => {
if(positionName !== "" && positionVal !== ""){
navigate("/select-part-high-level");
}else{
alert("Kindly Select the Option.")
}
}
return(
<>
<div className="select-postion-section car-side-position">
<div className='damage-preview-container'>
<div className='preview-inner-container'>
<img id='damagePrevieImg' alt='' />
</div>
</div>
<div className="container">
<div style={{paddingBottom:"100px"}} className="select-position-wrap">
<div className="custom-radio-section custom-radio-inline-section">
{positionComponents}
</div>
</div>
</div>
</div>
<div className="action-btn-wrap bottom-action-btns">
<Link to="/damage-report" className="custom-secondary-outline-button left-side-btn justify-content-center">Back</Link>
<a onClick={() => nextStep()} className="custom-primary-button right-side-btn justify-content-center">Next</a>
</div>
</>
)};
export default SelectCarPosition;