fix: focus cursor (#695)

* fix: prevent cursor from removing focus
This commit is contained in:
Carlos Valente
2024-01-06 09:10:42 +01:00
committed by GitHub
parent 3753d51d85
commit c889d00e6b
2 changed files with 14 additions and 2 deletions
@@ -132,9 +132,19 @@ export default function EventBlock(props: EventBlockProps) {
const binderColours = colour && getAccessibleColour(colour);
// move focus to element if necessary
useEffect(() => {
if (hasCursor) {
handleRef?.current?.focus();
if (!hasCursor || handleRef?.current == null) {
return;
}
const elementInFocus = document.activeElement;
// we know the block is the grandparent of our binder
const blockElement = handleRef.current.closest('#event-block');
// we only move focus if the block doesnt already contain focus
if (blockElement && !blockElement.contains(elementInFocus)) {
handleRef.current.focus();
}
}, [hasCursor]);
@@ -184,6 +194,7 @@ export default function EventBlock(props: EventBlockProps) {
style={dragStyle}
onClick={handleFocusClick}
onContextMenu={onContextMenu}
id='event-block'
>
<div className={style.binder} style={{ ...binderColours }} tabIndex={-1}>
<span className={style.drag} ref={handleRef} {...dragAttributes} {...dragListeners}>
@@ -3,6 +3,7 @@ import { TranslationObject } from './en';
export const langIt: TranslationObject = {
'common.end_time': 'Ora di Fine',
'common.expected_finish': 'Fine Prevista',
'common.minutes': 'min',
'common.now': 'Adesso',
'common.next': 'Prossimo',
'common.public_message': 'Messaggio pubblico',