;\n return (\n \n {resources.map((resource) => (\n \n ))}\n }\n onClick={onMenuClick}\n sidebarIsOpen={open}\n />\n
\n );\n};\n\nexport default Menu;\n","export const API_URL = `${process.env.REACT_APP_API_BASE_URL}/admin`;\nexport const BASE_API_URL = process.env.REACT_APP_API_BASE_URL;\n","import { fetchUtils } from 'react-admin';\n\nconst httpClient = (url: string, options: any = {}) => {\n if (!options.headers) {\n options.headers = new Headers({ Accept: 'application/json' });\n }\n const token = localStorage.getItem('token');\n options.headers.set('Authorization', `Bearer ${token}`);\n return fetchUtils.fetchJson(url, options);\n};\n\nexport default httpClient;\n","import { Create, FileField, FileInput, SimpleForm, required, useNotify, useRefresh } from 'react-admin';\n\nimport { API_URL } from 'utils/constants';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport { Resources } from 'routes/types';\nimport httpClient from 'libs/httpClient';\nimport { useCallback } from 'react';\n\nconst validateRequired = required();\n\nconst Drugs = ({ ...props }) => {\n const notify = useNotify();\n const refresh = useRefresh();\n\n const onSuccess = useCallback(() => {\n notify('Таблица загружена');\n refresh();\n }, [notify, refresh]);\n\n const save = useCallback(\n async (values) => {\n try {\n const file = values.drugs.rawFile;\n const formData = new FormData();\n formData.append('drugs', file);\n\n const url = API_URL + '/' + Resources.DRUGS;\n await httpClient(url, { method: 'POST', body: formData });\n\n onSuccess();\n } catch (error: any) {\n if (error?.body?.errors) {\n return error?.body?.errors;\n } else {\n notify('Произошла ошибка загрузки');\n }\n }\n },\n [onSuccess, notify],\n );\n\n return (\n \n \n \n \n \n