Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3658 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3658 Rev 3661
Línea 4... Línea 4...
4
  useModal,
4
  useModal,
5
  useAlert,
5
  useAlert,
6
  useAlertModal,
6
  useAlertModal,
7
  useApi,
7
  useApi,
8
  usePagination,
8
  usePagination,
9
  useInterceptionObserver
9
  useInterceptionObserver,
-
 
10
  useDebouncedSearchParam
10
} from '@shared/hooks';
11
} from '@shared/hooks';
-
 
12
import { useKnowledgeMetadata } from './useKnowledgeMetadata';
11
import { deleteKnowledge, saveKnowledge, updateKnowledge } from '@knowledges/services';
13
import { deleteKnowledge, saveKnowledge, updateKnowledge } from '@knowledges/services';
-
 
14
 
12
import { KnowledgeForm } from '@knowledges/components';
15
import { KnowledgeForm } from '@knowledges/components';
Línea 13... Línea 16...
13
 
16
 
14
export function useKnowledges(categories) {
17
export function useKnowledges() {
15
  const [addedKnowledges, setAddedKnowledges] = useState([]);
18
  const [addedKnowledges, setAddedKnowledges] = useState([]);
16
  const [editedKnowledges, setEditedKnowledges] = useState(new Map());
19
  const [editedKnowledges, setEditedKnowledges] = useState(new Map());
Línea -... Línea 20...
-
 
20
  const [deletedKnowledgeUrls, setDeletedKnowledgeUrls] = useState(new Set());
-
 
21
 
-
 
22
  const {
-
 
23
    categories,
-
 
24
    categoriesWithEdition,
-
 
25
    addUrl,
-
 
26
    imageSize,
-
 
27
    loading: loadingMetadata
-
 
28
  } = useKnowledgeMetadata();
-
 
29
 
-
 
30
  const { searchTerm, setSearchTerm, debouncedSearchTerm } = useDebouncedSearchParam('search');
-
 
31
  const {
-
 
32
    searchTerm: searchCategory,
-
 
33
    setSearchCategory,
-
 
34
    debouncedSearchCategory
17
  const [deletedKnowledgeUrls, setDeletedKnowledgeUrls] = useState(new Set());
35
  } = useDebouncedSearchParam('category_id');
Línea 18... Línea 36...
18
 
36
 
19
  const { data, loading, hasMore, loadMore, applyFilters } = usePagination('/knowledge-area/list');
37
  const { data, loading, hasMore, loadMore, applyFilters } = usePagination('/knowledge-area/list');
20
 
38
 
Línea 21... Línea 39...
21
  const { elementRef } = useInterceptionObserver({
39
  const { elementRef } = useInterceptionObserver({
22
    onIntersect: hasMore ? loadMore : undefined
40
    onIntersect: hasMore ? loadMore : undefined
23
  });
41
  });
Línea 24... Línea -...
24
 
-
 
25
  const { showModal, closeModal } = useModal();
-
 
26
  const { showAlert, closeAlert } = useAlertModal();
-
 
27
  const { showSuccess, showError } = useAlert();
-
 
28
 
-
 
29
  const handleSearch = useCallback(
-
 
30
    (searchTerm) => {
-
 
31
      applyFilters({ q: searchTerm });
42
 
32
    },
43
  const { showModal, closeModal } = useModal();
Línea 33... Línea 44...
33
    [applyFilters]
44
  const { showAlert, closeAlert } = useAlertModal();
34
  );
45
  const { showSuccess, showError } = useAlert();
Línea 84... Línea 95...
84
    (url) => {
95
    (url) => {
85
      showModal(
96
      showModal(
86
        'Agregar Conocimiento',
97
        'Agregar Conocimiento',
87
        <KnowledgeForm
98
        <KnowledgeForm
88
          categories={categories}
99
          categories={categories}
-
 
100
          imageSize={imageSize}
89
          onSubmit={(knowledge) => saveKnowledgeApi(url, knowledge)}
101
          onSubmit={(knowledge) => saveKnowledgeApi(url, knowledge)}
90
        />
102
        />
91
      );
103
      );
92
    },
104
    },
93
    [categories]
105
    [categories]
Línea 98... Línea 110...
98
      const knowledge = knowledges.find((k) => k.link_edit === url);
110
      const knowledge = knowledges.find((k) => k.link_edit === url);
99
      showModal(
111
      showModal(
100
        'Editar Conocimiento',
112
        'Editar Conocimiento',
101
        <KnowledgeForm
113
        <KnowledgeForm
102
          categories={categories}
114
          categories={categories}
-
 
115
          imageSize={imageSize}
103
          onSubmit={(knowledge) => updateKnowledgeApi(url, knowledge)}
116
          onSubmit={(knowledge) => updateKnowledgeApi(url, knowledge)}
104
          defaultValues={knowledge}
117
          defaultValues={knowledge}
105
        />
118
        />
106
      );
119
      );
107
    },
120
    },
Línea 116... Línea 129...
116
      onConfirm: () => deleteKnowledgeApi(url)
129
      onConfirm: () => deleteKnowledgeApi(url)
117
    });
130
    });
118
  }, []);
131
  }, []);
Línea 119... Línea 132...
119
 
132
 
-
 
133
  useEffect(() => {
120
  useEffect(() => {
134
    applyFilters({ q: debouncedSearchTerm });
121
    setAddedKnowledges([]);
135
    setAddedKnowledges([]);
122
    setEditedKnowledges(new Map());
136
    setEditedKnowledges(new Map());
123
    setDeletedKnowledgeUrls(new Set());
137
    setDeletedKnowledgeUrls(new Set());
Línea -... Línea 138...
-
 
138
  }, [debouncedSearchTerm]);
-
 
139
 
-
 
140
  useEffect(() => {
-
 
141
    applyFilters({ category_id: debouncedSearchCategory });
-
 
142
    setAddedKnowledges([]);
-
 
143
    setEditedKnowledges(new Map());
-
 
144
    setDeletedKnowledgeUrls(new Set());
124
  }, [debouncedSearchTerm]);
145
  }, [debouncedSearchCategory]);
125
 
146
 
-
 
147
  return {
126
  return {
148
    knowledges,
127
    knowledges,
149
    loading: loadingMetadata || loading,
-
 
150
    addUrl,
-
 
151
    searchTerm,
128
    loading,
152
    searchCategory,
-
 
153
    categoriesWithEdition,
129
    searchTerm,
154
    elementRef,
130
    elementRef,
155
    changeCategory: setSearchCategory,
131
    setSearchTerm,
156
    searchKnowledge: setSearchTerm,
132
    deleteKnowledge: handleDeleteKnowledge,
157
    deleteKnowledge: handleDeleteKnowledge,
133
    addKnowledge: handleAddKnowledge,
158
    addKnowledge: handleAddKnowledge,
134
    editKnowledge: handleEditKnowledge
159
    editKnowledge: handleEditKnowledge