Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugfix/combobox disable autocomplete in firefox on android #3201

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

it-vegard
Copy link
Contributor

@it-vegard it-vegard commented Oct 4, 2024

Description

Fixes #3200 temporarily.

The bug is that after three "correct" characters are entered in a row, the autocomplete inserts the third character incorrectly, messing up the text in the input.

This also happens in other implementations of autocomple, like W3C's ARIA Authoring Practices Guide combobox with inline autocomple. As such, it seems like a browser issue, so we will just shut off the feature in this browser for now, and try to revisit this later.

Component Checklist 📝

  • JSDoc
  • Examples
  • Documentation
  • Storybook
  • Style mappings (@navikt/core/css/config/_mappings.js)
  • Component tokens (@navikt/core/css/tokens.json)
  • CSS class deprecations (@navikt/aksel-stylelint/src/deprecations.ts)
  • Exports (@navikt/core/react/src/index.ts and @navikt/core/react/package.json)
  • New component? CSS import (@navikt/core/css/index.css)
  • Breaking change? Update migration guide. Consider codemod.
  • Changeset (Format: <Component>: <gitmoji?> <Text>. E.g. "Button: ✨ Add feature xyz.")

… broken in Firefox on Android

The bug is that after three "correct" characters are entered in a row, the autocomplete inserts the third character incorrectly, messing up the text in the input.
This also happens in other implementations of autocomple, like W3C's ARIA Authoring Practices Guide combobox with inline autocomple.
Copy link

changeset-bot bot commented Oct 4, 2024

🦋 Changeset detected

Latest commit: a773710

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 7 packages
Name Type
@navikt/ds-react Patch
@navikt/ds-css Patch
@navikt/ds-tokens Patch
@navikt/ds-tailwind Patch
@navikt/aksel-icons Patch
@navikt/aksel Patch
@navikt/aksel-stylelint Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Contributor

github-actions bot commented Oct 4, 2024

Storybook demo

d0c07fea2 | 90 komponenter | 141 stories

Comment on lines +62 to +65
const [isFirefoxOnAndroid, setIsFirefoxOnAndroid] = useState(false);
useEffect(() => {
setIsFirefoxOnAndroid(/Android.+Firefox\//.test(navigator.userAgent));
}, []);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to use useState and useEffect for this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was the solution we agreed on to safely use navigator.userAgent, so it does not run on the server.

I suggested just nullchecking instead, but I don't know if that would work.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can test without in /examples/next-appdir if we want to make sure.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe something like this could work:

const isFirefoxOnAndroid = /Android.+Firefox\//.test(
  typeof navigator === "undefined" ? "" : navigator.userAgent,
);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] Combobox: Autocomplete fungerer ikke skikkelig i Firefox på mobil
3 participants