learning
This commit is contained in:
@@ -1,78 +1,17 @@
|
||||
import { useQuery } from "@tanstack/react-query";
|
||||
// import * as api from "../service/LearningService";
|
||||
import {
|
||||
staticLearningsData,
|
||||
staticLearningDetailData,
|
||||
} from "../data/staticData";
|
||||
import * as api from "../service/LearningService";
|
||||
|
||||
export const useGetLearnings = (search: string, limit?: number) => {
|
||||
return useQuery({
|
||||
queryKey: ["learnings", search, limit],
|
||||
// queryFn: () => api.getLearnings(search, limit),
|
||||
queryFn: () => {
|
||||
// شبیهسازی delay سرور
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
let filteredData = staticLearningsData;
|
||||
|
||||
// فیلتر کردن بر اساس جستجو
|
||||
if (search) {
|
||||
filteredData = {
|
||||
data: {
|
||||
learnings: staticLearningsData.data.learnings.filter(
|
||||
(item) =>
|
||||
item.title.toLowerCase().includes(search.toLowerCase()) ||
|
||||
item.description
|
||||
.toLowerCase()
|
||||
.includes(search.toLowerCase()) ||
|
||||
item.category.name
|
||||
.toLowerCase()
|
||||
.includes(search.toLowerCase())
|
||||
),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
// محدود کردن تعداد نتایج
|
||||
if (limit) {
|
||||
filteredData = {
|
||||
data: {
|
||||
learnings: filteredData.data.learnings.slice(0, limit),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
resolve(filteredData);
|
||||
}, 500);
|
||||
});
|
||||
},
|
||||
queryFn: () => api.getLearnings(search, limit),
|
||||
});
|
||||
};
|
||||
|
||||
export const useGetLearningDetail = (id: string) => {
|
||||
return useQuery({
|
||||
queryKey: ["learning", id],
|
||||
// queryFn: () => api.getLearningDetail(id),
|
||||
queryFn: () => {
|
||||
// شبیهسازی delay سرور
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
// پیدا کردن آموزش بر اساس ID
|
||||
const learning = staticLearningsData.data.learnings.find(
|
||||
(item) => item.id === id
|
||||
);
|
||||
if (learning) {
|
||||
resolve({
|
||||
data: {
|
||||
learning: learning,
|
||||
},
|
||||
});
|
||||
} else {
|
||||
resolve(staticLearningDetailData);
|
||||
}
|
||||
}, 300);
|
||||
});
|
||||
},
|
||||
queryFn: () => api.getLearningDetail(id),
|
||||
enabled: !!id,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
// import axios from "../../../config/axios";
|
||||
import axios from "../../../config/axios";
|
||||
|
||||
// Service calls کامنت شده - در حال حاضر از دیتای استاتیک استفاده میشود
|
||||
// export const getLearnings = async (search: string, limit?: number) => {
|
||||
// const { data } = await axios.get(
|
||||
// `/learnings?q=${search}&limit=${limit ? limit : 20}`
|
||||
// );
|
||||
// return data;
|
||||
// };
|
||||
export const getLearnings = async (search: string, limit?: number) => {
|
||||
const { data } = await axios.get(
|
||||
`/public/learnings?q=${search}&limit=${limit ? limit : 20}`,
|
||||
);
|
||||
return data;
|
||||
};
|
||||
|
||||
// export const getLearningDetail = async (id: string) => {
|
||||
// const { data } = await axios.get(`/learnings/${id}`);
|
||||
// return data;
|
||||
// };
|
||||
export const getLearningDetail = async (id: string) => {
|
||||
const { data } = await axios.get(`/public/learnings/${id}`);
|
||||
return data;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user