mirror of
https://github.com/CommunityOx/ox_lib.git
synced 2026-08-18 15:36:02 +01:00
fix(web/skillcheck): fail on wrong key press
This commit is contained in:
@@ -14,7 +14,7 @@ interface Props {
|
|||||||
|
|
||||||
const Indicator: React.FC<Props> = ({ angle, offset, multiplier, handleComplete, skillCheck, className }) => {
|
const Indicator: React.FC<Props> = ({ angle, offset, multiplier, handleComplete, skillCheck, className }) => {
|
||||||
const [indicatorAngle, setIndicatorAngle] = useState(-90);
|
const [indicatorAngle, setIndicatorAngle] = useState(-90);
|
||||||
const [keyPressed, setKeyPressed] = useState(false);
|
const [keyPressed, setKeyPressed] = useState<false | string>(false);
|
||||||
const interval = useInterval(
|
const interval = useInterval(
|
||||||
() =>
|
() =>
|
||||||
setIndicatorAngle((prevState) => {
|
setIndicatorAngle((prevState) => {
|
||||||
@@ -25,8 +25,7 @@ const Indicator: React.FC<Props> = ({ angle, offset, multiplier, handleComplete,
|
|||||||
|
|
||||||
const keyHandler = useCallback(
|
const keyHandler = useCallback(
|
||||||
(e: KeyboardEvent) => {
|
(e: KeyboardEvent) => {
|
||||||
if (e.key.toLowerCase() !== skillCheck.key.toLowerCase()) return;
|
setKeyPressed(e.key.toLowerCase());
|
||||||
setKeyPressed(true);
|
|
||||||
},
|
},
|
||||||
[skillCheck]
|
[skillCheck]
|
||||||
);
|
);
|
||||||
@@ -49,11 +48,13 @@ const Indicator: React.FC<Props> = ({ angle, offset, multiplier, handleComplete,
|
|||||||
|
|
||||||
interval.stop();
|
interval.stop();
|
||||||
|
|
||||||
setKeyPressed(false);
|
|
||||||
window.removeEventListener('keydown', keyHandler);
|
window.removeEventListener('keydown', keyHandler);
|
||||||
|
|
||||||
if (indicatorAngle < angle || indicatorAngle > angle + offset) handleComplete(false);
|
if (keyPressed !== skillCheck.key.toLowerCase() || indicatorAngle < angle || indicatorAngle > angle + offset)
|
||||||
|
handleComplete(false);
|
||||||
else handleComplete(true);
|
else handleComplete(true);
|
||||||
|
|
||||||
|
setKeyPressed(false);
|
||||||
}, [keyPressed]);
|
}, [keyPressed]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
Reference in New Issue
Block a user