Preview: build-action-api-call-trigger.ts
Size: 1.07 KB
//home/byroehnu/easepay.easetack.com/node_modules/adminjs/src/frontend/interfaces/action/build-action-api-call-trigger.ts
/* eslint-disable arrow-parens */
import { AxiosResponse } from 'axios'
import { ActionResponse } from '../../../backend/index.js'
import { DifferentActionParams, useActionResponseHandler } from '../../hooks/index.js'
import { ActionJSON } from './action-json.interface.js'
import { callActionApi } from './call-action-api.js'
export type CallApiFunction<K extends ActionResponse> = () => Promise<AxiosResponse<K>>
export type BuildActionCallApiTriggerOptions = {
action: ActionJSON;
params: DifferentActionParams;
actionResponseHandler: ReturnType<typeof useActionResponseHandler>;
search?: Location['search'];
}
export const buildActionCallApiTrigger = <K extends ActionResponse>(
options: BuildActionCallApiTriggerOptions,
): CallApiFunction<K> => {
const { action, params, actionResponseHandler, search } = options
const callApi: CallApiFunction<K> = () => {
const promise = callActionApi(action, params, search)
promise.then(actionResponseHandler).catch((error) => {
throw error
})
return promise as Promise<AxiosResponse<K>>
}
return callApi
}
Directory Contents
Dirs: 0 × Files: 12