| @@ -1,8 +1,8 @@ | ||
| 1 | 1 | import React, { useMemo } from 'react' |
| 2 | 2 | import axios from 'axios' |
| 3 | 3 | import { createContextHook } from '../utils/bootstrap' |
| 4 | -import { REST_API_AXIOS_CONFIG } from '../utils/restAPI' | |
| 4 | +import { REST_API_AXIOS_CONFIG, applyMethodOverride, applyRestNonce, listenForNonceRefresh } from '../utils/restAPI' | |
| 5 | 5 | import type { PropsWithChildren } from 'react' |
| 6 | 6 | import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios' |
| 7 | 7 | |
| 8 | 8 | export interface RestAPIContext { |
| @@ -57,9 +57,15 @@ | ||
| 57 | 57 | |
| 58 | 58 | const [Context, useRestAPI] = createContextHook<RestAPIContext>('useRestAPI') |
| 59 | 59 | |
| 60 | 60 | export const WithRestAPIContext: React.FC<PropsWithChildren> = ({ children }) => { |
| 61 | - const axiosInstance = useMemo(() => axios.create(REST_API_AXIOS_CONFIG), []) | |
| 61 | + const axiosInstance = useMemo(() => { | |
| 62 | + const instance = axios.create(REST_API_AXIOS_CONFIG) | |
| 63 | + instance.interceptors.request.use(applyRestNonce) | |
| 64 | + instance.interceptors.request.use(applyMethodOverride) | |
| 65 | + listenForNonceRefresh() | |
| 66 | + return instance | |
| 67 | + }, []) | |
| 62 | 68 | |
| 63 | 69 | const api = useMemo(() => buildRestAPI(axiosInstance), [axiosInstance]) |
| 64 | 70 | const value: RestAPIContext = { api, axiosInstance } |
| 65 | 71 | |