TestPage: Navigation - remove one unnecessary render

This commit is contained in:
Dawid Wysokiński 2021-05-25 19:29:46 +02:00
parent 279d458d34
commit 93a968e1da
2 changed files with 16 additions and 4 deletions

View File

@ -20,6 +20,16 @@ export interface NavigationProps {
reviewMode: boolean;
}
const NavigationKeyPressEvents = ({
onRequestNextTab,
onRequestPrevTab,
}: Pick<NavigationProps, 'onRequestNextTab' | 'onRequestPrevTab'>) => {
useKeyPressEvent('ArrowRight', onRequestNextTab);
useKeyPressEvent('ArrowLeft', onRequestPrevTab);
return null;
};
const Navigation = ({
hasPreviousTab,
hasNextTab,
@ -33,8 +43,6 @@ const Navigation = ({
const classes = useStyles();
const theme = useTheme();
const matches = useMediaQuery(theme.breakpoints.down('sm'));
useKeyPressEvent('ArrowRight', onRequestNextTab);
useKeyPressEvent('ArrowLeft', onRequestPrevTab);
return (
<div className={classes.buttonContainer}>
@ -70,6 +78,10 @@ const Navigation = ({
</Button>
)}
</ButtonGroup>
<NavigationKeyPressEvents
onRequestNextTab={onRequestNextTab}
onRequestPrevTab={onRequestPrevTab}
/>
</div>
);
};

View File

@ -21,7 +21,7 @@ export interface QuestionProps {
const ANSWERS = Object.values(Answer);
const QuestionKeyPressEvent = ({
const QuestionKeyPressEvents = ({
onSelectAnswer,
}: Pick<QuestionProps, 'onSelectAnswer'>) => {
useKeyPressEvent(
@ -129,7 +129,7 @@ const Question = ({
</Button>
);
})}
{current && <QuestionKeyPressEvent onSelectAnswer={onSelectAnswer} />}
{current && <QuestionKeyPressEvents onSelectAnswer={onSelectAnswer} />}
</div>
);
};