mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-05-28 18:26:54 +00:00
fix(client): use requestAnimationFrame to focus editor on mount in Firefox (#66405)
This commit is contained in:
@@ -1115,10 +1115,12 @@ const Editor = (props: EditorProps): JSX.Element => {
|
||||
if (!editor || !canFocusOnMountRef.current) return;
|
||||
if (!props.usesMultifileEditor) {
|
||||
// Only one editor? Focus it.
|
||||
editor.focus();
|
||||
// Use requestAnimationFrame to ensure focus works in browsers like
|
||||
// Firefox that have stricter programmatic focus policies.
|
||||
requestAnimationFrame(() => editor.focus());
|
||||
canFocusOnMountRef.current = false;
|
||||
} else if (hasEditableRegion()) {
|
||||
editor.focus();
|
||||
requestAnimationFrame(() => editor.focus());
|
||||
canFocusOnMountRef.current = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,12 @@ test.use({
|
||||
viewport: { width: 1080, height: 720 }
|
||||
});
|
||||
|
||||
test('Editor is focused on load', async ({ page }) => {
|
||||
await page.goto(workshopChallengeUrl);
|
||||
|
||||
await expect(getEditors(page)).toBeFocused();
|
||||
});
|
||||
|
||||
test('Clicking "Check Your Code" reveals failing feedback', async ({
|
||||
page
|
||||
}) => {
|
||||
|
||||
Reference in New Issue
Block a user