refactor: migrate 5chan to the community hooks API (#1073)

* refactor(community-api): migrate 5chan to community hooks

* fix(review): address PR feedback

* fix(review): preserve legacy board context fallbacks

* fix(review): address latest bot feedback

* fix(review): use communityAddress in edit menu privileges
This commit is contained in:
Tommaso Casaburi
2026-03-13 13:25:10 +08:00
committed by GitHub
parent 9dc4d96d27
commit d7703953fb
105 changed files with 2659 additions and 1491 deletions
+35
View File
@@ -0,0 +1,35 @@
import { useEffect } from 'react';
import { create } from 'zustand';
import { useCommunityStats } from '@bitsocialnet/bitsocial-react-hooks';
type CommunityStatsState = {
communityStats: { [communityAddress: string]: any };
setCommunityStats: (communityAddress: string, stats: any) => void;
};
export const useCommunitiesStatsStore = create<CommunityStatsState>((set) => ({
communityStats: {},
setCommunityStats: (communityAddress, stats) =>
set((state) => ({
communityStats: { ...state.communityStats, [communityAddress]: stats },
})),
}));
export const CommunityStatsCollector = ({ communityAddress }: { communityAddress: string }) => {
const stats = useCommunityStats({ communityAddress });
const setCommunityStats = useCommunitiesStatsStore((state) => state.setCommunityStats);
useEffect(() => {
if (stats && stats.allPostCount !== undefined) {
setCommunityStats(communityAddress, stats);
}
}, [stats, communityAddress, setCommunityStats]);
return null;
};
/**
* Back-compat exports for old naming.
*/
export const useSubplebbitsStatsStore = useCommunitiesStatsStore;
export const SubplebbitStatsCollector = CommunityStatsCollector;