diff --git a/apps/backend/src/api/routes/auth.controller.ts b/apps/backend/src/api/routes/auth.controller.ts
index 96b5ecae..f36ea646 100644
--- a/apps/backend/src/api/routes/auth.controller.ts
+++ b/apps/backend/src/api/routes/auth.controller.ts
@@ -50,7 +50,7 @@ export class AuthController {
});
}
- response.header('reload', 'true');
+ response.header('onboarding', 'true');
response.status(200).json({
register: true,
});
diff --git a/apps/backend/src/main.ts b/apps/backend/src/main.ts
index be549c06..33ddda75 100644
--- a/apps/backend/src/main.ts
+++ b/apps/backend/src/main.ts
@@ -13,7 +13,7 @@ async function bootstrap() {
rawBody: true,
cors: {
credentials: true,
- exposedHeaders: ['reload'],
+ exposedHeaders: ['reload', 'onboarding'],
origin: [process.env.FRONTEND_URL],
}
});
diff --git a/apps/backend/src/services/auth/permissions/permissions.service.ts b/apps/backend/src/services/auth/permissions/permissions.service.ts
index a1ce5dc8..2e164756 100644
--- a/apps/backend/src/services/auth/permissions/permissions.service.ts
+++ b/apps/backend/src/services/auth/permissions/permissions.service.ts
@@ -46,7 +46,7 @@ export class PermissionsService {
subscription,
options: {
...all,
- ...{ channel: tier === 'FREE' ? { channel } : {} },
+ ...{ channel: tier === 'FREE' ? channel : -10 },
},
};
}
@@ -77,7 +77,6 @@ export class PermissionsService {
).length;
if (
- // @ts-ignore
(options.channel && options.channel > totalChannels) ||
(subscription?.totalChannels || 0) > totalChannels
) {
diff --git a/apps/frontend/src/components/layout/layout.context.tsx b/apps/frontend/src/components/layout/layout.context.tsx
index 4295a5e3..b26fcb70 100644
--- a/apps/frontend/src/components/layout/layout.context.tsx
+++ b/apps/frontend/src/components/layout/layout.context.tsx
@@ -1,40 +1,54 @@
-"use client";
+'use client';
-import {ReactNode, useCallback} from "react";
-import {FetchWrapperComponent} from "@gitroom/helpers/utils/custom.fetch";
-import {deleteDialog} from "@gitroom/react/helpers/delete.dialog";
+import { ReactNode, useCallback } from 'react';
+import { FetchWrapperComponent } from '@gitroom/helpers/utils/custom.fetch';
+import { deleteDialog } from '@gitroom/react/helpers/delete.dialog';
-export default async function LayoutContext(params: {children: ReactNode}) {
- if (params?.children) {
- // eslint-disable-next-line react/no-children-prop
- return
- }
+export default function LayoutContext(params: { children: ReactNode }) {
+ if (params?.children) {
+ // eslint-disable-next-line react/no-children-prop
+ return ;
+ }
- return <>>
+ return <>>;
}
-function LayoutContextInner(params: {children: ReactNode}) {
- const afterRequest = useCallback(async (url: string, options: RequestInit, response: Response) => {
- if (response?.headers?.get('reload')) {
- window.location.reload();
+function LayoutContextInner(params: { children: ReactNode }) {
+ const afterRequest = useCallback(
+ async (url: string, options: RequestInit, response: Response) => {
+ if (response?.headers?.get('onboarding')) {
+ window.location.href = '/analytics?onboarding=true';
+ }
+
+ if (response?.headers?.get('reload')) {
+ window.location.reload();
+ }
+
+ if (response.status === 402) {
+ if (
+ await deleteDialog(
+ (
+ await response.json()
+ ).message,
+ 'Move to billing',
+ 'Payment Required'
+ )
+ ) {
+ window.open('/billing', '_blank');
}
+ return false;
+ }
- if (response.status === 402) {
- if (await deleteDialog((await response.json()).message, 'Move to billing', 'Payment Required')) {
- window.open('/billing', '_blank');
- }
- return false;
- }
+ return true;
+ },
+ []
+ );
- return true;
- }, []);
-
- return (
-
-
- {params?.children || <>>}
-
- )
-}
\ No newline at end of file
+ return (
+
+ {params?.children || <>>}
+
+ );
+}