From e7b15b316ecb6ae5553a70706390bc93be761b57 Mon Sep 17 00:00:00 2001 From: Mariam Saeed <69825646+Mariam-Saeed@users.noreply.github.com> Date: Thu, 9 Oct 2025 01:26:10 +0300 Subject: [PATCH] Feat: Notification section (#2033) * Feature/Notification-section * fix notification ui and add local storage variable to save the state * add notification component to app.tsx --- frontend/.env.development | 4 +- frontend/src/App.tsx | 17 ++++++++ frontend/src/assets/arrow-full-right.svg | 3 ++ frontend/src/assets/notification-bg.jpg | Bin 0 -> 11369 bytes frontend/src/components/Notification.tsx | 45 +++++++++++++++++++++ frontend/src/conversation/Conversation.tsx | 1 + 6 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 frontend/src/assets/arrow-full-right.svg create mode 100644 frontend/src/assets/notification-bg.jpg create mode 100644 frontend/src/components/Notification.tsx diff --git a/frontend/.env.development b/frontend/.env.development index 4083d677..7b6f3434 100644 --- a/frontend/.env.development +++ b/frontend/.env.development @@ -1,4 +1,6 @@ # Please put appropriate value VITE_BASE_URL=http://localhost:5173 VITE_API_HOST=http://127.0.0.1:7091 -VITE_API_STREAMING=true \ No newline at end of file +VITE_API_STREAMING=true +VITE_NOTIFICATION_TEXT="What's new in 0.14.0 — Changelog" +VITE_NOTIFICATION_LINK="#" \ No newline at end of file diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 0a8c22f1..0c3384d1 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -15,6 +15,7 @@ import useTokenAuth from './hooks/useTokenAuth'; import Navigation from './Navigation'; import PageNotFound from './PageNotFound'; import Setting from './settings'; +import Notification from './components/Notification'; function AuthWrapper({ children }: { children: React.ReactNode }) { const { isAuthLoading } = useTokenAuth(); @@ -52,11 +53,27 @@ function MainLayout() { } export default function App() { const [, , componentMounted] = useDarkTheme(); + const [showNotification, setShowNotification] = useState(() => { + const saved = localStorage.getItem('showNotification'); + return saved ? JSON.parse(saved) : true; + }); + const notificationText = import.meta.env.VITE_NOTIFICATION_TEXT; + const notificationLink = import.meta.env.VITE_NOTIFICATION_LINK; if (!componentMounted) { return
; } return (
+ {notificationLink && notificationText && showNotification && ( + { + setShowNotification(false); + localStorage.setItem('showNotification', 'false'); + }} + /> + )} + + diff --git a/frontend/src/assets/notification-bg.jpg b/frontend/src/assets/notification-bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6e0a5d0fe07a6ad2b5722a2518bc560d7e261ad7 GIT binary patch literal 11369 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 F{x8OpTLAz7 literal 0 HcmV?d00001 diff --git a/frontend/src/components/Notification.tsx b/frontend/src/components/Notification.tsx new file mode 100644 index 00000000..7bd48158 --- /dev/null +++ b/frontend/src/components/Notification.tsx @@ -0,0 +1,45 @@ +import close from '../assets/cross.svg'; +import rightArrow from '../assets/arrow-full-right.svg'; +import bg from '../assets/notification-bg.jpg'; + +interface NotificationProps { + notificationText: string; + notificationLink: string; + handleCloseNotification: () => void; +} + +export default function Notification({ + notificationText, + notificationLink, + handleCloseNotification, +}: NotificationProps) { + return ( + +

+ {notificationText} +

+ + + + + +
+ ); +} diff --git a/frontend/src/conversation/Conversation.tsx b/frontend/src/conversation/Conversation.tsx index d7b59a4e..312b92c9 100644 --- a/frontend/src/conversation/Conversation.tsx +++ b/frontend/src/conversation/Conversation.tsx @@ -202,6 +202,7 @@ export default function Conversation() { queries[queries.length - 1].response && setLastQueryReturnedErr(false); } }, [queries[queries.length - 1]]); + return (