Merge branch 'dev' into 'main'
запрос на ранее купленные тарифы See merge request frontend/marketplace!70
This commit is contained in:
commit
48dcc57a47
18
src/api/recentlyPurchasedTariffs.ts
Normal file
18
src/api/recentlyPurchasedTariffs.ts
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import { makeRequest } from "@frontend/kitui"
|
||||||
|
import { parseAxiosError } from "@root/utils/parse-error"
|
||||||
|
|
||||||
|
export async function getRecentlyPurchasedTariffs(): Promise<[any | null, string?]> {
|
||||||
|
try {
|
||||||
|
const recentlyPurchased = await makeRequest<never, any>({
|
||||||
|
url: "https://hub.pena.digital/customer/recent",
|
||||||
|
method: "get",
|
||||||
|
useToken: true,
|
||||||
|
})
|
||||||
|
console.log(recentlyPurchased)
|
||||||
|
return [recentlyPurchased]
|
||||||
|
} catch (nativeError) {
|
||||||
|
const [error] = parseAxiosError(nativeError)
|
||||||
|
|
||||||
|
return [null, `Не удалось получить историю. ${error}`]
|
||||||
|
}
|
||||||
|
}
|
@ -21,6 +21,7 @@ import { usePrevLocation } from "@root/utils/hooks/handleCustomBackNavigation";
|
|||||||
import { withErrorBoundary } from "react-error-boundary";
|
import { withErrorBoundary } from "react-error-boundary";
|
||||||
import { handleComponentError } from "@root/utils/handleComponentError";
|
import { handleComponentError } from "@root/utils/handleComponentError";
|
||||||
import { useHistoryStore } from "@root/stores/history";
|
import { useHistoryStore } from "@root/stores/history";
|
||||||
|
import {useRecentlyPurchasedTariffs} from "@utils/hooks/useRecentlyPurchasedTariffs"
|
||||||
|
|
||||||
const subPages = ["Шаблонизатор"/* , "Опросник", "Сокращатель ссылок" */];
|
const subPages = ["Шаблонизатор"/* , "Опросник", "Сокращатель ссылок" */];
|
||||||
|
|
||||||
@ -43,6 +44,7 @@ function TariffPage() {
|
|||||||
const isUserNko = useUserStore(state => state.userAccount?.status) === "nko";
|
const isUserNko = useUserStore(state => state.userAccount?.status) === "nko";
|
||||||
const historyData = useHistoryStore(state => state.history);
|
const historyData = useHistoryStore(state => state.history);
|
||||||
|
|
||||||
|
const {recentlyPurchased} = useRecentlyPurchasedTariffs()
|
||||||
const handleCustomBackNavigation = usePrevLocation(location);
|
const handleCustomBackNavigation = usePrevLocation(location);
|
||||||
|
|
||||||
const unit: string = String(location.pathname).slice(9);
|
const unit: string = String(location.pathname).slice(9);
|
||||||
@ -181,7 +183,7 @@ function TariffPage() {
|
|||||||
>
|
>
|
||||||
{createTariffElements(filteredTariffs, true)}
|
{createTariffElements(filteredTariffs, true)}
|
||||||
</Box>
|
</Box>
|
||||||
{tariffsFromHistory.length > 0 && (
|
{recentlyPurchased.length > 0 && (
|
||||||
<>
|
<>
|
||||||
<Typography
|
<Typography
|
||||||
sx={{
|
sx={{
|
||||||
@ -192,7 +194,7 @@ function TariffPage() {
|
|||||||
>
|
>
|
||||||
Ранее вы
|
Ранее вы
|
||||||
</Typography>
|
</Typography>
|
||||||
<Slider items={createTariffElements(tariffsFromHistory)} />
|
<Slider items={createTariffElements(recentlyPurchased)} />
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</SectionWrapper>
|
</SectionWrapper>
|
||||||
|
32
src/utils/hooks/useRecentlyPurchasedTariffs.ts
Normal file
32
src/utils/hooks/useRecentlyPurchasedTariffs.ts
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import {useEffect, useState} from "react"
|
||||||
|
import { useTariffStore } from "@root/stores/tariffs";
|
||||||
|
import {getRecentlyPurchasedTariffs} from "@root/api/recentlyPurchasedTariffs"
|
||||||
|
import { getTariffById } from "@root/api/tariff"
|
||||||
|
import {useHistoryStore} from "@stores/history"
|
||||||
|
|
||||||
|
export const useRecentlyPurchasedTariffs = () => {
|
||||||
|
const [recentlyPurchased, setRecentlyPurchased] = useState<any>([])
|
||||||
|
const tariffs = useTariffStore((state) => state.tariffs);
|
||||||
|
const historyData = useHistoryStore(state => state.history);
|
||||||
|
useEffect(() => {
|
||||||
|
async function fetchData() {
|
||||||
|
try {
|
||||||
|
const [response, errorMsg] = await getRecentlyPurchasedTariffs();
|
||||||
|
|
||||||
|
if (errorMsg) {
|
||||||
|
console.error("Произошла ошибка при вызове getRecentlyPurchasedTariffs:", errorMsg);
|
||||||
|
}
|
||||||
|
if (response) {
|
||||||
|
const recentlyTariffs = response.map((obj: { id: string })=>obj.id)
|
||||||
|
setRecentlyPurchased(tariffs.filter((tariffs)=>{
|
||||||
|
return recentlyTariffs.includes(tariffs._id)}));
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.error("Произошла ошибка при вызове getRecentlyPurchasedTariffs:", err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchData();
|
||||||
|
}, []);
|
||||||
|
return {recentlyPurchased}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user