diff --git a/src/app/[name]/(Main)/hooks/useMenuData.ts b/src/app/[name]/(Main)/hooks/useMenuData.ts
index 9014294..6858d65 100644
--- a/src/app/[name]/(Main)/hooks/useMenuData.ts
+++ b/src/app/[name]/(Main)/hooks/useMenuData.ts
@@ -67,3 +67,14 @@ export const useGetNotificationsCount = () => {
enabled: hasAuthToken(),
});
};
+
+export const useGetSliders = () => {
+ const { name } = useParams<{ name: string }>();
+ return useQuery({
+ queryKey: ["sliders", name],
+ queryFn: () => api.getSliders(name),
+ enabled: !!name,
+ staleTime: 5 * 60_000,
+ refetchOnMount: "always",
+ });
+};
diff --git a/src/app/[name]/(Main)/service/MenuService.ts b/src/app/[name]/(Main)/service/MenuService.ts
index 356d758..67e8820 100644
--- a/src/app/[name]/(Main)/service/MenuService.ts
+++ b/src/app/[name]/(Main)/service/MenuService.ts
@@ -3,6 +3,7 @@ import {
CategoriesResponse,
FoodsResponse,
NotificationsCountResponse,
+ SlidersResponse,
} from "../types/Types";
export const getFoods = async (slug: string): Promise => {
@@ -29,3 +30,14 @@ export const getNotificationsCount = async (): Promise<
);
return response.data;
};
+
+export const getSliders = async (slug: string): Promise => {
+ try {
+ const response = await api.get(
+ `/public/sliders/restaurant/${slug}`,
+ );
+ return response.data;
+ } catch {
+ return { success: true, data: [] };
+ }
+};
diff --git a/src/app/[name]/(Main)/types/Types.ts b/src/app/[name]/(Main)/types/Types.ts
index 242b5af..ed58424 100644
--- a/src/app/[name]/(Main)/types/Types.ts
+++ b/src/app/[name]/(Main)/types/Types.ts
@@ -104,3 +104,17 @@ export interface NotificationsCountData {
}
export type NotificationsCountResponse = BaseResponse;
+
+export interface Slider {
+ id: string;
+ createdAt?: string;
+ updatedAt?: string;
+ deletedAt?: string | null;
+ imageUrl: string;
+ title?: string | null;
+ link?: string | null;
+ order?: number;
+ isActive?: boolean;
+}
+
+export type SlidersResponse = BaseResponse;
diff --git a/src/app/[name]/lib/prefetchMenuPage.ts b/src/app/[name]/lib/prefetchMenuPage.ts
index 48eb405..15b0a1a 100644
--- a/src/app/[name]/lib/prefetchMenuPage.ts
+++ b/src/app/[name]/lib/prefetchMenuPage.ts
@@ -3,6 +3,7 @@ import {
fetchAboutResponse,
fetchCategoriesResponse,
fetchFoodsResponse,
+ fetchSlidersResponse,
} from "./serverMenuFetch";
export async function prefetchMenuPageData(
@@ -22,5 +23,9 @@ export async function prefetchMenuPageData(
queryKey: ["categories", name],
queryFn: () => fetchCategoriesResponse(name),
}),
+ queryClient.prefetchQuery({
+ queryKey: ["sliders", name],
+ queryFn: () => fetchSlidersResponse(name),
+ }),
]);
}
diff --git a/src/app/[name]/lib/serverMenuFetch.ts b/src/app/[name]/lib/serverMenuFetch.ts
index 942c2d1..259f9b5 100644
--- a/src/app/[name]/lib/serverMenuFetch.ts
+++ b/src/app/[name]/lib/serverMenuFetch.ts
@@ -1,7 +1,11 @@
import axios from "axios";
import { API_BASE_URL } from "@/config/const";
import type { AboutResponse } from "../(Main)/about/types/Types";
-import type { CategoriesResponse, FoodsResponse } from "../(Main)/types/Types";
+import type {
+ CategoriesResponse,
+ FoodsResponse,
+ SlidersResponse,
+} from "../(Main)/types/Types";
import { getRestaurant, RESTAURANT_FETCH_TIMEOUT_MS } from "./getRestaurant";
function createServerAxios(slug: string) {
@@ -37,3 +41,17 @@ export async function fetchCategoriesResponse(
);
return data;
}
+
+export async function fetchSlidersResponse(
+ slug: string,
+): Promise {
+ try {
+ const client = createServerAxios(slug);
+ const { data } = await client.get(
+ `/public/sliders/restaurant/${slug}`,
+ );
+ return data;
+ } catch {
+ return { success: true, data: [] };
+ }
+}
diff --git a/src/config/const.ts b/src/config/const.ts
index c7007b2..be8101a 100644
--- a/src/config/const.ts
+++ b/src/config/const.ts
@@ -1,5 +1,9 @@
// export const API_BASE_URL = "https://dmenuplus-api-production.dev.danakcorp.com";
-export const API_BASE_URL = "https://dmenu-api.danakcorp.com";
-// export const API_BASE_URL = "http://192.168.99.131:2000";
+// export const API_BASE_URL = "https://dmenu-api.danakcorp.com";
+export const API_BASE_URL =
+ process.env.NEXT_PUBLIC_API_URL ??
+ (process.env.NODE_ENV === "development"
+ ? "http://192.168.99.131:2000"
+ : "https://dmenu-api.danakcorp.com");
export const TOKEN_NAME = "dmenu-t";
export const REFRESH_TOKEN_NAME = "dmenu-rt";