diff --git a/client/app/components/Header/CollapsedHeader.jsx b/client/app/components/Header/CollapsedHeader.jsx index dd5ef8d1..b266a000 100644 --- a/client/app/components/Header/CollapsedHeader.jsx +++ b/client/app/components/Header/CollapsedHeader.jsx @@ -12,9 +12,12 @@ import { AnimatePresence, motion } from 'framer-motion'; import LogoWithText from '@/app/components/Logo/WithText'; import { nanoid } from 'nanoid'; import { usePathname } from 'next/navigation'; +import { useNewspaperStore } from '@/stores/newspaper'; export default function CollapsedHeader() { const theme = useThemeStore(state => state.theme); + const newspaperIsOpen = useNewspaperStore(state => state.isOpen); + const [open, setOpen] = useState(false); const pathname = usePathname(); @@ -25,7 +28,10 @@ export default function CollapsedHeader() { }, [open]); return ( -
+
discord.place Logo diff --git a/client/app/components/Header/NotCollapsedHeader.jsx b/client/app/components/Header/NotCollapsedHeader.jsx index d6f52c84..8b88406a 100644 --- a/client/app/components/Header/NotCollapsedHeader.jsx +++ b/client/app/components/Header/NotCollapsedHeader.jsx @@ -9,9 +9,11 @@ import config from '@/config'; import { usePrevious, useWindowScroll, useWindowSize } from 'react-use'; import useThemeStore from '@/stores/theme'; import UserSide from '@/app/components/Header/UserSide'; +import { useNewspaperStore } from '@/stores/newspaper'; export default function NotCollapsedHeader() { const theme = useThemeStore(state => state.theme); + const newspaperIsOpen = useNewspaperStore(state => state.isOpen); const { y } = useWindowScroll(); const oldY = usePrevious(y); @@ -49,7 +51,8 @@ export default function NotCollapsedHeader() {
diff --git a/client/app/components/Newspaper/OpenSource.jsx b/client/app/components/Newspaper/OpenSource.jsx new file mode 100644 index 00000000..84d90e08 --- /dev/null +++ b/client/app/components/Newspaper/OpenSource.jsx @@ -0,0 +1,116 @@ +import { useNewspaperStore } from '@/stores/newspaper'; +import { useEffect, useRef } from 'react'; +import Image from 'next/image'; +import { useLockBodyScroll, useClickAway } from 'react-use'; +import { IoCloseSharp } from 'react-icons/io5'; +import { motion, AnimatePresence } from 'framer-motion'; +import Link from 'next/link'; + +export default function OpenSourceAnnouncement() { + const isOpen = useNewspaperStore(state => state.isOpen); + const setIsOpen = useNewspaperStore(state => state.setIsOpen); + + useEffect(() => { + setIsOpen(true); + + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + useLockBodyScroll(isOpen); + + const contentRef = useRef(null); + useClickAway(contentRef, () => setIsOpen(false)); + + return ( + + {isOpen && ( + + +
+ Open Source Announcement Banner + +
setIsOpen(false)}> + +
+ +
+

discord.place Goes Open Source on GitHub!

+ +

+ We{'\''}re thrilled to announce that the discord.place codebase is now open source on GitHub! Join us in our journey of transparency, collaboration, and innovation. Explore, contribute, and learn with us! +

+ + + GitHub Repository + +
+
+
+
+ )} +
+ ); + /* + return ( +
+
+
+ Open Source Announcement Banner + +
setIsOpen(false)}> + +
+ +
+

discord.place is now open source!

+ +

+ We have open sourced our codebase on GitHub. Feel free to contribute to our project. We are looking forward to your contributions. +

+ + +
+
+
+
+ );*/ +} \ No newline at end of file diff --git a/client/app/page.js b/client/app/page.js index c20b3fc7..b1337ef8 100644 --- a/client/app/page.js +++ b/client/app/page.js @@ -11,6 +11,7 @@ import { IoPeople } from 'react-icons/io5'; import { RiRobot2Fill } from 'react-icons/ri'; import { MdEmojiEmotions } from 'react-icons/md'; import { MdArrowForward } from 'react-icons/md'; +import OpenSourceAnnouncement from '@/app/components/Newspaper/OpenSource'; const SourceSerif4 = Source_Serif_4({ subsets: ['latin'] }); @@ -48,6 +49,8 @@ export default function Page() { return (
+ +

({ + isOpen: false, + setIsOpen: (isOpen) => set({ isOpen }) +})); \ No newline at end of file