UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

1 lines 1.69 kB
{"version":3,"sources":["../../../src/components/Auth/useApiConfig.ts"],"sourcesContent":["import { useMemo } from 'react';\n\n/**\n * Type definition for API client with get method\n *\n * @template T - Type extending object with get method\n */\ntype ApiClient<T = unknown> = {\n get: (endpoint: string, config?: T) => Promise<unknown>;\n};\n\n/**\n * Creates a memoized API configuration object compatible with useUrlAuthentication\n *\n * This hook wraps an API client instance to create a consistent interface\n * for the useUrlAuthentication hook, ensuring proper memoization to prevent\n * unnecessary re-renders.\n *\n * @template T - Generic type for API client configuration\n * @param {ApiClient<T>} api - Axios instance or any API client with a get method\n * @returns {object} Memoized API configuration object with get method\n *\n * @example\n * ```typescript\n * import { useApiConfig } from 'analytica-frontend-lib';\n * import { useApi } from './services/apiService';\n *\n * function App() {\n * const api = useApi();\n * const apiConfig = useApiConfig(api);\n *\n * useUrlAuthentication({\n * setTokens,\n * setSessionInfo,\n * setSelectedProfile,\n * api: apiConfig,\n * endpoint: '/auth/session-info',\n * });\n * }\n * ```\n */\nexport function useApiConfig<T = unknown>(api: ApiClient<T>) {\n return useMemo(\n () => ({\n get: (endpoint: string, config: unknown) =>\n api.get(endpoint, config as T),\n }),\n [api]\n );\n}\n"],"mappings":";AAAA,SAAS,eAAe;AAyCjB,SAAS,aAA0B,KAAmB;AAC3D,SAAO;AAAA,IACL,OAAO;AAAA,MACL,KAAK,CAAC,UAAkB,WACtB,IAAI,IAAI,UAAU,MAAW;AAAA,IACjC;AAAA,IACA,CAAC,GAAG;AAAA,EACN;AACF;","names":[]}