code-review-fix task 12.7: add hasLoaded flag to TalibPatternPanel to prevent re-fetch on empty array
This commit is contained in:
parent
e8b8bbb56f
commit
a4bb3efa70
1 changed files with 5 additions and 3 deletions
|
|
@ -1,6 +1,6 @@
|
|||
'use client';
|
||||
|
||||
import { useState, useEffect, useCallback } from 'react';
|
||||
import { useState, useEffect, useCallback, useRef } from 'react';
|
||||
import { ChevronDown, Trash2 } from 'lucide-react';
|
||||
|
||||
interface PatternInfo {
|
||||
|
|
@ -33,21 +33,23 @@ export default function TalibPatternPanel({
|
|||
const [results, setResults] = useState<DetectionResult[]>([]);
|
||||
const [deletingLabel, setDeletingLabel] = useState<string | null>(null);
|
||||
const [isDeletingAll, setIsDeletingAll] = useState(false);
|
||||
const hasLoaded = useRef(false);
|
||||
|
||||
// Fetch available patterns when panel expands
|
||||
useEffect(() => {
|
||||
if (expanded && patterns.length === 0) {
|
||||
if (expanded && !hasLoaded.current) {
|
||||
setIsFetchingPatterns(true);
|
||||
fetch('/api/patterns/available')
|
||||
.then((r) => r.json())
|
||||
.then((data) => {
|
||||
const list: PatternInfo[] = data.patterns || data;
|
||||
setPatterns(list);
|
||||
hasLoaded.current = true;
|
||||
})
|
||||
.catch(() => setError('Failed to load patterns'))
|
||||
.finally(() => setIsFetchingPatterns(false));
|
||||
}
|
||||
}, [expanded, patterns.length]);
|
||||
}, [expanded]);
|
||||
|
||||
const handleSelectAll = () => {
|
||||
setSelectedPatterns(new Set(patterns.map((p) => p.function_name)));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue