diff --git a/components/MyPages/AccountPage/Webview/Content.tsx b/components/MyPages/AccountPage/Webview/Content.tsx index 29cee02f2..b56e168e7 100644 --- a/components/MyPages/AccountPage/Webview/Content.tsx +++ b/components/MyPages/AccountPage/Webview/Content.tsx @@ -3,6 +3,9 @@ import Overview from "@/components/MyPages/Blocks/Overview" import Shortcuts from "@/components/MyPages/Blocks/Shortcuts" import { modWebviewLink } from "@/utils/webviews" +import CurrentBenefitsBlock from "../../Blocks/Benefits/CurrentLevel" +import NextLevelBenefitsBlock from "../../Blocks/Benefits/NextLevel" + import { AccountPageContentProps, ContentProps, @@ -16,6 +19,10 @@ function DynamicComponent({ component, props }: AccountPageContentProps) { switch (component) { case DynamicContentComponents.membership_overview: return + case DynamicContentComponents.current_benefits: + return + case DynamicContentComponents.next_benefits: + return default: return null } diff --git a/lib/trpc/server.ts b/lib/trpc/server.ts index fa43bcdc4..61b75b2c7 100644 --- a/lib/trpc/server.ts +++ b/lib/trpc/server.ts @@ -1,8 +1,8 @@ import { TRPCError } from "@trpc/server" -import { headers } from "next/headers" import { redirect } from "next/navigation" import { Lang } from "@/constants/languages" +import { overview } from "@/constants/routes/webviews" import { appRouter } from "@/server" import { createContext } from "@/server/context" import { internalServerError } from "@/server/errors/next" @@ -24,7 +24,9 @@ export function serverClient() { if (error.code === "UNAUTHORIZED") { const lang = ctx?.lang || Lang.en if (ctx?.webToken) { - const returnUrl = ctx.url + console.log({ ctx }) + const returnUrl = ctx.pathname || overview[lang] + const redirectUrl = `/${lang}/webview/refresh?returnurl=${encodeURIComponent(returnUrl)}` console.error( "Unautorized in webview, redirecting to: ", diff --git a/next.config.js b/next.config.js index 067554758..3fbf8c47a 100644 --- a/next.config.js +++ b/next.config.js @@ -46,6 +46,40 @@ const nextConfig = { return config }, + redirects() { + return [ + { + source: myPages.da, + destination: overview.da, + permanent: false, + }, + { + source: myPages.de, + destination: overview.de, + permanent: false, + }, + { + source: myPages.en, + destination: overview.en, + permanent: false, + }, + { + source: myPages.fi, + destination: overview.fi, + permanent: false, + }, + { + source: myPages.no, + destination: overview.no, + permanent: false, + }, + { + source: myPages.sv, + destination: overview.sv, + permanent: false, + }, + ] + }, rewrites() { return { beforeFiles: [ diff --git a/test.js b/test.js deleted file mode 100644 index 6bb65f394..000000000 --- a/test.js +++ /dev/null @@ -1,84 +0,0 @@ -function base64ToUint8Array(base64String) { - const binaryString = atob(base64String) - const byteArray = new Uint8Array(binaryString.length) - for (let i = 0; i < binaryString.length; i++) { - byteArray[i] = binaryString.charCodeAt(i) - } - return byteArray -} - -function utf8ToUint8Array(utf8String) { - return new TextEncoder().encode(utf8String) -} - -function uint8ArrayToBase64(uint8Array) { - let binaryString = "" - const len = uint8Array.byteLength - for (let i = 0; i < len; i++) { - binaryString += String.fromCharCode(uint8Array[i]) - } - return btoa(binaryString) -} - -function uint8ArrayToUtf8(uint8Array) { - return new TextDecoder().decode(uint8Array) -} - -async function decryptData(keyBase64, ivBase64, encryptedDataBase64) { - const keyBuffer = await crypto.subtle.importKey( - "raw", - base64ToUint8Array(keyBase64), - "AES-CBC", - false, - ["decrypt"] - ) - - const encryptedDataBuffer = base64ToUint8Array(encryptedDataBase64) - const ivBuffer = base64ToUint8Array(ivBase64) - const decryptedDataBuffer = await crypto.subtle.decrypt( - { name: "AES-CBC", iv: ivBuffer }, - keyBuffer, - encryptedDataBuffer - ) - - const decryptedData = uint8ArrayToUtf8(new Uint8Array(decryptedDataBuffer)) - return decryptedData -} -async function encryptData(keyBase64, ivBase64, data) { - const keyBuffer = await crypto.subtle.importKey( - "raw", - base64ToUint8Array(keyBase64), - "AES-CBC", - false, - ["encrypt"] - ) - - const dataBuffer = utf8ToUint8Array(data) - const ivBuffer = base64ToUint8Array(ivBase64) - const encryptedDataBuffer = await crypto.subtle.encrypt( - { name: "AES-CBC", iv: ivBuffer }, - keyBuffer, - dataBuffer - ) - - const encryptedData = uint8ArrayToBase64(new Uint8Array(encryptedDataBuffer)) - return encryptedData -} - -const keyBase64 = "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=" -const ivBase64 = btoa("abcdefghijklmnop") -const data = "_0XBPWQQ_60d7f996-04e1-4e2f-b7e9-1d1139b808ea" - -// Encrypt the data -const encryptedData = await encryptData(keyBase64, ivBase64, data) - -// Decrypt the data -const decryptedData = await decryptData(keyBase64, ivBase64, encryptedData) - -// const tegwpjke = await encryptData( -// "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=", -// btoa("abcdefghijklmnop"), -// "_0XBPWQQ_60d7f996-04e1-4e2f-b7e9-1d1139b808ea" -// ) - -// console.log(tegwpjke)