{"adoption": {"forks": 185, "observed_at": "2026-08-28T04:05:39.880227+00:00", "stars": 1815}, "canonical_url": "https://ross.abutalabs.com/products/react-onclickoutside", "card": {"archived": false, "artifact_type": "library", "description": "An onClickOutside wrapper for React components", "domain": ["frontend", "web-development"], "enriched": true, "function": ["ui-components", "middleware"], "health_score": 29, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Pomax/react-onclickoutside"], "name": "Pomax/react-onclickoutside", "platform": ["browser"], "pushed_at": "2025-04-09T01:15:04+00:00", "repo": "Pomax/react-onclickoutside", "stars": 1815, "tags": ["react", "hoc", "onclickoutside", "event-handling", "dom", "nodejs"], "topics": ["javascript", "react", "onclick", "outsideclick", "hoc"], "urls": [], "use_cases": ["close a dropdown menu when clicking outside of it", "dismiss a popover or tooltip on outside click", "hide a modal or menu when the user clicks elsewhere on the page", "detect outside clicks for a React component", "wrap a React component with an onClickOutside handler", "handle outside touch or mousedown events in React"], "what_it_is": "A React Higher Order Component (HOC) that lets components listen for clicks occurring outside of their own DOM element. It is commonly used to close menus, dropdowns, and popovers when the user clicks elsewhere on the page.", "when_to_avoid": ["you are not using React", "you prefer modern hook-based solutions like useClickOutside implemented inline", "you need a full UI component library with dropdowns and menus already handling this behavior"], "when_to_choose": ["you need a small, focused, battle-tested utility for outside-click detection in React", "you want a HOC that works with both class and stateless functional components", "you need fine-grained control over which events are listened to and which elements are skipped"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/react-onclickoutside", "repo": "Pomax/react-onclickoutside", "role": "main", "score": 30}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.880227+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.585963+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "468a7e9dfc6bf3a3e1a90bc3a6d9f076c3a485cca7180cc96250c4255d90189d", "fetched_at": "2026-08-28T04:05:39.880227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Pomax/react-onclickoutside"}, {"content_hash": "f74a289908fd5a2ce8fb6b1b74491d63c4d80669a20a7c238ec76c9e65e8a20b", "fetched_at": "2026-08-29T10:59:31.047266+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-onclickoutside"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.880227+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.585963+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "468a7e9dfc6bf3a3e1a90bc3a6d9f076c3a485cca7180cc96250c4255d90189d", "fetched_at": "2026-08-28T04:05:39.880227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Pomax/react-onclickoutside"}, {"content_hash": "f74a289908fd5a2ce8fb6b1b74491d63c4d80669a20a7c238ec76c9e65e8a20b", "fetched_at": "2026-08-29T10:59:31.047266+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-onclickoutside"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.585963+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "468a7e9dfc6bf3a3e1a90bc3a6d9f076c3a485cca7180cc96250c4255d90189d", "fetched_at": "2026-08-28T04:05:39.880227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Pomax/react-onclickoutside"}, {"content_hash": "f74a289908fd5a2ce8fb6b1b74491d63c4d80669a20a7c238ec76c9e65e8a20b", "fetched_at": "2026-08-29T10:59:31.047266+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-onclickoutside"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.880227+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.880227+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.880227+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.585963+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "468a7e9dfc6bf3a3e1a90bc3a6d9f076c3a485cca7180cc96250c4255d90189d", "fetched_at": "2026-08-28T04:05:39.880227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Pomax/react-onclickoutside"}, {"content_hash": "f74a289908fd5a2ce8fb6b1b74491d63c4d80669a20a7c238ec76c9e65e8a20b", "fetched_at": "2026-08-29T10:59:31.047266+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-onclickoutside"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.880227+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.880227+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.585963+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "468a7e9dfc6bf3a3e1a90bc3a6d9f076c3a485cca7180cc96250c4255d90189d", "fetched_at": "2026-08-28T04:05:39.880227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Pomax/react-onclickoutside"}, {"content_hash": "f74a289908fd5a2ce8fb6b1b74491d63c4d80669a20a7c238ec76c9e65e8a20b", "fetched_at": "2026-08-29T10:59:31.047266+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-onclickoutside"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.880227+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.880227+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.880227+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.585963+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "468a7e9dfc6bf3a3e1a90bc3a6d9f076c3a485cca7180cc96250c4255d90189d", "fetched_at": "2026-08-28T04:05:39.880227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Pomax/react-onclickoutside"}, {"content_hash": "f74a289908fd5a2ce8fb6b1b74491d63c4d80669a20a7c238ec76c9e65e8a20b", "fetched_at": "2026-08-29T10:59:31.047266+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-onclickoutside"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.880227+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.880227+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.585963+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "468a7e9dfc6bf3a3e1a90bc3a6d9f076c3a485cca7180cc96250c4255d90189d", "fetched_at": "2026-08-28T04:05:39.880227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Pomax/react-onclickoutside"}, {"content_hash": "f74a289908fd5a2ce8fb6b1b74491d63c4d80669a20a7c238ec76c9e65e8a20b", "fetched_at": "2026-08-29T10:59:31.047266+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-onclickoutside"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.585963+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "468a7e9dfc6bf3a3e1a90bc3a6d9f076c3a485cca7180cc96250c4255d90189d", "fetched_at": "2026-08-28T04:05:39.880227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Pomax/react-onclickoutside"}, {"content_hash": "f74a289908fd5a2ce8fb6b1b74491d63c4d80669a20a7c238ec76c9e65e8a20b", "fetched_at": "2026-08-29T10:59:31.047266+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-onclickoutside"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.585963+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "468a7e9dfc6bf3a3e1a90bc3a6d9f076c3a485cca7180cc96250c4255d90189d", "fetched_at": "2026-08-28T04:05:39.880227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Pomax/react-onclickoutside"}, {"content_hash": "f74a289908fd5a2ce8fb6b1b74491d63c4d80669a20a7c238ec76c9e65e8a20b", "fetched_at": "2026-08-29T10:59:31.047266+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-onclickoutside"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:20:37.585963+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "468a7e9dfc6bf3a3e1a90bc3a6d9f076c3a485cca7180cc96250c4255d90189d", "fetched_at": "2026-08-28T04:05:39.880227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Pomax/react-onclickoutside"}, {"content_hash": "f74a289908fd5a2ce8fb6b1b74491d63c4d80669a20a7c238ec76c9e65e8a20b", "fetched_at": "2026-08-29T10:59:31.047266+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-onclickoutside"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 15, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4257, "days_push": 512, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 30, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}