1234567891011121314151617181920212223242526272829303132333435 |
- import { useEffect } from 'react';
- import { useDispatch } from 'react-redux';
- import { FolderDTO } from 'app/types';
- import { fetchFolderIfNotFetchedAction } from '../state/actions';
- import { initialAsyncRequestState } from '../utils/redux';
- import { useUnifiedAlertingSelector } from './useUnifiedAlertingSelector';
- interface ReturnBag {
- folder?: FolderDTO;
- loading: boolean;
- }
- export function useFolder(uid?: string): ReturnBag {
- const dispatch = useDispatch();
- const folderRequests = useUnifiedAlertingSelector((state) => state.folders);
- useEffect(() => {
- if (uid) {
- dispatch(fetchFolderIfNotFetchedAction(uid));
- }
- }, [dispatch, uid]);
- if (uid) {
- const request = folderRequests[uid] || initialAsyncRequestState;
- return {
- folder: request.result,
- loading: request.loading,
- };
- }
- return {
- loading: false,
- };
- }
|