Current Path: > home > codekrsu > > shopceylon.store > wp-content > plugins > code-snippets > > js > hooks > >
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
useAxios.ts | File | 1368 bytes | November 27 2024 21:52:46. | |
useSnippetForm.tsx | File | 3408 bytes | November 27 2024 21:52:46. | |
useSnippetSubmit.ts | File | 2696 bytes | February 14 2025 13:16:14. | |
useSnippets.ts | File | 2640 bytes | November 27 2024 21:52:46. |
import { useEffect, useMemo, useState } from 'react' import { addQueryArgs } from '@wordpress/url' import { handleUnknownError } from '../utils/errors' import { isNetworkAdmin } from '../utils/general' import { useAxios } from './useAxios' import type { Snippet } from '../types/Snippet' import type { SnippetsExport } from '../types/SnippetsExport' import type { AxiosResponse, CreateAxiosDefaults } from 'axios' const ROUTE_BASE = window.CODE_SNIPPETS?.restAPI.snippets const AXIOS_CONFIG: CreateAxiosDefaults = { headers: { 'X-WP-Nonce': window.CODE_SNIPPETS?.restAPI.nonce } } export interface SnippetsAPI { fetchAll: (network?: boolean | null) => Promise<AxiosResponse<Snippet[]>> fetch: (snippetId: number, network?: boolean | null) => Promise<AxiosResponse<Snippet>> create: (snippet: Snippet) => Promise<AxiosResponse<Snippet>> update: (snippet: Snippet) => Promise<AxiosResponse<Snippet>> delete: (snippet: Snippet) => Promise<AxiosResponse<void>> activate: (snippet: Snippet) => Promise<AxiosResponse<Snippet>> deactivate: (snippet: Snippet) => Promise<AxiosResponse<Snippet>> export: (snippet: Snippet) => Promise<AxiosResponse<SnippetsExport>> exportCode: (snippet: Snippet) => Promise<AxiosResponse<string>> } const buildURL = ({ id, network }: Snippet, action?: string) => addQueryArgs( [ROUTE_BASE, id, action].filter(Boolean).join('/'), { network: network ? true : undefined } ) export const useSnippetsAPI = (): SnippetsAPI => { const { get, post, del } = useAxios(AXIOS_CONFIG) return useMemo((): SnippetsAPI => ({ fetchAll: network => get<Snippet[]>(addQueryArgs(ROUTE_BASE, { network })), fetch: (snippetId, network) => get<Snippet>(addQueryArgs(`${ROUTE_BASE}/${snippetId}`, { network })), create: snippet => post<Snippet, Snippet>(`${ROUTE_BASE}`, snippet), update: snippet => post<Snippet, Snippet>(buildURL(snippet), snippet), delete: (snippet: Snippet) => del(buildURL(snippet)), activate: snippet => post<Snippet, never>(buildURL(snippet, 'activate')), deactivate: snippet => post<Snippet, never>(buildURL(snippet, 'deactivate')), export: snippet => get<SnippetsExport>(buildURL(snippet, 'export')), exportCode: snippet => get<string>(buildURL(snippet, 'export-code')) }), [get, post, del]) } export const useSnippets = (): Snippet[] | undefined => { const api = useSnippetsAPI() const [snippets, setSnippets] = useState<Snippet[]>() useEffect(() => { if (!snippets) { api.fetchAll(isNetworkAdmin()) .then(response => setSnippets(response.data)) .catch(handleUnknownError) } }, [api, snippets]) return snippets }
SILENT KILLER Tool