fix: enable benefits blocks
This commit is contained in:
@@ -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 <Overview title={props.title} />
|
||||
case DynamicContentComponents.current_benefits:
|
||||
return <CurrentBenefitsBlock {...props} />
|
||||
case DynamicContentComponents.next_benefits:
|
||||
return <NextLevelBenefitsBlock {...props} />
|
||||
default:
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -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: ",
|
||||
|
||||
@@ -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: [
|
||||
|
||||
84
test.js
84
test.js
@@ -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)
|
||||
Reference in New Issue
Block a user