Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3514 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3514 Rev 3521
Línea 9... Línea 9...
9
  }, [searchParams, paramName]);
9
  }, [searchParams, paramName]);
Línea 10... Línea 10...
10
 
10
 
11
  const [inputValue, setInputValue] = useState(() => getQueryFromUrl() || '');
11
  const [inputValue, setInputValue] = useState(() => getQueryFromUrl() || '');
Línea 12... Línea -...
12
  const [debouncedValue, setDebouncedValue] = useState(() => getQueryFromUrl() || '');
-
 
13
 
-
 
14
  // Efecto para inicializar inputValue desde la URL si cambia externamente
-
 
15
  // o en la carga inicial si no está configurado por el inicializador de useState
-
 
16
  useEffect(() => {
-
 
17
    const queryFromUrl = getQueryFromUrl();
-
 
18
    if (queryFromUrl !== null && queryFromUrl !== inputValue) {
-
 
19
      setInputValue(queryFromUrl);
-
 
20
    }
-
 
21
  }, [getQueryFromUrl, inputValue]);
-
 
22
 
12
  const [debouncedValue, setDebouncedValue] = useState(() => getQueryFromUrl() || '');
23
  // Efecto para retardar (debounce) inputValue a debouncedValue
13
 
24
  useEffect(() => {
14
  useEffect(() => {
25
    const handler = setTimeout(() => {
15
    const handler = setTimeout(() => {
Línea 26... Línea 16...
26
      setDebouncedValue(inputValue);
16
      setDebouncedValue(inputValue);
27
    }, debounceDelay);
17
    }, debounceDelay);
28
 
18
 
29
    return () => {
19
    return () => {
Línea 30... Línea -...
30
      clearTimeout(handler);
-
 
31
    };
20
      clearTimeout(handler);
32
  }, [inputValue, debounceDelay]);
-
 
33
 
-
 
34
  // Efecto para actualizar la URL cuando debouncedValue cambia
21
    };
35
  useEffect(() => {
-
 
36
    const currentParamValue = searchParams.get(paramName);
-
 
37
 
22
  }, [inputValue, debounceDelay]);
38
    if (debouncedValue) {
-
 
39
      if (currentParamValue !== debouncedValue) {
-
 
40
        const newSearchParams = new URLSearchParams(searchParams);
23
 
41
        newSearchParams.set(paramName, debouncedValue);
-
 
42
        setSearchParams(newSearchParams);
-
 
43
      }
-
 
44
    } else {
-
 
45
      if (currentParamValue !== null) {
-
 
46
        const newSearchParams = new URLSearchParams(searchParams);
24
  useEffect(() => {
47
        newSearchParams.delete(paramName);
25
    setSearchParams((prev) => {
Línea 48... Línea 26...
48
        setSearchParams(newSearchParams);
26
      prev.set(paramName, debouncedValue);
49
      }
27
      return prev;