| Server IP : 31.214.179.3 / Your IP : 216.73.216.84 Web Server : Apache System : Linux hostingsrv125.dondominio.com 6.12.96+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.96-1 (2026-07-20) x86_64 User : ( 1156851) PHP Version : 8.5.8 Disable Function : system,passthru,popen,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,exec,ini_alter,show_source,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,mail,eval MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /hosting/www/thermatron.es/public/wp-content/plugins/code-snippets/js/hooks/ |
Upload File : |
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<void>
}
const [SnippetsListContext, useSnippetsList] = createContextHook<SnippetsListContext>('SnippetsList')
export const WithSnippetsListContext: React.FC<PropsWithChildren> = ({ children }) => {
const { snippetsAPI: { fetchAll } } = useRestAPI()
const [snippetsList, setSnippetsList] = useState<Snippet[]>()
const refreshSnippetsList = useCallback(async (): Promise<void> => {
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 <SnippetsListContext.Provider value={value}>{children}</SnippetsListContext.Provider>
}
export { useSnippetsList }