芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/optimyar/wp-content/plugins/code-snippets/js/hooks/useSnippetsList.tsx
import React, { useCallback, useEffect, useState } from 'react' import { createContextHook } from '../utils/hooks' import { isNetworkAdmin } from '../utils/screen' import { useRestAPI } from './useRestAPI' import type { PropsWithChildren } from 'react' import type { Snippet } from '../types/Snippet' export interface SnippetsListContext { snippetsList: readonly Snippet[] | undefined refreshSnippetsList: () => Promise
} const [SnippetsListContext, useSnippetsList] = createContextHook
('SnippetsList') export const WithSnippetsListContext: React.FC
= ({ children }) => { const { snippetsAPI: { fetchAll } } = useRestAPI() const [snippetsList, setSnippetsList] = useState
() const refreshSnippetsList = useCallback(async (): Promise
=> { try { console.info('Fetching snippets list') const response = await fetchAll(isNetworkAdmin()) setSnippetsList(response) } catch (error: unknown) { console.error('Error fetching snippets list', error) } }, [fetchAll]) useEffect(() => { refreshSnippetsList() .catch(() => undefined) }, [refreshSnippetsList]) const value: SnippetsListContext = { snippetsList, refreshSnippetsList } return
{children}
} export { useSnippetsList }