/home/vianto5/hidalgoresidences.mx/wp-content/plugins/code-snippets/js/hooks
NameSizeModeActions
useAxios.ts13680644editdlrm
useFileUploadAPI.ts20000644editdlrm
useHorizontalScrollOverflow.ts13990644editdlrm
useImportersAPI.ts14450644editdlrm
useRestAPI.tsx25250644editdlrm
useSelection.ts12400644editdlrm
useSnippetForm.tsx27600644editdlrm
useSnippetsAPI.tsx37510644editdlrm
useSnippetsList.tsx14670644editdlrm
useSnippetView.ts12410644editdlrm
useSubmitSnippet.ts48600644editdlrm
useSubmitSnippet.tsx54590644editdlrm
Edit: /home/vianto5/hidalgoresidences.mx/wp-content/plugins/code-snippets/js/hooks/useSnippetsAPI.tsx (3751B)
import React, { useMemo } from 'react' import { createContextHook } from '../utils/bootstrap' import { REST_BASES } from '../utils/restAPI' import { createSnippetObject } from '../utils/snippets/snippets' import { buildUrl } from '../utils/urls' import { useRestAPI } from './useRestAPI' import type { Snippet } from '../types/Snippet' import type { SnippetsExport } from '../types/schema/SnippetsExport' import type { SnippetSchema, WritableSnippetSchema } from '../types/schema/SnippetSchema' import type { RestAPI } from './useRestAPI' import type { PropsWithChildren } from 'react' export interface SnippetsAPI { fetchAll: (network?: boolean | null) => Promise fetch: (snippetId: number, network?: boolean | null) => Promise create: (snippet: Partial) => Promise update: (snippet: Pick & Partial) => Promise delete: (snippet: Pick) => Promise restore: (snippet: Pick) => Promise activate: (snippet: Pick) => Promise deactivate: (snippet: Pick) => Promise export: (snippet: Pick) => Promise exportCode: (snippet: Pick) => Promise attach: (snippet: Pick) => Promise detach: (snippet: Pick) => Promise } const buildSnippetUrl = ({ id, network }: Pick, action?: string) => buildUrl([REST_BASES.snippets, id, action].filter(Boolean).join('/'), { network }) const mapToSchema = ({ name, desc, code, tags, scope, priority, active, network, locked, trashed, shared_network, conditionId }: Partial): WritableSnippetSchema => ({ name, desc, code, tags, scope, priority, active, network, locked, trashed, shared_network, condition_id: conditionId }) const buildSnippetsAPI = ({ get, post, del, put }: RestAPI): SnippetsAPI => ({ fetchAll: network => get(buildUrl(REST_BASES.snippets, { network })) .then(response => response.map(createSnippetObject)), fetch: (snippetId, network) => get(buildUrl(`${REST_BASES.snippets}/${snippetId}`, { network })) .then(createSnippetObject), create: snippet => post(REST_BASES.snippets, mapToSchema(snippet)) .then(createSnippetObject), update: snippet => post(snippet.id ? buildSnippetUrl(snippet) : REST_BASES.snippets, mapToSchema(snippet)) .then(createSnippetObject), delete: snippet => del(buildSnippetUrl(snippet)), restore: snippet => post(buildSnippetUrl(snippet, 'restore')), activate: snippet => post(buildSnippetUrl(snippet, 'activate')) .then(createSnippetObject), deactivate: snippet => post(buildSnippetUrl(snippet, 'deactivate')) .then(createSnippetObject), export: snippet => get(buildSnippetUrl(snippet, 'export')), exportCode: snippet => get(buildSnippetUrl(snippet, 'export-code')), attach: snippet => put(buildSnippetUrl(snippet, 'attach'), { condition_id: snippet.conditionId }), detach: snippet => put(buildSnippetUrl(snippet, 'detach')) }) const [Context, useSnippetsAPI] = createContextHook('useSnippetsAPI') export const WithSnippetsAPIContext: React.FC = ({ children }) => { const { api } = useRestAPI() const value: SnippetsAPI = useMemo(() => buildSnippetsAPI(api), [api]) return {children} } export { useSnippetsAPI }