From fc43bee5854edad6e719dab07083f8607dac607c Mon Sep 17 00:00:00 2001 From: Jamiu Shaibu Date: Sat, 15 Feb 2025 12:30:54 +0100 Subject: [PATCH] Refactor condition to include a hover match --- package-lock.json | 6 +++--- package.json | 2 +- src/LanguageSelector.jsx | 6 +++++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8f4a06c..fa296a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,13 @@ { "name": "react-language-selector-lite", - "version": "1.0.4", + "version": "1.2.9", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "react-language-selector-lite", - "version": "1.0.4", - "license": "ISC", + "version": "1.2.9", + "license": "MIT", "dependencies": { "langs": "^2.0.0", "prop-types": "^15.8.1", diff --git a/package.json b/package.json index c6a85c0..82947d5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-language-selector-lite", - "version": "1.2.8", + "version": "1.3.1", "description": "A lightweight language selector for React applications", "main": "dist/LanguageSelector.js", "types": "src/index.d.ts", diff --git a/src/LanguageSelector.jsx b/src/LanguageSelector.jsx index ae6e459..cc170d6 100644 --- a/src/LanguageSelector.jsx +++ b/src/LanguageSelector.jsx @@ -152,11 +152,15 @@ const LanguageSelector = ({ useEffect(() => { const event = lowerCase(render); const buttonElement = activeButtonRef.current; + + // Detect if the device supports hover + const canHover = window.matchMedia("(hover: hover)").matches; // Detect if the device supports touch const isTouchDevice = "ontouchstart" in window || navigator.maxTouchPoints > 0; + const renderEvent = - event === "onhover" && isTouchDevice ? "onclick" : event; + event === "onhover" && (isTouchDevice || !canHover) ? "onclick" : event; const handleMouseEnter = () => setIsOpenSelector(true); const handleMouseLeave = (e) => {