diff --git a/frontend/public/images/infisical-update-september-2023.png b/frontend/public/images/infisical-update-september-2023.png
new file mode 100644
index 000000000..c11852762
Binary files /dev/null and b/frontend/public/images/infisical-update-september-2023.png differ
diff --git a/frontend/src/layouts/AppLayout/AppLayout.tsx b/frontend/src/layouts/AppLayout/AppLayout.tsx
index a3541471a..19fb964f8 100644
--- a/frontend/src/layouts/AppLayout/AppLayout.tsx
+++ b/frontend/src/layouts/AppLayout/AppLayout.tsx
@@ -7,9 +7,10 @@
// @ts-nocheck
import crypto from "crypto";
-import { useEffect } from "react";
+import { useEffect, useState } from "react";
import { Controller, useForm } from "react-hook-form";
import { useTranslation } from "react-i18next";
+import Image from "next/image";
import Link from "next/link";
import { useRouter } from "next/router";
import { faGithub, faSlack } from "@fortawesome/free-brands-svg-icons";
@@ -68,8 +69,10 @@ import {
useGetOrgTrialUrl,
useGetSecretApprovalRequestCount,
useLogoutUser,
+ useRegisterUserAction,
useUploadWsKey
} from "@app/hooks/api";
+import { fetchUserAction } from "@app/hooks/api/users/queries";
interface LayoutProps {
children: React.ReactNode;
@@ -116,7 +119,7 @@ export const AppLayout = ({ children }: LayoutProps) => {
const { user } = useUser();
const { subscription } = useSubscription();
const workspaceId = currentWorkspace?._id || "";
- // const [ isLearningNoteOpen, setIsLearningNoteOpen ] = useState(true);
+ const [ isLearningNoteOpen, setIsLearningNoteOpen ] = useState(false);
const { data: secretApprovalReqCount } = useGetSecretApprovalRequestCount({ workspaceId });
const isAddingProjectsAllowed = subscription?.workspaceLimit
@@ -143,6 +146,23 @@ export const AppLayout = ({ children }: LayoutProps) => {
const { t } = useTranslation();
+ const registerUserAction = useRegisterUserAction();
+
+ useEffect(async () => {
+ const checkLearningNote = async () => {
+ const userUpdateClosedCheck = await fetchUserAction(
+ "september_update_closed"
+ );
+ setIsLearningNoteOpen(!userUpdateClosedCheck);
+ }
+ checkLearningNote();
+ })
+
+ const closeUpdate = async () => {
+ await registerUserAction.mutateAsync("september_update_closed");
+ setIsLearningNoteOpen(false);
+ }
+
const logout = useLogoutUser();
const logOutUser = async () => {
try {
@@ -546,19 +566,6 @@ export const AppLayout = ({ children }: LayoutProps) => {
- {/* {workspaces.map(project =>
-
-