diff --git a/src/apicalls/api-fetcher.tsx b/src/(apicalls)/api-fetcher.tsx
similarity index 85%
rename from src/apicalls/api-fetcher.tsx
rename to src/(apicalls)/api-fetcher.tsx
index 9a20015..a86ec5d 100644
--- a/src/apicalls/api-fetcher.tsx
+++ b/src/(apicalls)/api-fetcher.tsx
@@ -1,5 +1,7 @@
"use server";
+import { retrieveAccessToken } from "@/(apicalls)/cookies/token";
+
const defaultHeaders = {
accept: "application/json",
"Content-type": "application/json",
@@ -20,6 +22,8 @@ interface HeadersObject {
body?: string;
}
+const cacheList = ["no-cache", "no-store", "force-cache", "only-if-cached"];
+
const prepareResponse = async (response: any) => {
try {
const responseJson = await response.json();
@@ -27,7 +31,7 @@ const prepareResponse = async (response: any) => {
const errorResponse = responseJson?.error || responseJson?.Error;
const messageResponse = (responseJson?.message || "").toString();
const completeResponse = responseJson?.completed;
-
+
const preparedResponse = {
completed: completeResponse,
message: messageResponse,
@@ -48,7 +52,7 @@ const fetchData = async (
cache: boolean = false
) => {
let headersObject: any = {
- cache: cache ? "force-cache" : "no-store",
+ cache: cache ? "force-cache" : "no-cache",
method: method,
headers: defaultHeaders,
};
@@ -67,17 +71,17 @@ const fetchData = async (
const fetchDataWithToken = async (
endpoint: string,
- token: string,
payload: any,
method: string = "POST",
cache: boolean = false
) => {
+ const accessToken = (await retrieveAccessToken()) || "";
let headersObject: any = {
- cache: cache ? "force-cache" : "no-store",
+ cache: cache ? "force-cache" : "no-cache",
method: method,
headers: {
...defaultHeaders,
- "evyos-session-key": token,
+ "evyos-session-key": accessToken,
},
};
if (method !== "GET") {
diff --git a/src/(apicalls)/basics.ts b/src/(apicalls)/basics.ts
new file mode 100644
index 0000000..43f881b
--- /dev/null
+++ b/src/(apicalls)/basics.ts
@@ -0,0 +1,47 @@
+export const baseUrl = "http://0.0.0.0:41575";
+export const tokenSecret =
+ "SyIkoYIK5JLD2cuRB0hnB-1zcj5FB5oxbB73ph-Oe3Kn0WWeSOjnWAuzzi6ZUX_5TpFF0-KGpKDZepaUhVEmmdaY5E-_sI3b9UwfN_eg-KgtpCiiWiHADSu9bRSBez_ZI4AFkeNK0LSRWpqq9El6V3pauvgsKJU_ZXwplIW49Y8";
+export const cookieObject: any = {
+ httpOnly: true,
+ path: "/",
+ secure: true,
+ sameSite: "strict",
+ // maxAge: 3600,
+};
+
+interface FilterListInterface {
+ page?: number;
+ size?: number;
+ order_field?: string;
+ order_type?: string;
+ include_joins?: any[];
+ query?: any;
+}
+
+class FilterList {
+ page?: number = 1;
+ size?: number = 5;
+ order_field?: string = "id";
+ order_type?: string = "asc";
+ include_joins?: any[] = [];
+
+ query?: any;
+ constructor({
+ page,
+ size,
+ order_field,
+ order_type,
+ include_joins,
+ query,
+ }: FilterListInterface) {
+ this.page = page || 1;
+ this.size = size || 5;
+ this.order_field = order_field || "id";
+ this.order_type = order_type || "asc";
+ this.include_joins = include_joins || [];
+ this.query = query || {};
+ }
+}
+
+export { FilterList };
+export type { FilterListInterface };
diff --git a/src/(apicalls)/building/build.tsx b/src/(apicalls)/building/build.tsx
new file mode 100644
index 0000000..7a0878b
--- /dev/null
+++ b/src/(apicalls)/building/build.tsx
@@ -0,0 +1,18 @@
+"use server";
+import { fetchData, fetchDataWithToken } from "../api-fetcher";
+import { baseUrl, FilterList, FilterListInterface } from "../basics";
+
+const buildListEndpoint = `${baseUrl}/building/build/list`;
+
+async function retrieveBuildList(payload: FilterListInterface) {
+ const feedObject = new FilterList(payload);
+ const tokenResponse: any = await fetchDataWithToken(
+ buildListEndpoint,
+ feedObject,
+ "POST",
+ false
+ );
+ return tokenResponse;
+}
+
+export { retrieveBuildList };
diff --git a/src/apicalls/cookies/token.tsx b/src/(apicalls)/cookies/token.tsx
similarity index 64%
rename from src/apicalls/cookies/token.tsx
rename to src/(apicalls)/cookies/token.tsx
index 9fa25b6..c111bf5 100644
--- a/src/apicalls/cookies/token.tsx
+++ b/src/(apicalls)/cookies/token.tsx
@@ -1,29 +1,18 @@
"use server";
import { fetchDataWithToken } from "../api-fetcher";
+import { baseUrl, tokenSecret } from "../basics";
import { cookies } from "next/headers";
-import { baseUrl, cookieObject, tokenSecret } from "@/apicalls/basics";
import NextCrypto from "next-crypto";
const checkToken = `${baseUrl}/authentication/valid`;
const nextCrypto = new NextCrypto(tokenSecret);
-async function check_access_token_is_valid() {
- const cookieStore = await cookies();
- const encrpytAccessToken = cookieStore.get("accessToken")?.value || "";
- const decryptedAccessToken =
- (await nextCrypto.decrypt(encrpytAccessToken)) || "";
-
- const response = await fetchDataWithToken(
- checkToken,
- decryptedAccessToken,
- {},
- "GET",
- false
- );
+async function checkAccessTokenIsValid() {
+ const response = await fetchDataWithToken(checkToken, {}, "GET", false);
return response?.status === 200 ? true : false;
}
-async function retrieve_access_token() {
+async function retrieveAccessToken() {
const cookieStore = await cookies();
const encrpytAccessToken = cookieStore.get("accessToken")?.value || "";
return encrpytAccessToken
@@ -31,7 +20,7 @@ async function retrieve_access_token() {
: null;
}
-async function retrieve_user_type() {
+async function retrieveUserType() {
const cookieStore = await cookies();
const encrpytaccessObject = cookieStore.get("accessObject")?.value || "{}";
const decrpytUserType = JSON.parse(
@@ -40,14 +29,14 @@ async function retrieve_user_type() {
return decrpytUserType ? decrpytUserType?.user_type : null;
}
-async function retrieve_access_objects() {
+async function retrieveAccessObjects() {
const cookieStore = await cookies();
const encrpytAccessObject = cookieStore.get("accessObject")?.value || "";
const decrpytAccessObject = await nextCrypto.decrypt(encrpytAccessObject);
return decrpytAccessObject ? JSON.parse(decrpytAccessObject) : null;
}
-async function retrieve_available_events() {
+async function retrieveAvailableEvents() {
const cookieStore = await cookies();
const encrpytAccessObject = cookieStore.get("availableEvents")?.value || "";
const decrpytAccessObject = await nextCrypto.decrypt(encrpytAccessObject);
@@ -55,9 +44,9 @@ async function retrieve_available_events() {
}
export {
- check_access_token_is_valid,
- retrieve_access_token,
- retrieve_user_type,
- retrieve_access_objects,
- retrieve_available_events,
+ checkAccessTokenIsValid,
+ retrieveAccessToken,
+ retrieveUserType,
+ retrieveAccessObjects,
+ retrieveAvailableEvents,
};
diff --git a/src/(apicalls)/dashboard/menu.tsx b/src/(apicalls)/dashboard/menu.tsx
new file mode 100644
index 0000000..c77ce4f
--- /dev/null
+++ b/src/(apicalls)/dashboard/menu.tsx
@@ -0,0 +1,11 @@
+"use server";
+import { fetchDataWithToken } from "../api-fetcher";
+import { baseUrl } from "../basics";
+
+const eventList = `${baseUrl}/event/list`;
+
+async function retrieveEventList() {
+ return await fetchDataWithToken(eventList, {}, "GET", false);
+}
+
+export { retrieveEventList };
diff --git a/src/apicalls/events/available.tsx b/src/(apicalls)/events/available.tsx
similarity index 84%
rename from src/apicalls/events/available.tsx
rename to src/(apicalls)/events/available.tsx
index 4a83073..561c60a 100644
--- a/src/apicalls/events/available.tsx
+++ b/src/(apicalls)/events/available.tsx
@@ -1,18 +1,17 @@
"use server";
import { fetchDataWithToken } from "../api-fetcher";
import { cookies } from "next/headers";
-import { baseUrl, cookieObject, tokenSecret } from "@/apicalls/basics";
+import { baseUrl, cookieObject, tokenSecret } from "../basics";
import NextCrypto from "next-crypto";
const availableEventsURL = `${baseUrl}/access/endpoints/available`;
-async function setAvailableEvents(accessToken: string) {
+async function setAvailableEvents() {
const cookieStore = await cookies();
const nextCrypto = new NextCrypto(tokenSecret);
const availableResponse: any = await fetchDataWithToken(
availableEventsURL,
- accessToken,
{},
"POST",
false
diff --git a/src/apicalls/login/login.tsx b/src/(apicalls)/login/login.tsx
similarity index 87%
rename from src/apicalls/login/login.tsx
rename to src/(apicalls)/login/login.tsx
index 382906d..c64741a 100644
--- a/src/apicalls/login/login.tsx
+++ b/src/(apicalls)/login/login.tsx
@@ -1,8 +1,9 @@
"use server";
import { fetchData, fetchDataWithToken } from "../api-fetcher";
import { cookies } from "next/headers";
-import { baseUrl, cookieObject, tokenSecret } from "@/apicalls/basics";
+import { baseUrl, cookieObject, tokenSecret } from "../basics";
import NextCrypto from "next-crypto";
+import { setAvailableEvents } from "../events/available";
const loginEndpoint = `${baseUrl}/authentication/login`;
const loginSelectEndpoint = `${baseUrl}/authentication/select`;
@@ -15,17 +16,15 @@ interface LoginViaAccessKeys {
}
interface LoginSelectEmployee {
- token: string;
company_uu_id: string;
}
interface LoginSelectOccupant {
- token: string;
build_part_uu_id: string;
occupant_uu_id: string;
}
-async function login_via_access_keys(payload: LoginViaAccessKeys) {
+async function loginViaAccessKeys(payload: LoginViaAccessKeys) {
const cookieStore = await cookies();
const nextCrypto = new NextCrypto(tokenSecret);
@@ -83,13 +82,12 @@ async function login_via_access_keys(payload: LoginViaAccessKeys) {
return tokenResponse;
}
-async function login_select_employee(payload: LoginSelectEmployee) {
+async function loginSelectEmployee(payload: LoginSelectEmployee) {
const cookieStore = await cookies();
const nextCrypto = new NextCrypto(tokenSecret);
const selectResponse: any = await fetchDataWithToken(
loginSelectEndpoint,
- payload.token,
{
company_uu_id: payload.company_uu_id,
},
@@ -108,16 +106,16 @@ async function login_select_employee(payload: LoginSelectEmployee) {
value: usersSelection,
...cookieObject,
});
+ await setAvailableEvents();
}
return selectResponse;
}
-async function login_select_occupant(payload: LoginSelectOccupant) {
+async function loginSelectOccupant(payload: LoginSelectOccupant) {
const cookieStore = await cookies();
const nextCrypto = new NextCrypto(tokenSecret);
const selectResponse: any = await fetchDataWithToken(
loginSelectEndpoint,
- payload.token,
{
build_part_uu_id: payload.build_part_uu_id,
occupant_uu_id: payload.occupant_uu_id,
@@ -140,8 +138,9 @@ async function login_select_occupant(payload: LoginSelectOccupant) {
value: usersSelection,
...cookieObject,
});
+ await setAvailableEvents();
}
return selectResponse;
}
-export { login_via_access_keys, login_select_employee, login_select_occupant };
+export { loginViaAccessKeys, loginSelectEmployee, loginSelectOccupant };
diff --git a/src/apicalls/login/logout.tsx b/src/(apicalls)/login/logout.tsx
similarity index 80%
rename from src/apicalls/login/logout.tsx
rename to src/(apicalls)/login/logout.tsx
index eb8001d..51dbd75 100644
--- a/src/apicalls/login/logout.tsx
+++ b/src/(apicalls)/login/logout.tsx
@@ -1,17 +1,16 @@
"use server";
import { fetchDataWithToken } from "../api-fetcher";
import { cookies } from "next/headers";
-import { baseUrl } from "@/apicalls/basics";
+import { baseUrl } from "../basics";
const logOutEndpoint = `${baseUrl}/authentication/logout`;
const logOutAllEndpoint = `${baseUrl}/authentication/disconnect`;
interface LoginOutUser {
- token: string;
domain: string;
}
-async function logout_active_session(payload: LoginOutUser) {
+async function logoutActiveSession(payload: LoginOutUser) {
const cookieStore = await cookies();
cookieStore.delete("accessToken");
cookieStore.delete("accessObject");
@@ -20,7 +19,6 @@ async function logout_active_session(payload: LoginOutUser) {
const tokenResponse: any = await fetchDataWithToken(
logOutEndpoint,
- payload.token,
{
domain: payload.domain,
},
@@ -33,7 +31,7 @@ async function logout_active_session(payload: LoginOutUser) {
return false;
}
-async function logout_all_sessions(payload: LoginOutUser) {
+async function logoutAllSessions(payload: LoginOutUser) {
const cookieStore = await cookies();
cookieStore.delete("accessToken");
cookieStore.delete("accessObject");
@@ -41,7 +39,6 @@ async function logout_all_sessions(payload: LoginOutUser) {
cookieStore.delete("userSelection");
const tokenResponse: any = await fetchDataWithToken(
logOutAllEndpoint,
- payload.token,
{
domain: payload.domain,
},
@@ -54,4 +51,4 @@ async function logout_all_sessions(payload: LoginOutUser) {
return false;
}
-export { logout_active_session, logout_all_sessions };
+export { logoutActiveSession, logoutAllSessions };
diff --git a/src/apicalls/login/password.tsx b/src/(apicalls)/login/password.tsx
similarity index 94%
rename from src/apicalls/login/password.tsx
rename to src/(apicalls)/login/password.tsx
index 1b75ee5..c56b610 100644
--- a/src/apicalls/login/password.tsx
+++ b/src/(apicalls)/login/password.tsx
@@ -1,6 +1,6 @@
"use server";
import { fetchData, fetchDataWithToken } from "../api-fetcher";
-import { baseUrl } from "@/apicalls/basics";
+import { baseUrl } from "../basics";
const createPasswordEndpoint = `${baseUrl}/authentication/create_password`;
const changePasswordEndpoint = `${baseUrl}/authentication/change_password`;
@@ -13,7 +13,6 @@ interface createPasswordViaToken {
}
interface changePasswordViaToken {
- accessToken: string;
oldPassword: string;
newPassword: string;
}
@@ -40,7 +39,6 @@ async function create_password_via_token(payload: createPasswordViaToken) {
async function change_password_via_token(payload: changePasswordViaToken) {
const changePasswordResponse: any = await fetchDataWithToken(
changePasswordEndpoint,
- payload.accessToken,
{
old_password: payload.oldPassword,
new_password: payload.newPassword,
diff --git a/src/apicalls/basics.ts b/src/apicalls/basics.ts
deleted file mode 100644
index 4a5705f..0000000
--- a/src/apicalls/basics.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-export const baseUrl = "http://0.0.0.0:41575";
-export const tokenSecret =
- "SyIkoYIK5JLD2cuRB0hnB-1zcj5FB5oxbB73ph-Oe3Kn0WWeSOjnWAuzzi6ZUX_5TpFF0-KGpKDZepaUhVEmmdaY5E-_sI3b9UwfN_eg-KgtpCiiWiHADSu9bRSBez_ZI4AFkeNK0LSRWpqq9El6V3pauvgsKJU_ZXwplIW49Y8";
-export const cookieObject: any = {
- httpOnly: true,
- path: "/",
- secure: true,
- sameSite: "strict",
- // maxAge: 3600,
-};
diff --git a/src/apicalls/dashboard/menu.tsx b/src/apicalls/dashboard/menu.tsx
deleted file mode 100644
index 1bb7756..0000000
--- a/src/apicalls/dashboard/menu.tsx
+++ /dev/null
@@ -1,27 +0,0 @@
-"use server";
-import { fetchDataWithToken } from "../api-fetcher";
-import { cookies } from "next/headers";
-import { baseUrl, cookieObject, tokenSecret } from "@/apicalls/basics";
-import NextCrypto from "next-crypto";
-
-const eventList = `${baseUrl}/event/list`;
-const nextCrypto = new NextCrypto(tokenSecret);
-
-async function retrieve_event_list() {
- const cookieStore = await cookies();
- const encrpytAccessToken = cookieStore.get("accessToken")?.value || "";
- const decryptedAccessToken =
- (await nextCrypto.decrypt(encrpytAccessToken)) || "";
-
- const response = await fetchDataWithToken(
- eventList,
- decryptedAccessToken,
- {},
- "GET",
- false
- );
- console.log("response", response);
- return response;
-}
-
-export { retrieve_event_list };
diff --git a/src/app/build/page.tsx b/src/app/build/page.tsx
index a107815..5a0a315 100644
--- a/src/app/build/page.tsx
+++ b/src/app/build/page.tsx
@@ -1,4 +1,5 @@
"use server";
+
import React from "react";
const BuildPage: React.FC = async () => {
diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx
index 2ccd073..a1a14b2 100644
--- a/src/app/dashboard/page.tsx
+++ b/src/app/dashboard/page.tsx
@@ -2,29 +2,24 @@
import React from "react";
import { redirect } from "next/navigation";
import {
- check_access_token_is_valid,
- retrieve_access_token,
- retrieve_available_events,
-} from "@/apicalls/cookies/token";
+ checkAccessTokenIsValid,
+ retrieveAvailableEvents,
+} from "@/(apicalls)/cookies/token";
import DashboardPage from "@/components/Dashboards/DashboardPage";
import { retrieveAvailableCategories } from "@/appEvents/categories";
const Dashboard: React.FC = async () => {
- const accessToken = (await retrieve_access_token()) || "";
- const token_is_valid = await check_access_token_is_valid();
+ const token_is_valid = await checkAccessTokenIsValid();
+
if (!token_is_valid) {
redirect("/login/email");
}
-
- const eventsList = await retrieve_available_events();
- const availableMenu = retrieveAvailableCategories(eventsList);
+ const eventsList = await retrieveAvailableEvents();
+ const availableMenu = retrieveAvailableCategories(eventsList || []);
return (
-
-
-
+ <>
+
+ >
);
};
diff --git a/src/app/login/email/page.tsx b/src/app/login/email/page.tsx
index 3aaf12f..aa1ba6b 100644
--- a/src/app/login/email/page.tsx
+++ b/src/app/login/email/page.tsx
@@ -1,10 +1,10 @@
"use server";
import LoginWithEmail from "@/components/login/loginwithemail";
-import { check_access_token_is_valid } from "@/apicalls/cookies/token";
+import { checkAccessTokenIsValid } from "@/(apicalls)/cookies/token";
import { redirect } from "next/navigation";
export default async function MyForm() {
- const token_is_valid = await check_access_token_is_valid();
+ const token_is_valid = await checkAccessTokenIsValid();
if (token_is_valid) {
redirect("/login/select");
}
diff --git a/src/app/login/phone/page.tsx b/src/app/login/phone/page.tsx
index cf2b21f..092ad71 100644
--- a/src/app/login/phone/page.tsx
+++ b/src/app/login/phone/page.tsx
@@ -1,12 +1,11 @@
"use server";
import LoginWithPhone from "@/components/login/loginwithephone";
-import Image from "next/image";
-import { check_access_token_is_valid } from "@/apicalls/cookies/token";
+import { checkAccessTokenIsValid } from "@/(apicalls)/cookies/token";
import { redirect } from "next/navigation";
export default async function MyForm() {
- const token_is_valid = await check_access_token_is_valid();
+ const token_is_valid = await checkAccessTokenIsValid();
if (token_is_valid) {
redirect("/login/select");
}
diff --git a/src/app/login/select/page.tsx b/src/app/login/select/page.tsx
index 52a9ff0..32e39d3 100644
--- a/src/app/login/select/page.tsx
+++ b/src/app/login/select/page.tsx
@@ -4,14 +4,14 @@ import React from "react";
import LoginEmployeeCard from "@/components/login/loginemployee";
import LoginOccupantCard from "@/components/login/loginoccupant";
import {
- check_access_token_is_valid,
- retrieve_user_type,
-} from "@/apicalls/cookies/token";
+ checkAccessTokenIsValid,
+ retrieveUserType,
+} from "@/(apicalls)/cookies/token";
import { redirect } from "next/navigation";
const SelectPage: React.FC = async () => {
- const token_is_valid = await check_access_token_is_valid();
- const userType = await retrieve_user_type();
+ const token_is_valid = await checkAccessTokenIsValid();
+ const userType = await retrieveUserType();
if (!userType || !token_is_valid) {
redirect("/login/email");
}
diff --git a/src/app/password/change/page.tsx b/src/app/password/change/page.tsx
index 2761a7d..4d33ad0 100644
--- a/src/app/password/change/page.tsx
+++ b/src/app/password/change/page.tsx
@@ -1,23 +1,18 @@
"use server";
import React from "react";
-
-import {
- retrieve_access_token,
- check_access_token_is_valid,
-} from "@/apicalls/cookies/token";
+import { checkAccessTokenIsValid } from "@/(apicalls)/cookies/token";
import ChangePassword from "@/components/password/ChangePassword";
import { redirect } from "next/navigation";
const ChangePasswordPage: React.FC = async () => {
- const token_is_valid = await check_access_token_is_valid();
+ const token_is_valid = await checkAccessTokenIsValid();
if (!token_is_valid) {
redirect("/login/email");
}
- const accessToken = (await retrieve_access_token()) || "";
return (
-
+
);
};
diff --git a/src/appEvents/account/account.ts b/src/appEvents/account/account.tsx
similarity index 100%
rename from src/appEvents/account/account.ts
rename to src/appEvents/account/account.tsx
diff --git a/src/appEvents/account/iconSet.tsx b/src/appEvents/account/iconSet.tsx
new file mode 100644
index 0000000..11602a9
--- /dev/null
+++ b/src/appEvents/account/iconSet.tsx
@@ -0,0 +1,48 @@
+const AccountIcon = (
+
+);
+
+const meetingIcon = (
+
+);
+
+export { AccountIcon, meetingIcon };
diff --git a/src/appEvents/building/iconSet.tsx b/src/appEvents/building/iconSet.tsx
index 1c3adf8..e8be75c 100644
--- a/src/appEvents/building/iconSet.tsx
+++ b/src/appEvents/building/iconSet.tsx
@@ -1,33 +1,87 @@
-import exp from "constants";
-
const BuildIcon = (
<>
>
);
-export default BuildIcon;
+const BuildPartIcon = (
+
+);
+
+const LivingSpaceIcon = (
+
+);
+
+const BuildAreaIcon = (
+
+);
+
+export { BuildIcon, BuildPartIcon, LivingSpaceIcon, BuildAreaIcon };
diff --git a/src/appEvents/categories.ts b/src/appEvents/categories.ts
index 79b6f95..0d2847f 100644
--- a/src/appEvents/categories.ts
+++ b/src/appEvents/categories.ts
@@ -1,88 +1,48 @@
-import { title } from "process";
-import BuildIcon from "./building/iconSet";
+import {
+ BuildIcon,
+ BuildPartIcon,
+ LivingSpaceIcon,
+ BuildAreaIcon,
+} from "./building/iconSet";
+import { AccountIcon, meetingIcon } from "./account/iconSet";
import BuildPage from "./building/build";
-
-const LeftMenuCategoriesSecond = [
- {
- title: "Daireler",
- icon: "apartment",
- firstLayer: false,
- selfEndpoints: [],
- subCategories: [],
- allEndpointUUID: [],
- },
- {
- title: "Kullanılabilir Alanlar",
- icon: "area",
- selfEndpoints: [],
- subCategories: [],
- allEndpointUUID: [],
- },
- {
- title: "Yaşayan Kişiler",
- icon: "person",
- selfEndpoints: [],
- subCategories: [],
- allEndpointUUID: [],
- },
- {
- title: "Davetiyeler",
- icon: "invitation",
- selfEndpoints: [],
- subCategories: [],
- allEndpointUUID: [],
- },
- {
- title: "Görev Ata",
- icon: "task",
- selfEndpoints: [],
- subCategories: [],
- allEndpointUUID: [],
- },
- {
- title: "Bakiye Sorgulama",
- icon: "balance",
- subCategories: [],
- selfEndpoints: [],
- allEndpointUUID: ["/account/records/list"],
- },
-];
+import { InviteIcon, TaskIcon } from "./decisionBook/iconSet";
const BuildSubCategories = [
{
title: "Daireler",
- icon: "apartment",
- component: "BuildPart",
+ icon: BuildPartIcon,
+ component: BuildPage,
selfEndpoints: [
"/building/parts/list",
"/building/parts/create",
"/building/parts/update/{build_uu_id}",
],
- allEndpointUUID: [],
+ allEndpoints: [],
subCategories: [],
},
{
title: "Kullanılabilir Alanlar",
- icon: "area",
- component: "BuildArea",
+ icon: BuildAreaIcon,
+ component: BuildPage,
selfEndpoints: [
"/building/area/list",
"/building/area/create",
"/building/area/update/{build_uu_id}",
],
- allEndpointUUID: [],
+ allEndpoints: [],
subCategories: [],
},
{
title: "Yaşayan Kişiler",
- icon: "person",
- component: "LivingSpace",
+ icon: LivingSpaceIcon,
+ component: BuildPage,
selfEndpoints: [
"/building/living_space/list",
"/building/living_space/create",
"/building/living_space/update/{build_uu_id}",
],
- allEndpointUUID: [],
+ allEndpoints: [],
subCategories: [],
},
];
@@ -115,54 +75,60 @@ const LeftMenuCategories = [
},
{
title: "Toplantılar",
- icon: "meeting",
- allEndpointUUID: [
+ icon: meetingIcon,
+ allEndpoints: [
"/build/decision_book/invite/list",
"/build/decision_book/invite/create",
"/build/decision_book/invite/update",
"/build/decision_book/invitations/assign",
],
+ component: BuildPage,
subCategories: [
{
title: "Davetiyeler",
- icon: "invitation",
+ icon: InviteIcon,
+ component: BuildPage,
selfEndpoints: [
"/build/decision_book/invite/list",
"/build/decision_book/invite/create",
"/build/decision_book/invite/update",
"/build/decision_book/invitations/assign",
],
- allEndpointUUID: [],
+ allEndpoints: [],
subCategories: [],
},
{
title: "Görev Ata",
- icon: "task",
+ icon: TaskIcon,
+ component: BuildPage,
selfEndpoints: [],
subCategories: [],
- allEndpointUUID: [],
+ allEndpoints: [],
},
],
},
{
title: "Karar Defteri",
icon: "decision",
+ component: BuildPage,
selfEndpoints: [],
- allEndpointUUID: [],
+ allEndpoints: [],
subCategories: [],
},
{
title: "Cari Hesaplar",
- icon: "account",
+ icon: AccountIcon,
+ component: BuildPage,
selfEndpoints: [],
- allEndpointUUID: ["/account/records/list"],
+ allEndpoints: ["/account/records/list"],
subCategories: [
{
title: "Bakiye Sorgulama",
icon: "balance",
+ component: BuildPage,
subCategories: [],
selfEndpoints: ["/account/records/list"],
- allEndpointUUID: [],
+ allEndpoints: [],
},
],
},
@@ -177,15 +143,24 @@ export function retrieveAvailableCategories(availableCategories: any) {
for (let i = 0; i < LeftMenuCategories.length; i++) {
const category = LeftMenuCategories[i];
if (category.allEndpoints) {
- const categoryList = Array.from(category.allEndpoints);
- for (let j = 0; j < categoryList.length; j++) {
- const endpoint = categoryList[j];
- if (availableCategoriesList.includes(endpoint)) {
- availableMenu.push(category);
- break;
- }
+ const setCategory = isCategoryAvailable(
+ category,
+ availableCategoriesList
+ );
+ if (setCategory) {
+ availableMenu.push(category);
}
}
}
return availableMenu;
}
+
+function isCategoryAvailable(category: any, availableCategoriesList: any) {
+ const categoryList = Array.from(category.allEndpoints);
+ for (let j = 0; j < categoryList.length; j++) {
+ const endpoint = categoryList[j];
+ if (availableCategoriesList.includes(endpoint)) {
+ return true;
+ }
+ }
+}
diff --git a/src/appEvents/decisionBook/iconSet.tsx b/src/appEvents/decisionBook/iconSet.tsx
new file mode 100644
index 0000000..5e247f8
--- /dev/null
+++ b/src/appEvents/decisionBook/iconSet.tsx
@@ -0,0 +1,42 @@
+const InviteIcon = (
+
+);
+
+const TaskIcon = (
+
+);
+
+export { InviteIcon, TaskIcon };
diff --git a/src/components/ContextComponents/Building/Build/Build.tsx b/src/components/ContextComponents/Building/Build/Build.tsx
index bbf866f..6ea885d 100644
--- a/src/components/ContextComponents/Building/Build/Build.tsx
+++ b/src/components/ContextComponents/Building/Build/Build.tsx
@@ -1,73 +1,16 @@
"use client";
import React from "react";
-import { set, z } from "zod";
-import { useForm } from "react-hook-form";
-import { zodResolver } from "@hookform/resolvers/zod";
-import {
- Form,
- FormControl,
- FormDescription,
- FormField,
- FormItem,
- FormLabel,
- FormMessage,
-} from "@/components/ui/form";
-import {
- LucideRemoveFormatting,
- RemoveFormattingIcon,
- SidebarClose,
-} from "lucide-react";
-import TableThree from "@/components/Tables/TableThree";
-import { retrieve_available_events } from "@/apicalls/cookies/token";
-import EventButton from "../../Commons/EventButton";
+import EventButton from "@/components/ContextComponents/Commons/EventButton";
+import Table from "@/components/ContextComponents/Commons/Table";
-const formSchema = z.object({
- searchText: z.string().default(""),
-});
+import { retrieveAvailableEvents } from "@/(apicalls)/cookies/token";
+import { retrieveBuildList } from "@/(apicalls)/building/build";
const Build: React.FC = () => {
- const packageData = [
- {
- name: "Free package",
- price: 0.0,
- invoiceDate: `Jan 13,2023`,
- status: true,
- selected: false,
- },
- {
- name: "Standard Package",
- price: 59.0,
- invoiceDate: `Jan 13,2023`,
- status: true,
- selected: false,
- },
- {
- name: "Business Package",
- price: 99.0,
- invoiceDate: `Jan 13,2023`,
- status: false,
- selected: false,
- },
- {
- name: "Standard Package",
- price: 59.0,
- invoiceDate: `Jan 13,2023`,
- status: false,
- selected: false,
- },
- ];
- const headers = [
- "Package",
- "Package1",
- "Package2",
- "Package3",
- "Invoice date",
- "Onaylandı",
- ];
-
const [renderTable, setRenderTable] = React.useState(false);
const [renderCreate, setRenderCreate] = React.useState(false);
const [renderUpdate, setRenderUpdate] = React.useState(false);
+
const endpointNeeds = [
{
endpoint: "/building/build/list",
@@ -82,95 +25,24 @@ const Build: React.FC = () => {
component: setRenderUpdate,
},
];
- const [packageList, setPackageList] = React.useState(Array.from(packageData));
- const [tableShow, settableShow] = React.useState(true);
- const form = useForm>({
- resolver: zodResolver(formSchema),
- });
-
- function selectItem({ key }: { key: number }) {
- packageList.map((item, index) => {
- if (index === key) {
- item.selected = !item.selected;
- }
- });
- setPackageList([...packageList] as any);
- }
-
- function cleanSelection() {
- packageList.map((item) => {
- item.selected = false;
- });
- setPackageList([...packageList] as any);
- }
-
- function cleanSearch() {
- form.setValue("searchText", "");
- setPackageList(Array.from(packageData));
- }
-
- function search(values: z.infer) {
- const searchText = values.searchText;
- if (searchText === "") {
- setPackageList(Array.from(packageData));
- } else {
- const filteredList = Array.from(packageData).filter((item) => {
- return item.name.toLowerCase().includes(searchText.toLowerCase());
- });
- setPackageList(filteredList);
- }
- }
-
- React.useEffect(() => {}, [packageList]);
-
- retrieve_available_events()
- .then((data) => {
- for (const endpointNeed of endpointNeeds) {
- if (data?.availableEvents.includes(endpointNeed.endpoint)) {
- endpointNeed.component(true);
+ React.useEffect(() => {
+ retrieveAvailableEvents()
+ .then((data) => {
+ for (const endpointNeed of endpointNeeds) {
+ if (data?.availableEvents.includes(endpointNeed.endpoint)) {
+ endpointNeed.component(true);
+ }
}
- }
- })
- .catch((error) => {
- console.log("error", error);
- });
+ })
+ .catch((error) => {
+ console.log("error", error);
+ });
+ }, []);
return (
<>
-
cleanSelection()}
- label="Seçimleri Temizle"
- bgColor="bg-red-700"
- icon={
-
- }
- />
{renderUpdate && (
console.log("Delete clicked")}
@@ -239,7 +111,7 @@ const Build: React.FC = () => {
}
/>
)}
- {renderUpdate && (
+ {renderCreate && (
console.log("Create clicked")}
label="Kayıt ekle"
@@ -274,186 +146,7 @@ const Build: React.FC = () => {
/>
)}
- {renderTable ? (
- <>
-
-
-
-
-
-
-
- {headers.map((header, key) => (
- |
- {header}
- |
- ))}
-
-
-
- {packageList.map((packageItem, key) => (
- selectItem({ key })}
- >
-
-
- {packageItem.name}
-
- |
-
-
- {packageItem.name}
-
- |
-
-
- {packageItem.name}
-
- |
-
-
- {packageItem.name}
-
- |
-
-
- {packageItem.invoiceDate}
-
- |
-
-
- {packageItem.status ? "Evet" : "Hayır"}
-
- |
-
- ))}
-
-
-
-
- >
- ) : (
- <>>
- )}
+ {renderTable ? : <>>}
>
);
};
diff --git a/src/components/ContextComponents/Commons/Table.tsx b/src/components/ContextComponents/Commons/Table.tsx
index 2a7845a..7bd619f 100644
--- a/src/components/ContextComponents/Commons/Table.tsx
+++ b/src/components/ContextComponents/Commons/Table.tsx
@@ -12,68 +12,72 @@ import {
FormLabel,
FormMessage,
} from "@/components/ui/form";
-import Landing from "@/components/ContextComponents/Commons/Landing";
interface TableProps {
- data: Array;
+ createTable: any;
}
const formSchema = z.object({
searchText: z.string().default(""),
});
-const Table: React.FC = ({ data }) => {
- const [packageList, setPackageList] = React.useState(Array.from(data));
- const headersList: Array = getHeaders(data);
+const Table: React.FC = ({ createTable }) => {
+ const [tabledata, settabledata] = React.useState([]);
+ const [headersList, setHeadersList] = React.useState([]);
+ const form = useForm>({
+ resolver: zodResolver(formSchema),
+ });
- function getHeaders(data: Array): Array {
+ React.useEffect(() => {
+ createTable({}).then((res: Object) => {
+ const resData: any = res?.data || [];
+ settabledata(resData || []);
+ setHeadersList(getHeaders(resData));
+ });
+ }, []);
+
+ function getHeaders(data: Array) {
let returnList: Array = [];
if (Array.from(data).length > 0) {
Object.entries(data[0]).map(([key, value]) => {
- console.log("key, value", key, value);
returnList.push(key);
});
}
return returnList;
}
- const form = useForm>({
- resolver: zodResolver(formSchema),
- });
-
function selectItem({ key }: { key: number }) {
- packageList.map((item, index) => {
+ tabledata.map((item, index) => {
if (index === key) {
item.selected = !item.selected;
}
});
- setPackageList([...packageList] as any);
+ settabledata([...tabledata] as any);
}
function cleanSelection() {
- packageList.map((item) => {
+ tabledata.map((item) => {
item.selected = false;
});
- setPackageList([...packageList] as any);
+ settabledata([...tabledata] as any);
}
function cleanSearch() {
form.setValue("searchText", "");
- setPackageList(Array.from(data));
+ settabledata(Array.from(data));
}
function search(values: z.infer) {
const searchText = values.searchText;
if (searchText === "") {
- setPackageList(Array.from(data));
+ settabledata(Array.from(data));
} else {
const filteredList = Array.from(data).filter((item) => {
return item.name.toLowerCase().includes(searchText.toLowerCase());
});
- setPackageList(filteredList);
+ settabledata(filteredList);
}
}
- React.useEffect(() => {}, [packageList]);
return (
<>
@@ -251,9 +255,9 @@ const Table: React.FC = ({ data }) => {
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
- stroke-width="2"
- stroke-linecap="round"
- stroke-linejoin="round"
+ strokeWidth="2"
+ strokeLinecap="round"
+ strokeLinejoin="round"
className="lucide lucide-search"
>
@@ -271,9 +275,9 @@ const Table: React.FC = ({ data }) => {
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
- stroke-width="2"
- stroke-linecap="round"
- stroke-linejoin="round"
+ strokeWidth="2"
+ strokeLinecap="round"
+ strokeLinejoin="round"
className="lucide lucide-x"
>
@@ -302,7 +306,7 @@ const Table: React.FC = ({ data }) => {
- {packageList.map((packageItem, key) => (
+ {tabledata.map((packageItem, key) => (
= ({ data }) => {
key={key}
onClick={() => selectItem({ key })}
>
- |
+ {Object.entries(packageItem).map(
+ ([key, value]: [key: string, value: any]) => {
+ return (
+ |
+
+ {value || ""}
+
+ |
+ );
+ }
+ )}
+ {/*
= ({ data }) => {
>
{packageItem.status ? "Evet" : "Hayır"}
- |
+ */}
))}
diff --git a/src/components/Dashboards/DashboardPage.tsx b/src/components/Dashboards/DashboardPage.tsx
index 2c08465..0f9a78a 100644
--- a/src/components/Dashboards/DashboardPage.tsx
+++ b/src/components/Dashboards/DashboardPage.tsx
@@ -1,31 +1,24 @@
"use client";
import React from "react";
-import { Toaster } from "@/components/ui/toaster";
-import { showToast } from "@/components/login/toaster";
-
-import { useToast } from "@/hooks/use-toast";
-import { useRouter } from "next/navigation";
import Landing from "../ContextComponents/Commons/Landing";
import DefaultLayout from "@/components/Layouts/DefaultLayout";
interface DashboardPageProps {
- accessToken: string;
leftSideMenuContent: Array;
}
const DashboardPage: React.FC = ({
- accessToken,
leftSideMenuContent,
}) => {
- const { toast } = useToast();
- const router = useRouter();
const [activePage, setActivePage] = React.useState();
+ const [activeMenu, setActiveMenu] = React.useState(leftSideMenuContent);
+ React.useEffect(() => {}, [activeMenu]);
return (
diff --git a/src/components/Header/DropdownUser.tsx b/src/components/Header/DropdownUser.tsx
index df23f48..4f7e774 100644
--- a/src/components/Header/DropdownUser.tsx
+++ b/src/components/Header/DropdownUser.tsx
@@ -2,24 +2,20 @@
import { useState } from "react";
import Link from "next/link";
import Image from "next/image";
-import ClickOutside from "@/components/ClickOutside";
-import { logout_active_session } from "@/apicalls/login/logout";
-import { showToast } from "../login/toaster";
-import { useToast } from "@/hooks/use-toast";
import { useRouter } from "next/navigation";
+import { useToast } from "@/hooks/use-toast";
-interface LoginSelectUser {
- access_token: string;
-}
+import { showToast } from "../login/toaster";
+import { logoutActiveSession } from "@/(apicalls)/login/logout";
+import ClickOutside from "@/components/ClickOutside";
-const DropdownUser: React.FC = ({ access_token }) => {
+const DropdownUser: React.FC = () => {
const [dropdownOpen, setDropdownOpen] = useState(false);
const router = useRouter();
const { toast } = useToast();
- const logoutActiveSession = () => {
- logout_active_session({
- token: access_token,
+ const logoutActiveSessionFunc = () => {
+ logoutActiveSession({
domain: "evyos.com.tr",
})
.then((responseData: any) => {
@@ -163,7 +159,7 @@ const DropdownUser: React.FC = ({ access_token }) => {