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) => ( - - ))} - - - - {packageList.map((packageItem, key) => ( - selectItem({ key })} - > - - - - - - - - ))} - -
- {header} -
-
- {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 })} > - + ); + } + )} + {/* + */} ))} 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 }) => { - {/* */} {/* = ({ - + diff --git a/src/components/Layouts/DefaultLayout.tsx b/src/components/Layouts/DefaultLayout.tsx index b9bc703..0cdc609 100644 --- a/src/components/Layouts/DefaultLayout.tsx +++ b/src/components/Layouts/DefaultLayout.tsx @@ -5,18 +5,18 @@ import Header from "@/components/Header"; interface DefaultLayoutProps { children: ReactNode; - accessToken: string; leftSideMenuContent: Array; activePage: React.JSX.Element; setActivePage: React.Dispatch>; + leftSideMenuSetter: React.Dispatch>>; } const DefaultLayout: React.FC = ({ children, - accessToken, leftSideMenuContent, activePage, setActivePage, + leftSideMenuSetter, }) => { const [sidebarOpen, setSidebarOpen] = useState(false); return ( @@ -26,15 +26,12 @@ const DefaultLayout: React.FC = ({ sidebarOpen={sidebarOpen} setSidebarOpen={setSidebarOpen} leftSideMenuContent={leftSideMenuContent} + leftSideMenuSetter={leftSideMenuSetter} activePage={activePage} setActivePage={setActivePage} />
-
+
{children} diff --git a/src/components/Sidebar/SidebarItem.tsx b/src/components/Sidebar/SidebarItem.tsx index 30efa61..9128ad0 100644 --- a/src/components/Sidebar/SidebarItem.tsx +++ b/src/components/Sidebar/SidebarItem.tsx @@ -1,11 +1,28 @@ +"use client"; import React from "react"; -import Link from "next/link"; -import SidebarDropdown from "@/components/Sidebar/SidebarDropdown"; +import { retrieveAvailableCategories } from "@/appEvents/categories"; +interface SidebarItemProps { + item: any; + pageName: any; + setPageName: any; + leftSideMenuSetter: React.Dispatch>>; +} -const SidebarItem = ({ item, pageName, setPageName }: any) => { +const SidebarItem = ({ + item, + pageName, + setPageName, + leftSideMenuSetter, +}: SidebarItemProps) => { const handleClick = () => { - console.log("item", item.title.toLowerCase(), pageName); - if (pageName !== item.title.toLowerCase()) { + if (pageName?.title !== item.title) { + // const availableMenu = retrieveAvailableCategories( + // item?.subCategories || [] + // ); + const availableMenu = item?.subCategories || []; + if (availableMenu.length !== 0) { + leftSideMenuSetter(availableMenu); + } setPageName(item.component); } }; @@ -20,48 +37,15 @@ const SidebarItem = ({ item, pageName, setPageName }: any) => { const isItemActive = isActive(item); return ( - <> -
  • -
    - {item.icon} - {item.title} - {/* {item.children && ( - - - - )} - */} -
    - {/* {item.children && ( -
    - -
    - )} */} -
  • - +
    + {item.icon} + {item.title} +
    ); }; diff --git a/src/components/Sidebar/index.tsx b/src/components/Sidebar/index.tsx index bc81fb3..1cfd4c2 100644 --- a/src/components/Sidebar/index.tsx +++ b/src/components/Sidebar/index.tsx @@ -1,18 +1,18 @@ "use client"; import React, { useEffect, useRef, useState } from "react"; -import { usePathname } from "next/navigation"; -import Link from "next/link"; import Image from "next/image"; import SidebarItem from "@/components/Sidebar/SidebarItem"; import ClickOutside from "@/components/ClickOutside"; -import useLocalStorage from "@/hooks/useLocalStorage"; +import { retrieveAvailableEvents } from "@/(apicalls)/cookies/token"; +import { retrieveAvailableCategories } from "@/appEvents/categories"; interface SidebarProps { sidebarOpen: boolean; leftSideMenuContent: Array; activePage: React.JSX.Element; setActivePage: React.Dispatch>; + leftSideMenuSetter: React.Dispatch>>; setSidebarOpen: (arg: boolean) => void; } @@ -20,9 +20,17 @@ const Sidebar = ({ sidebarOpen, leftSideMenuContent, activePage, + leftSideMenuSetter, setSidebarOpen, setActivePage, }: SidebarProps) => { + const clearMenu = () => { + retrieveAvailableEvents().then((endpointList) => { + const availableMenu = retrieveAvailableCategories(endpointList); + leftSideMenuSetter(availableMenu); + }); + }; + return ( setSidebarOpen(false)}> diff --git a/src/components/Tables/TableThree.tsx b/src/components/Tables/TableThree.tsx index af52ea5..7b4d982 100644 --- a/src/components/Tables/TableThree.tsx +++ b/src/components/Tables/TableThree.tsx @@ -282,9 +282,9 @@ const TableThree = () => { 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" > @@ -302,9 +302,9 @@ const TableThree = () => { 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" > diff --git a/src/components/login/loginemployee.tsx b/src/components/login/loginemployee.tsx index 3a24cbc..d039a46 100644 --- a/src/components/login/loginemployee.tsx +++ b/src/components/login/loginemployee.tsx @@ -1,14 +1,10 @@ "use server"; import React from "react"; import LoginSelectEmployee from "./loginselectemployee"; -import { - retrieve_access_objects, - retrieve_access_token, -} from "@/apicalls/cookies/token"; +import { retrieveAccessObjects } from "@/(apicalls)/cookies/token"; const LoginEmployeeCard: React.FC = async () => { - const accessObject: any = await retrieve_access_objects(); - const accessToken: any = await retrieve_access_token(); + const accessObject = await retrieveAccessObjects(); return ( <>
    @@ -16,10 +12,7 @@ const LoginEmployeeCard: React.FC = async () => { Şirket Seçimi Yapınız
    - +
    diff --git a/src/components/login/loginoccupant.tsx b/src/components/login/loginoccupant.tsx index afd99cb..8cb9008 100644 --- a/src/components/login/loginoccupant.tsx +++ b/src/components/login/loginoccupant.tsx @@ -1,14 +1,10 @@ "use server"; import React from "react"; import LoginSelectOccupant from "./loginselectoccupant"; -import { - retrieve_access_objects, - retrieve_access_token, -} from "@/apicalls/cookies/token"; +import { retrieveAccessObjects } from "@/(apicalls)/cookies/token"; const LoginOccupantCard: React.FC = async () => { - const accessObject: any = await retrieve_access_objects(); - const accessToken: any = await retrieve_access_token(); + const accessObject: any = await retrieveAccessObjects(); return ( <> @@ -19,7 +15,6 @@ const LoginOccupantCard: React.FC = async () => {
    diff --git a/src/components/login/loginselectemployee.tsx b/src/components/login/loginselectemployee.tsx index 3327d8c..e148171 100644 --- a/src/components/login/loginselectemployee.tsx +++ b/src/components/login/loginselectemployee.tsx @@ -7,18 +7,13 @@ import { Toaster } from "@/components/ui/toaster"; import { useToast } from "@/hooks/use-toast"; import { showToast } from "./toaster"; import { useRouter } from "next/navigation"; -import { login_select_employee } from "@/apicalls/login/login"; -import { setAvailableEvents } from "@/apicalls/events/available"; +import { loginSelectEmployee } from "@/(apicalls)/login/login"; interface CompanyList { company_list: Array; - access_token: string; } -const LoginSelectEmployee: React.FC = ({ - company_list, - access_token, -}) => { +const LoginSelectEmployee: React.FC = ({ company_list }) => { const { toast } = useToast(); const router = useRouter(); const [isLoading, setIsLoading] = React.useState(false); @@ -26,7 +21,7 @@ const LoginSelectEmployee: React.FC = ({ const companiesList = company_list || []; const onClick = (data: any) => { setIsLoading(true); - login_select_employee({ company_uu_id: data?.uu_id, token: access_token }) + loginSelectEmployee({ company_uu_id: data?.uu_id }) .then((responseData: any) => { console.log("responseData", responseData); if (responseData?.completed) { @@ -35,7 +30,6 @@ const LoginSelectEmployee: React.FC = ({ data: JSON.stringify(responseData), }); setIsLoading(false); - setAvailableEvents(access_token); router.push("/dashboard"); } }) diff --git a/src/components/login/loginselectoccupant.tsx b/src/components/login/loginselectoccupant.tsx index ecbb1dc..b8e2c46 100644 --- a/src/components/login/loginselectoccupant.tsx +++ b/src/components/login/loginselectoccupant.tsx @@ -6,16 +6,13 @@ import { Toaster } from "@/components/ui/toaster"; import { useToast } from "@/hooks/use-toast"; import { showToast } from "@/components/login/toaster"; import { useRouter } from "next/navigation"; -import { login_select_occupant } from "@/apicalls/login/login"; -import { setAvailableEvents } from "@/apicalls/events/available"; +import { loginSelectOccupant } from "@/(apicalls)/login/login"; interface LoginSelectOccupantProps { - access_token: string; available_occupants: Array; } const LoginSelectOccupant: React.FC = ({ - access_token, available_occupants, }) => { const { toast } = useToast(); @@ -33,10 +30,9 @@ const LoginSelectOccupant: React.FC = ({ const onClick = (data: any) => { setIsLoading(true); - login_select_occupant({ + loginSelectOccupant({ build_part_uu_id: data?.part_uu_id, occupant_uu_id: data?.uu_id, - token: access_token, }) .then((responseData: any) => { console.log("occupant", responseData); @@ -46,7 +42,6 @@ const LoginSelectOccupant: React.FC = ({ data: JSON.stringify(responseData), }); setTimeout(() => { - setAvailableEvents(access_token); router.push("/dashboard"); }, 3000); } diff --git a/src/components/login/loginwithemail.tsx b/src/components/login/loginwithemail.tsx index f26a190..2f4a2e6 100644 --- a/src/components/login/loginwithemail.tsx +++ b/src/components/login/loginwithemail.tsx @@ -18,7 +18,7 @@ import { Switch } from "@/components/ui/switch"; import { useRouter } from "next/navigation"; import { showToast } from "./toaster"; -import { login_via_access_keys } from "@/apicalls/login/login"; +import { loginViaAccessKeys } from "../../(apicalls)/login/login"; import Loader from "@/components/common/Loader"; const formSchema = z.object({ @@ -51,7 +51,7 @@ const LoginWithEmail: React.FC = () => { function onSubmit(values: z.infer) { setIsLoading(true); - login_via_access_keys({ + loginViaAccessKeys({ domain: "evyos.com.tr", accessKey: values.loginEmailInput, password: values.loginPassword, diff --git a/src/components/password/ChangePassword.tsx b/src/components/password/ChangePassword.tsx index b1114f5..8ddf6bb 100644 --- a/src/components/password/ChangePassword.tsx +++ b/src/components/password/ChangePassword.tsx @@ -22,7 +22,7 @@ import { showToast } from "@/components/login/toaster"; import { change_password_via_token, send_forgot_password_email, -} from "@/apicalls/login/password"; +} from "../../(apicalls)/login/password"; const formSchema = z.object({ oldPassword: z.string().min(5, { message: "Şifre 6 karakterden az olamaz" }), @@ -36,11 +36,7 @@ const formSchema = z.object({ .default(""), }); -interface ChangePasswordProps { - accessToken: string; -} - -const ChangePassword: React.FC = ({ accessToken }) => { +const ChangePassword: React.FC = () => { const { toast } = useToast(); const searchParams = useSearchParams(); const router = useRouter(); @@ -72,7 +68,6 @@ const ChangePassword: React.FC = ({ accessToken }) => { }); } else { change_password_via_token({ - accessToken: accessToken || "", oldPassword: values.oldPassword, newPassword: values.loginPassword, }) diff --git a/src/components/password/CreatePassword.tsx b/src/components/password/CreatePassword.tsx index d65233c..5f88e5b 100644 --- a/src/components/password/CreatePassword.tsx +++ b/src/components/password/CreatePassword.tsx @@ -19,7 +19,7 @@ import { import { useRouter } from "next/navigation"; import { showToast } from "@/components/login/toaster"; -import { create_password_via_token } from "@/apicalls/login/password"; +import { create_password_via_token } from "../../(apicalls)/login/password"; const formSchema = z.object({ loginPassword: z diff --git a/src/components/password/ForgotPassword.tsx b/src/components/password/ForgotPassword.tsx index e67580e..fe3b9c3 100644 --- a/src/components/password/ForgotPassword.tsx +++ b/src/components/password/ForgotPassword.tsx @@ -18,7 +18,7 @@ import { Switch } from "@/components/ui/switch"; import { useRouter } from "next/navigation"; import { showToast } from "@/components/login/toaster"; -import { send_forgot_password_email } from "@/apicalls/login/password"; +import { send_forgot_password_email } from "../../(apicalls)/login/password"; import { Link } from "lucide-react"; import { access } from "fs";
    + {Object.entries(packageItem).map( + ([key, value]: [key: string, value: any]) => { + return ( + +
    + {value || ""} +
    +
    = ({ data }) => { > {packageItem.status ? "Evet" : "Hayır"}

    -