diff --git a/src/pages/RepositoriesPage.jsx b/src/pages/RepositoriesPage.jsx
index f5884f4..9c035e3 100644
--- a/src/pages/RepositoriesPage.jsx
+++ b/src/pages/RepositoriesPage.jsx
@@ -18,6 +18,7 @@ export default function RepositoriesPage() {
const [search, setSearch] = useState('')
const [activityClassification, setActivityClassification] = useState('All')
const [lang, setLang] = useState('All Languages')
+ const [orgFilter, setOrgFilter] = useState('All Organizations')
const [shown, setShown] = useState(20)
const [openInfo, setOpenInfo] = useState(false)
const infoRef = useRef(null)
@@ -44,12 +45,22 @@ export default function RepositoriesPage() {
['All Languages', ...new Set(allRepos.map(r => r.language).filter(Boolean))].slice(0, 10),
[allRepos])
+ const orgList = useMemo(() =>
+ ['All Organizations', ...new Set(allRepos.map(r => r.orgLogin).filter(Boolean))],
+ [allRepos])
+
+ useEffect(() => {
+ setOrgFilter('All Organizations')
+ setShown(20)
+ }, [orgList])
+
const filtered = useMemo(() => allRepos.filter(r =>
(activityClassification === 'All' || r.activityClassification === activityClassification) &&
(lang === 'All Languages' || r.language === lang) &&
+ (orgFilter === 'All Organizations' || r.orgLogin === orgFilter) &&
(!search || r.name.toLowerCase().includes(search.toLowerCase()) ||
(r.description || '').toLowerCase().includes(search.toLowerCase()))
- ), [allRepos, activityClassification, lang, search])
+ ), [allRepos, activityClassification, lang, orgFilter, search])
const { sorted, sortConfig, onSort } = useSortedData(filtered, 'healthScore', 'desc')
const visible = sorted.slice(0, shown)
@@ -166,6 +177,16 @@ export default function RepositoriesPage() {
placeholder="Filter by repository name or description..."
style={{ ...C.input, flex: 1, minWidth: 200 }}
/>
+ {orgList.length > 2 && (
+
+ )}