{
{/* Content Container */}
- )))
- :(
-
- )
- }
+ ))
+ ) : (
+
+ )}
{/* Navigation Buttons */}
diff --git a/apps/web/src/app/main/layout/UserMenu/types.ts b/apps/web/src/app/main/layout/UserMenu/types.ts
index f21be44..dfe4b00 100644
--- a/apps/web/src/app/main/layout/UserMenu/types.ts
+++ b/apps/web/src/app/main/layout/UserMenu/types.ts
@@ -1,6 +1,6 @@
-import React from "react";
+import React, { ReactNode } from "react";
export interface MenuItemType {
- icon: React.;
+ icon: ReactNode;
label: string;
action: () => void;
}
diff --git a/apps/web/src/components/models/course/detail/CourseDetailSkeleton.tsx b/apps/web/src/components/models/course/detail/CourseDetailSkeleton.tsx
index 95b1049..ad58cb8 100755
--- a/apps/web/src/components/models/course/detail/CourseDetailSkeleton.tsx
+++ b/apps/web/src/components/models/course/detail/CourseDetailSkeleton.tsx
@@ -2,6 +2,7 @@ import {
SkeletonItem,
SkeletonSection,
} from "@web/src/components/presentation/Skeleton";
+import { api } from "packages/client/dist";
export const CourseDetailSkeleton = () => {
return (
diff --git a/apps/web/src/hooks/useTusUpload.ts b/apps/web/src/hooks/useTusUpload.ts
index a4589a5..3f6d038 100755
--- a/apps/web/src/hooks/useTusUpload.ts
+++ b/apps/web/src/hooks/useTusUpload.ts
@@ -15,7 +15,7 @@ export function useTusUpload() {
>({});
const [isUploading, setIsUploading] = useState(false);
const [uploadError, setUploadError] = useState
(null);
-
+
const getFileId = (url: string) => {
const parts = url.split("/");
const uploadIndex = parts.findIndex((part) => part === "upload");
diff --git a/packages/client/src/api/hooks/useAppConfig.ts b/packages/client/src/api/hooks/useAppConfig.ts
index 5be578e..f38b6de 100755
--- a/packages/client/src/api/hooks/useAppConfig.ts
+++ b/packages/client/src/api/hooks/useAppConfig.ts
@@ -10,6 +10,7 @@ export function useAppConfig() {
api.app_config.findFirst.useQuery({
where: { slug: AppConfigSlug.BASE_SETTING },
});
+
const handleMutationSuccess = useCallback(() => {
utils.app_config.invalidate();
}, [utils]);
@@ -26,7 +27,8 @@ export function useAppConfig() {
});
useEffect(() => {
if (data?.meta) {
- setBaseSetting(JSON.parse(data?.meta));
+ // console.log(JSON.parse(data?.meta));
+ setBaseSetting(data?.meta);
}
}, [data, isLoading]);
const splashScreen = useMemo(() => {
@@ -38,6 +40,16 @@ export function useAppConfig() {
const slides = useMemo(() => {
return baseSetting?.appConfig?.slides || [];
}, [baseSetting]);
+ const statistics = useMemo(() => {
+ return (
+ baseSetting?.appConfig?.statistics || {
+ reads: 0,
+ staffs: 0,
+ courses: 0,
+ lectures: 0,
+ }
+ );
+ }, [baseSetting]);
return {
create,
deleteMany,
@@ -47,5 +59,6 @@ export function useAppConfig() {
devDept,
isLoading,
slides,
+ statistics,
};
}
diff --git a/packages/common/src/types.ts b/packages/common/src/types.ts
index 2a081c0..0207fb7 100755
--- a/packages/common/src/types.ts
+++ b/packages/common/src/types.ts
@@ -44,7 +44,12 @@ export interface BaseSetting {
splashScreen?: string;
devDept?: string;
slides?: [];
- reads?: number;
+ statistics?: {
+ reads?: number;
+ courses?: number;
+ lectures?: number;
+ staffs?: number;
+ };
};
}
export type RowModelResult = {