From 75be0504ab335553e3d40ceafb67bd756682254c Mon Sep 17 00:00:00 2001 From: Valery Petrov Date: Wed, 20 May 2026 14:18:54 +0300 Subject: [PATCH] issues/27: url on component --- src/api/apiSlice.js | 3 ++- src/components/Docs/Certificates.jsx | 3 ++- src/components/Docs/Portfolio.jsx | 3 ++- src/components/Docs/Stocks.jsx | 3 ++- src/hooks/useLostLocations.jsx | 4 +++- src/hooks/useSpecialist.jsx | 4 +++- src/pages/EditFilialPage.jsx | 4 +++- src/pages/EditSpecialistPage.jsx | 4 +++- src/pages/EditStockPage.jsx | 4 +++- 9 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/api/apiSlice.js b/src/api/apiSlice.js index 8056e6d..1058946 100644 --- a/src/api/apiSlice.js +++ b/src/api/apiSlice.js @@ -1,4 +1,5 @@ import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react' +import { API_BASE_URL } from '@/config/api' export const authHeader = () => { const token = localStorage.getItem('token') @@ -8,7 +9,7 @@ export const authHeader = () => { export const API = createApi({ reducerPath: 'API', baseQuery: fetchBaseQuery({ - baseUrl: 'https://api.sovamed.ru', + baseUrl: API_BASE_URL, credentials: 'include', }), endpoints: (builder) => ({ diff --git a/src/components/Docs/Certificates.jsx b/src/components/Docs/Certificates.jsx index e97ebf9..bfcbfa6 100644 --- a/src/components/Docs/Certificates.jsx +++ b/src/components/Docs/Certificates.jsx @@ -1,5 +1,6 @@ import React, { useState, useEffect } from 'react'; +import { apiUrl } from '@/config/api'; import { CertEditor } from '../Editors/CertEditor' const isValidImage = (file) => { @@ -15,7 +16,7 @@ export function CertificatesForm({ initCertificates, onChange }) { const [certificates, setCertificates] = useState([]); useEffect(() => { - const certificatesWithPictureUrl = initCertificates.map((init) => ({ ...init, picture: `https://api.sovamed.ru/uploads/${init.picture}`})) + const certificatesWithPictureUrl = initCertificates.map((init) => ({ ...init, picture: apiUrl(`/uploads/${init.picture}`)})) setInitialCertificates([...certificatesWithPictureUrl]) setCertificates([...certificatesWithPictureUrl]) }, [initCertificates]) diff --git a/src/components/Docs/Portfolio.jsx b/src/components/Docs/Portfolio.jsx index 72084bf..ff8897f 100644 --- a/src/components/Docs/Portfolio.jsx +++ b/src/components/Docs/Portfolio.jsx @@ -1,5 +1,6 @@ import React, { useState, useEffect } from 'react'; +import { apiUrl } from '@/config/api'; import { CertEditor } from '../Editors/CertEditor' const isValidImage = (file) => { @@ -17,7 +18,7 @@ export function PortfolioForm({ initPortfolios, onChange }) { useEffect(() => { // console.log(initPortfolios) const portfolioWithPictureUrl = initPortfolios.map((init) => { - if ( init.picture ) return ({ ...init, picture: `https://api.sovamed.ru/uploads/${init.picture}`}) + if ( init.picture ) return ({ ...init, picture: apiUrl(`/uploads/${init.picture}`)}) return { ...init } }) setInitialPorfolios([...portfolioWithPictureUrl]) diff --git a/src/components/Docs/Stocks.jsx b/src/components/Docs/Stocks.jsx index 18c6408..edd1471 100644 --- a/src/components/Docs/Stocks.jsx +++ b/src/components/Docs/Stocks.jsx @@ -1,5 +1,6 @@ import React, { useState, useEffect, useRef } from 'react'; +import { apiUrl } from '@/config/api'; import { CertEditor } from '../Editors/CertEditor' const isValidImage = (file) => { @@ -22,7 +23,7 @@ export function StocksForm({ initStocks, onChange }) { // console.log(initStocks[0]?.startDate) // console.log(typeof initStocks[0]?.startDate) const portfolioWithPictureUrl = initStocks.map((init) => { - if ( init.picture ) return ({ ...init, picture: `https://api.sovamed.ru/uploads/${init.picture}`}) + if ( init.picture ) return ({ ...init, picture: apiUrl(`/uploads/${init.picture}`)}) return { ...init } }).map(init => { const dateStart = new Date(init.startDate); diff --git a/src/hooks/useLostLocations.jsx b/src/hooks/useLostLocations.jsx index 58dac55..c054a21 100644 --- a/src/hooks/useLostLocations.jsx +++ b/src/hooks/useLostLocations.jsx @@ -2,6 +2,8 @@ import { useState, useEffect } from 'react'; import axios from 'axios'; import { useSelector } from 'react-redux'; +import { apiUrl } from '@/config/api'; + import { useGetFilialsQuery } from '../api/apiFilial'; import { useGetDepartmentsQuery } from '../api/apiDepartment'; import { selectRegions } from '../store/slice/regionSlice'; @@ -31,7 +33,7 @@ export function useLostDoctors() { Promise.all( data.data.map(item => { const fetchString = fetchParams.filter((param => Boolean(item[param]))).map(param => `${param}=${item[param]}`).join('&'); - return axios.get(`https://api.sovamed.ru/idoctor/list?${fetchString}`, { + return axios.get(apiUrl(`/idoctor/list?${fetchString}`), { headers: { Authorization: `Bearer ${localStorage.getItem('token')}` } }) .then(res => { diff --git a/src/hooks/useSpecialist.jsx b/src/hooks/useSpecialist.jsx index 3ce82e2..78f7d38 100644 --- a/src/hooks/useSpecialist.jsx +++ b/src/hooks/useSpecialist.jsx @@ -2,6 +2,8 @@ import { useState, useEffect } from 'react'; import axios from 'axios'; import { useSelector } from 'react-redux'; +import { apiUrl } from '@/config/api'; + import { useGetSpecialistsQuery, useGetSpecialistQuery } from '../api/apiSpecialist'; import { useGetKodopersQuery } from '../api/apiKodoper'; import { useGetFilialsQuery } from '../api/apiFilial'; @@ -27,7 +29,7 @@ export function useSpecialist(id) { Promise.all( specialist.kodoper.map(code => - axios.get(`https://api.sovamed.ru/pricelist/list?search=${code}`, { + axios.get(apiUrl(`/pricelist/list?search=${code}`), { headers: { Authorization: `Bearer ${localStorage.getItem('token')}` } }) .then(res => { diff --git a/src/pages/EditFilialPage.jsx b/src/pages/EditFilialPage.jsx index b054812..5fc135b 100644 --- a/src/pages/EditFilialPage.jsx +++ b/src/pages/EditFilialPage.jsx @@ -2,6 +2,8 @@ import { useEffect, useState, useRef } from 'react'; import { useParams, useNavigate } from 'react-router-dom'; import { useSelector } from 'react-redux'; +import { apiUrl } from '@/config/api'; + import { useGetFilialsQuery, useUpdateFilialMutation, useUploadFilialPictureMutation } from '../api/apiFilial'; import { selectUtils } from '../store/slice/utilsSlice'; import { selectRegions } from '../store/slice/regionSlice'; @@ -69,7 +71,7 @@ export const EditFilialPage = () => { email: filial.email, fid: filial.fid, origin: filial.origin, - picture: `https://api.sovamed.ru${filial.pictureLink}`, + picture: apiUrl(filial.pictureLink), policy: filial.policy, } setForm({... filialData}) diff --git a/src/pages/EditSpecialistPage.jsx b/src/pages/EditSpecialistPage.jsx index 54ddf53..651d939 100644 --- a/src/pages/EditSpecialistPage.jsx +++ b/src/pages/EditSpecialistPage.jsx @@ -2,6 +2,8 @@ import {useEffect, useState, useMemo, useRef} from 'react' import {useParams, useNavigate, useLocation } from 'react-router-dom' import DatePicker from "react-datepicker"; +import { apiUrl } from '@/config/api'; + import { useUpdateSpecialistMutation, useDeleteSpecialistMutation, useUploadSpecialistPictureMutation } from '../api/apiSpecialist' import { useCreateLocationMutation, useUpdateLocationMutation, useDeleteLocationMutation } from '/src/api/apiLocation.js' import { @@ -386,7 +388,7 @@ export const EditSpecialistPage = () => { } updateField('category', formatCategory(specialist.category)); - updateField('previewPicture', `https://api.sovamed.ru${specialist.pictureLink}`); + updateField('previewPicture', apiUrl(specialist.pictureLink)); const formattedDate = specialist.experience ? `${specialist.experience}-01-01` diff --git a/src/pages/EditStockPage.jsx b/src/pages/EditStockPage.jsx index e779c19..89443b4 100644 --- a/src/pages/EditStockPage.jsx +++ b/src/pages/EditStockPage.jsx @@ -1,6 +1,8 @@ import { useState, useEffect, useRef } from 'react'; import { useParams, useNavigate } from 'react-router-dom'; +import { apiUrl } from '@/config/api'; + import { useGetStockQuery, useUpdateStockMutation, @@ -85,7 +87,7 @@ export function EditStockPage() { name: stock.name ?? '', startDate: datetimeLocalStart, endDate: datetimeLocalEnd, - picture: stock.picture ? `https://api.sovamed.ru/uploads/${stock.picture}` : '', + picture: stock.picture ? apiUrl(`/uploads/${stock.picture}`) : '', })); setAnons( stock.anons )