mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 09:33:46 +00:00
fix: remove dead store code and add search input maxLength
- Remove unused networkData, searchQuery, searchResults from zustand store
- Remove setNetworkData write in NetworkGraph
- Add maxLength={200} to search input
This commit is contained in:
@@ -113,8 +113,6 @@ export function NetworkGraph({ data, className }: NetworkGraphProps) {
|
||||
const hoveredNodeId = useReferralNetworkStore((s) => s.hoveredNodeId);
|
||||
const highlightedNodes = useReferralNetworkStore((s) => s.highlightedNodes);
|
||||
const filters = useReferralNetworkStore((s) => s.filters);
|
||||
const setNetworkData = useReferralNetworkStore((s) => s.setNetworkData);
|
||||
|
||||
const killFA2 = useCallback(() => {
|
||||
if (fa2TimerRef.current !== null) {
|
||||
clearTimeout(fa2TimerRef.current);
|
||||
@@ -140,8 +138,6 @@ export function NetworkGraph({ data, className }: NetworkGraphProps) {
|
||||
const graph = buildFullGraph(data);
|
||||
graphRef.current = graph;
|
||||
|
||||
setNetworkData(data);
|
||||
|
||||
// Compute initial hidden set from current filters
|
||||
const initialFilters = useReferralNetworkStore.getState().filters;
|
||||
hiddenNodesRef.current = computeHiddenNodes(graph, initialFilters);
|
||||
@@ -301,7 +297,7 @@ export function NetworkGraph({ data, className }: NetworkGraphProps) {
|
||||
setSigmaInstance(null);
|
||||
setGraphInstance(null);
|
||||
};
|
||||
}, [data, setSelectedNode, setHoveredNode, setNetworkData, killFA2]);
|
||||
}, [data, setSelectedNode, setHoveredNode, killFA2]);
|
||||
|
||||
// Recompute hidden nodes when filters change, then refresh sigma
|
||||
// (no graph rebuild — positions and Sigma instance preserved)
|
||||
|
||||
@@ -117,6 +117,7 @@ export function NetworkSearch({ className }: NetworkSearchProps) {
|
||||
ref={inputRef}
|
||||
type="text"
|
||||
value={inputValue}
|
||||
maxLength={200}
|
||||
onChange={(e) => setInputValue(e.target.value)}
|
||||
onFocus={() => {
|
||||
if (searchResults && debouncedQuery.length >= 2) setIsDropdownOpen(true);
|
||||
|
||||
@@ -1,11 +1,5 @@
|
||||
import { create } from 'zustand';
|
||||
import type {
|
||||
NetworkGraphData,
|
||||
SelectedNode,
|
||||
NetworkFilters,
|
||||
NetworkUserNode,
|
||||
NetworkCampaignNode,
|
||||
} from '@/types/referralNetwork';
|
||||
import type { SelectedNode, NetworkFilters } from '@/types/referralNetwork';
|
||||
|
||||
const DEFAULT_FILTERS: NetworkFilters = {
|
||||
campaigns: [],
|
||||
@@ -14,51 +8,33 @@ const DEFAULT_FILTERS: NetworkFilters = {
|
||||
};
|
||||
|
||||
interface ReferralNetworkState {
|
||||
networkData: NetworkGraphData | null;
|
||||
selectedNode: SelectedNode;
|
||||
hoveredNodeId: string | null;
|
||||
highlightedNodes: Set<string>;
|
||||
searchQuery: string;
|
||||
searchResults: { users: NetworkUserNode[]; campaigns: NetworkCampaignNode[] };
|
||||
filters: NetworkFilters;
|
||||
isFiltersOpen: boolean;
|
||||
|
||||
setNetworkData: (data: NetworkGraphData) => void;
|
||||
setSelectedNode: (node: SelectedNode) => void;
|
||||
setHoveredNode: (id: string | null) => void;
|
||||
setHighlightedNodes: (nodes: Set<string>) => void;
|
||||
setSearchQuery: (query: string) => void;
|
||||
setSearchResults: (results: {
|
||||
users: NetworkUserNode[];
|
||||
campaigns: NetworkCampaignNode[];
|
||||
}) => void;
|
||||
updateFilters: (filters: Partial<NetworkFilters>) => void;
|
||||
resetFilters: () => void;
|
||||
setIsFiltersOpen: (open: boolean) => void;
|
||||
}
|
||||
|
||||
export const useReferralNetworkStore = create<ReferralNetworkState>()((set) => ({
|
||||
networkData: null,
|
||||
selectedNode: null,
|
||||
hoveredNodeId: null,
|
||||
highlightedNodes: new Set<string>(),
|
||||
searchQuery: '',
|
||||
searchResults: { users: [], campaigns: [] },
|
||||
filters: { ...DEFAULT_FILTERS },
|
||||
isFiltersOpen: false,
|
||||
|
||||
setNetworkData: (data) => set({ networkData: data }),
|
||||
|
||||
setSelectedNode: (node) => set({ selectedNode: node }),
|
||||
|
||||
setHoveredNode: (id) => set({ hoveredNodeId: id }),
|
||||
|
||||
setHighlightedNodes: (nodes) => set({ highlightedNodes: nodes }),
|
||||
|
||||
setSearchQuery: (query) => set({ searchQuery: query }),
|
||||
|
||||
setSearchResults: (results) => set({ searchResults: results }),
|
||||
|
||||
updateFilters: (partial) =>
|
||||
set((state) => ({
|
||||
filters: { ...state.filters, ...partial },
|
||||
|
||||
Reference in New Issue
Block a user