diff --git a/src/app/(auth)/login/page.tsx b/src/app/(auth)/login/page.tsx
index dc7659f..d7e2105 100644
--- a/src/app/(auth)/login/page.tsx
+++ b/src/app/(auth)/login/page.tsx
@@ -4,10 +4,11 @@ import Form from "#/components/form/form"
import { loginSchema } from "#/schema"
import { useMutation } from "@tanstack/react-query"
import { signIn } from "next-auth/react"
-import { useRouter } from "next/navigation";
+import { useRouter, useSearchParams } from "next/navigation";
export default function LoginPage() {
const router = useRouter()
+ const params = useSearchParams().get("redirect_to");
const mutation = useMutation({
mutationKey: ['login'],
@@ -26,7 +27,11 @@ export default function LoginPage() {
console.error(errorMessage)
throw new Error(result.error)
} else {
- router.push('/admin/home')
+ if (params) {
+ router.push(params);
+ } else {
+ router.push('/admin/home')
+ }
}
return result
} catch (error: any) {
@@ -47,7 +52,7 @@ export default function LoginPage() {
)
diff --git a/src/app/admin/admins/page.tsx b/src/app/admin/admins/page.tsx
index 05df663..88219a5 100644
--- a/src/app/admin/admins/page.tsx
+++ b/src/app/admin/admins/page.tsx
@@ -298,6 +298,7 @@ export default function Admins() {
columns={columns}
data={users || []}
pageSize={5}
+ isDataLoading={isLoading}
header={(table) => {
const selectedIds = table
.getRowModel()
diff --git a/src/app/admin/home/page.tsx b/src/app/admin/home/page.tsx
index bc69bc2..879891a 100644
--- a/src/app/admin/home/page.tsx
+++ b/src/app/admin/home/page.tsx
@@ -187,6 +187,7 @@ export default function HomePage () {
diff --git a/src/app/admin/layout.tsx b/src/app/admin/layout.tsx
index 16e68aa..c3ffd4f 100644
--- a/src/app/admin/layout.tsx
+++ b/src/app/admin/layout.tsx
@@ -1,9 +1,24 @@
-import { ReactNode } from "react";
+"use client"
+
+import { ReactNode, useEffect } from "react";
import "../../assets/css/admin.css"
import Sidebar from "../../components/admin/sidebar";
import Header from "../../components/admin/adminHeader";
+import { signOutFunc } from "#/lib/function";
+import { usePathname } from "next/navigation";
+import { useSession } from "next-auth/react";
export default function Dashboard({ children }: { children: ReactNode }) {
+ const { status, data } = useSession();
+ const path = usePathname();
+
+ useEffect(() => {
+ if (status !== "loading") {
+ if (status === "unauthenticated" || (data && !data.user.access_token)) {
+ signOutFunc();
+ }
+ }
+ }, [data, status, path]);
return (
diff --git a/src/app/admin/organizations/page.tsx b/src/app/admin/organizations/page.tsx
index 01b4ee7..8da469e 100644
--- a/src/app/admin/organizations/page.tsx
+++ b/src/app/admin/organizations/page.tsx
@@ -309,6 +309,7 @@ export default function Organizations() {
columns={columns}
data={companies || []}
pageSize={5}
+ isDataLoading={isLoading}
header={(table) => {
const selectedIds = table
.getRowModel()
diff --git a/src/components/admin/adminHeader.tsx b/src/components/admin/adminHeader.tsx
index 2e31708..bc6093f 100644
--- a/src/components/admin/adminHeader.tsx
+++ b/src/components/admin/adminHeader.tsx
@@ -1,17 +1,18 @@
"use client"
import Image from "next/image";
import { icons } from "#/assets/icons"
-
import * as React from "react";
import { DropdownMenu } from "radix-ui";
import Link from "next/link";
import Theme from "./theme";
+import { signOutFunc } from "#/lib/function";
import ProfilePicture from "../../assets/icons/profile.svg"
export default function AdminHeader() {
const [open, setOpen] = React.useState(false);
+
return (
<>