From ef0229318137e17ddd8b33015729f9a884f1aa28 Mon Sep 17 00:00:00 2001 From: Or Malka <107395990+xoRmalka@users.noreply.github.com> Date: Sat, 27 Jul 2024 20:12:28 +0300 Subject: [PATCH] feat: add Donation Modal as menu item (#833) --- src/layout/sidebar/menu/Menu.tsx | 51 +++++++++++----- src/pages/DonateModal/DonateModal.tsx | 87 +++++++++++++++++++++++++++ src/routes/index.tsx | 4 +- 3 files changed, 126 insertions(+), 16 deletions(-) create mode 100644 src/pages/DonateModal/DonateModal.tsx diff --git a/src/layout/sidebar/menu/Menu.tsx b/src/layout/sidebar/menu/Menu.tsx index 7ac200a7..43961a19 100644 --- a/src/layout/sidebar/menu/Menu.tsx +++ b/src/layout/sidebar/menu/Menu.tsx @@ -7,6 +7,8 @@ import type { MenuProps } from 'antd' import { Menu } from 'antd' import { PAGES } from 'src/routes' import { LayoutContextInterface, LayoutCtx } from 'src/layout/LayoutContext' +import DonateModal from 'src/pages/DonateModal/DonateModal' + type MenuItem = Required['items'][number] function getItem( label: React.ReactNode, @@ -25,14 +27,32 @@ function getItem( const MainMenu = () => { const { t } = useTranslation() const { setDrawerOpen } = useContext(LayoutCtx) + const [isDonateModalVisible, setDonateModalVisible] = useState(false) + + const handleDonateClick = (e: React.MouseEvent) => { + e.preventDefault() + setDonateModalVisible(true) + setDrawerOpen(false) + } + const items: MenuItem[] = PAGES.map((itm) => { - return getItem( - setDrawerOpen(false)}> - {t(itm.label)} - , - itm.path, - itm.icon, - ) + if (itm.label === 'donate_title') { + return getItem( + + {t(itm.label)} + , + itm.path, + itm.icon, + ) + } else { + return getItem( + setDrawerOpen(false)}> + {t(itm.label)} + , + itm.path, + itm.icon, + ) + } }) const location = useLocation() @@ -52,13 +72,16 @@ const MainMenu = () => { setCurrent(key) } return ( - + <> + + setDonateModalVisible(false)} /> + ) } diff --git a/src/pages/DonateModal/DonateModal.tsx b/src/pages/DonateModal/DonateModal.tsx new file mode 100644 index 00000000..a37b8aba --- /dev/null +++ b/src/pages/DonateModal/DonateModal.tsx @@ -0,0 +1,87 @@ +import React from 'react' +import { Box, Grid, Modal, Typography } from '@mui/material' +import i18n from 'src/locale/allTranslations' + +interface DonateModalProps { + isVisible: boolean + onClose: () => void +} + +const style = { + position: 'fixed', + top: '50%', + left: '50%', + transform: 'translate(-50%, -50%)', + maxWidth: 1000, + width: '90%', + bgcolor: 'background.paper', + boxShadow: 24, + p: 4, +} as const + +const DonateModal: React.FC = ({ isVisible, onClose }) => { + return ( + + + + + כיצד לתרום? + +

+ מאחורי הקלעים של הפרוייקטים פועל צוות קטן ומסור, שדואג לארגון מפגשי הפיתוח וההאקתונים + ותחזוקת השרתים, שמכתת רגליו בין משרדי ממשלה כדי לשכנע, ללחוץ, ולנדנד לשחרר עוד ועוד + מאגרים; מוודא שהתקשורת תכיר את העבודה שלנו וגם תדע לפנות אלינו בשביל נתונים וניתוחים, + ועושה עוד המון עבודה שוטפת כדי שהפרוייקטים שלנו ייצרו שינוי בעולם. אנחנו זקוקים לתמיכה של + הקהילה כדי להמשיך ולפעול למען ממשל פתוח יותר. היו אבירי שקיפות והצטרפו בתמיכה חודשית. +

+ + + +

תרומה דרך אתר jgive.com

+ + קישור לתרומה + תרום עכשיו + +
+
+ +

תרומה דרך העברה בנקאית

+

+ מומלץ לתרום דרך העברה בנקאית לחשבון הבנק של הסדנא לידע ציבורי, מכיוון שבאפיק זה העמלה + נמוכה יותר +

+ + בנק: יו-בנק (26)
+ סניף: רחביה (262) +
+ חשבון: 419931 +
+ שם החשבון: הסדנא לידע ציבורי +
+ + נא לציין שם מלא וליצור קשר במייל info@hasadna.org.il לאחר התרומה על מנת שנוכל לשלוח + קבלה + +
+
+
+
+ ) +} + +export default DonateModal diff --git a/src/routes/index.tsx b/src/routes/index.tsx index f0596ea3..9d7f4949 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -89,9 +89,9 @@ export const PAGES = [ }, { label: 'donate_title', - path: 'https://www.jgive.com/new/he/ils/donation-targets/3268#donation-modal', + path: '/donate', icon: , - element: null, + element: null, //DonateModal }, { label: 'public_appeal_title',