+ {/* Close Drawer Button for small devices */}
+
+
+ {/* Branding Section */}
+
+
+ Talawa Admin Portal
+
+
+ {/* Event Detail Section */}
+
+
+
+
+ {/* Options List */}
+
+
Event Options
+
+
+
+
+
+
+ {/* Profile Section & Logout Btn */}
+
+
+
+
+
+ >
+ );
+};
+
+export default leftDrawerEvent;
diff --git a/src/components/LeftDrawerEvent/LeftDrawerEventWrapper.module.css b/src/components/LeftDrawerEvent/LeftDrawerEventWrapper.module.css
new file mode 100644
index 0000000000..681ac8823d
--- /dev/null
+++ b/src/components/LeftDrawerEvent/LeftDrawerEventWrapper.module.css
@@ -0,0 +1,60 @@
+.pageContainer {
+ display: flex;
+ flex-direction: column;
+ min-height: 100vh;
+ padding: 1rem 1.5rem 0 calc(300px + 2rem + 1.5rem);
+}
+
+.expand {
+ padding-left: 1.5rem;
+ animation: moveLeft 0.5s ease-in-out;
+}
+
+.contract {
+ padding-left: calc(300px + 2rem + 1.5rem);
+ animation: moveRight 0.5s ease-in-out;
+}
+
+@media (max-width: 1120px) {
+ .contract {
+ padding-left: calc(250px + 2rem + 1.5rem);
+ }
+}
+
+/* For tablets */
+@media (max-width: 820px) {
+ .pageContainer {
+ padding-left: 1.5rem;
+ }
+
+ .contract,
+ .expand {
+ animation: none;
+ }
+}
+
+@media (max-width: 820px) {
+ .pageContainer {
+ padding: 1rem;
+ }
+}
+
+@keyframes moveLeft {
+ from {
+ padding-left: calc(300px + 2rem + 1.5rem);
+ }
+
+ to {
+ padding-left: 1.5rem;
+ }
+}
+
+@keyframes moveRight {
+ from {
+ padding-left: 1.5rem;
+ }
+
+ to {
+ padding-left: calc(300px + 2rem + 1.5rem);
+ }
+}
diff --git a/src/components/LeftDrawerEvent/LeftDrawerEventWrapper.test.tsx b/src/components/LeftDrawerEvent/LeftDrawerEventWrapper.test.tsx
new file mode 100644
index 0000000000..72093aaf06
--- /dev/null
+++ b/src/components/LeftDrawerEvent/LeftDrawerEventWrapper.test.tsx
@@ -0,0 +1,94 @@
+import React from 'react';
+import 'jest-localstorage-mock';
+import { render, waitFor, fireEvent } from '@testing-library/react';
+import { I18nextProvider } from 'react-i18next';
+import { BrowserRouter } from 'react-router-dom';
+import i18nForTest from 'utils/i18nForTest';
+import {
+ type InterfacePropType,
+ LeftDrawerEventWrapper,
+} from './LeftDrawerEventWrapper';
+import { MockedProvider } from '@apollo/react-testing';
+import { EVENT_FEEDBACKS } from 'GraphQl/Queries/Queries';
+
+const props: InterfacePropType = {
+ event: {
+ _id: 'testEvent',
+ title: 'Test Event',
+ description: 'Test Description',
+ organization: {
+ _id: 'Test Organization',
+ },
+ },
+ setShowAddEventProjectModal: jest.fn(),
+ children: null,
+};
+
+const mocks = [
+ {
+ request: {
+ query: EVENT_FEEDBACKS,
+ variables: {
+ id: 'testEvent',
+ },
+ },
+ result: {
+ data: {
+ event: {
+ _id: 'testEvent',
+ feedback: [],
+ averageFeedbackScore: 5,
+ },
+ },
+ },
+ },
+];
+
+jest.mock('react-toastify', () => ({
+ toast: {
+ success: jest.fn(),
+ warn: jest.fn(),
+ error: jest.fn(),
+ },
+}));
+
+// Mock the modules for PieChart rendering as they require a trasformer being used (which is not done by Jest)
+// They are required by the feedback statistics component
+jest.mock('@mui/x-charts/PieChart', () => ({
+ pieArcLabelClasses: jest.fn(),
+ PieChart: jest.fn().mockImplementation(() => <>Test>),
+ pieArcClasses: jest.fn(),
+}));
+
+beforeEach(() => {
+ localStorage.setItem('FirstName', 'John');
+ localStorage.setItem('LastName', 'Doe');
+ localStorage.setItem(
+ 'UserImage',
+ 'https://api.dicebear.com/5.x/initials/svg?seed=John%20Doe'
+ );
+});
+
+afterEach(() => {
+ jest.clearAllMocks();
+ localStorage.clear();
+});
+
+describe('Testing Left Drawer Wrapper component for the Event Dashboard', () => {
+ test('Component should be rendered properly and the close menu button should function', async () => {
+ const { queryByText, queryByTestId } = render(
+