diff --git a/src/App.css b/src/App.css
index bd72fcd..57d64b9 100644
--- a/src/App.css
+++ b/src/App.css
@@ -8,4 +8,3 @@
flex: 1;
padding-bottom: 56px; /* Space for the bottom navigation */
}
-
diff --git a/src/App.tsx b/src/App.tsx
index 0ffdfda..7fb9c24 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,6 +1,6 @@
import '@/App.css';
-import { ThemeProvider } from '@mui/material';
+import { Box, ThemeProvider } from '@mui/material';
import { BrowserRouter as Router } from 'react-router-dom';
import { Toaster } from 'sonner';
@@ -13,7 +13,7 @@ import { theme } from '@/utils/theme';
const App = () => {
return (
-
+
{
/>
-
+
{/* Main content area where pages will render */}
-
+
{/* Bottom Navigation with React Router links */}
-
+
);
};
diff --git a/src/components/Schedule/index.tsx b/src/components/Schedule/index.tsx
index 7760fe9..f5bf301 100644
--- a/src/components/Schedule/index.tsx
+++ b/src/components/Schedule/index.tsx
@@ -9,7 +9,7 @@ import {
Button,
IconButton,
} from '@mui/material';
-import EventIcon from '@mui/icons-material/Event';
+import CalendarMonthIcon from '@mui/icons-material/CalendarMonth';
import type { Dayjs } from 'dayjs';
import dayjs from 'dayjs';
@@ -75,9 +75,9 @@ const ScheduleBase = ({ events, title, description }: ScheduleBaseProps) => {
Events for {selectedDate?.format('MMMM D, YYYY')}:
{eventsForSelectedDate.length > 0 ? (
- eventsForSelectedDate.map((event) => (
+ eventsForSelectedDate.map((event_) => (
{
p: 2,
mb: 2,
cursor: 'pointer',
+ display: 'flex',
+ justifyContent: 'space-between',
+ alignItems: 'center',
}}
- onClick={() => handleEventClick(event)}
+ onClick={() => handleEventClick(event_)}
>
-
- {event.title}
-
- {event.description}
-
- {dayjs(event.date).format('MMMM D, YYYY, h:mm A')}
-
+
+
+ {event_.title}
+
+ {event_.description}
+
+ {dayjs(event_.date).format('MMMM D, YYYY, h:mm A')}
+
+
+ {event_.supplies.map((supply, index) => (
+
+ {supply.quantityProvided} provided
+
+ ))}
+
+
-
- {event.supplies.map((supply, index) => (
-
- {supply.quantityProvided} provided
-
- ))}
-
+ generateICSFile(event_)}
+ sx={{ fontSize: 12, display: 'flex', flexDirection: 'column' }}
+ >
+
+ Add to Calendar
+
))
) : (
@@ -171,14 +184,6 @@ const ScheduleBase = ({ events, title, description }: ScheduleBaseProps) => {
{supply.itemName} - {supply.quantityProvided} provided
))}
- generateICSFile(selectedEvent)}
- sx={{ mt: 2 }}
- >
-
- Export to Calendar
-
>
)}
diff --git a/src/components/common/Header.tsx b/src/components/common/Header.tsx
index 0d591be..94627ba 100644
--- a/src/components/common/Header.tsx
+++ b/src/components/common/Header.tsx
@@ -31,7 +31,11 @@ const Header = () => {
return (
{/* Back Button */}
diff --git a/src/index.css b/src/index.css
index ec2585e..4109e9b 100644
--- a/src/index.css
+++ b/src/index.css
@@ -1,8 +1,5 @@
body {
margin: 0;
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
- 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
- sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
diff --git a/src/utils/theme.ts b/src/utils/theme.ts
index 3c5713e..f936e00 100644
--- a/src/utils/theme.ts
+++ b/src/utils/theme.ts
@@ -1,18 +1,162 @@
import { createTheme } from '@mui/material/styles';
-export const theme = createTheme({
- palette: {
- primary: {
- light: '#E4E0EE',
- main: '#4E2A84',
- dark: '#361d5c',
- contrastText: '#fff',
- },
- secondary: {
- main: '#f44336',
- },
+const palette = {
+ primary: {
+ light: '#E4E0EE',
+ main: '#4E2A84',
+ dark: '#361d5c',
+ contrastText: '#ffffff',
+ },
+ secondary: {
+ light: '#ff7961',
+ main: '#f44336',
+ dark: '#ba000d',
+ contrastText: '#ffffff',
+ },
+ background: {
+ default: '#ffffff',
+ paper: '#fefefe',
+ },
+ text: {
+ primary: '#2d2d2d',
+ secondary: '#4f4f4f',
},
+};
+
+const theme = createTheme({
typography: {
- fontFamily: 'Roboto, sans-serif',
+ fontFamily: '"Roboto", "Arial", sans-serif',
+ },
+ palette: palette,
+ components: {
+ MuiTypography: {
+ styleOverrides: {
+ root: ({ theme }) => ({
+ color: theme.palette.text.primary,
+ }),
+ },
+ },
+ MuiButton: {
+ styleOverrides: {
+ root: {
+ borderRadius: '20px',
+ padding: '8px 16px',
+ textTransform: 'none',
+ fontWeight: 500,
+ },
+ contained: {
+ boxShadow: 'none',
+ '&:hover': {
+ boxShadow: '0px 4px 10px rgba(0, 0, 0, 0.2)',
+ },
+ },
+ outlined: {
+ borderWidth: '2px',
+ '&:hover': {
+ backgroundColor: 'rgba(0,0,0,0.04)',
+ },
+ },
+ text: {
+ '&:hover': {
+ backgroundColor: 'rgba(0,0,0,0.04)',
+ },
+ },
+ },
+ },
+ MuiPaper: {
+ styleOverrides: {
+ root: {
+ borderRadius: '16px',
+ boxShadow: '0px 2px 8px rgba(0, 0, 0, 0.1)',
+ },
+ },
+ },
+ MuiTextField: {
+ styleOverrides: {
+ root: ({ theme }) => ({
+ '& .MuiInputBase-root': {
+ borderRadius: '8px',
+ backgroundColor: theme.palette.background.paper,
+ },
+ '& .MuiInputBase-input': {
+ padding: '12px',
+ },
+ '& .MuiOutlinedInput-notchedOutline': {
+ borderColor: theme.palette.divider,
+ },
+ '&:hover .MuiOutlinedInput-notchedOutline': {
+ borderColor: theme.palette.primary.main,
+ },
+ '&.Mui-focused .MuiOutlinedInput-notchedOutline': {
+ borderColor: theme.palette.primary.main,
+ },
+ }),
+ },
+ },
+ MuiLink: {
+ styleOverrides: {
+ root: ({ theme }) => ({
+ color: theme.palette.primary.main,
+ textDecoration: 'none',
+ '&:hover': {
+ textDecoration: 'underline',
+ },
+ '&:active': {
+ color: theme.palette.primary.dark,
+ },
+ }),
+ },
+ },
+ MuiCard: {
+ styleOverrides: {
+ root: {
+ borderRadius: '16px',
+ boxShadow: '0px 4px 16px rgba(0, 0, 0, 0.1)',
+ },
+ },
+ },
+ MuiCardContent: {
+ styleOverrides: {
+ root: {
+ padding: '16px',
+ '&:last-child': {
+ paddingBottom: '16px',
+ },
+ },
+ },
+ },
+ MuiDivider: {
+ styleOverrides: {
+ root: {
+ backgroundColor: 'rgba(0, 0, 0, 0.08)',
+ },
+ },
+ },
+ MuiMenu: {
+ styleOverrides: {
+ paper: {
+ borderRadius: '8px',
+ boxShadow: '0px 4px 16px rgba(0, 0, 0, 0.1)',
+ },
+ list: {
+ padding: 0,
+ },
+ },
+ },
+ MuiMenuItem: {
+ styleOverrides: {
+ root: {
+ borderRadius: '8px',
+ margin: '4px 8px',
+ padding: '8px 16px',
+ transition: 'background-color 0.2s ease',
+ '&:hover': {
+ backgroundColor: 'rgba(0, 0, 0, 0.08)',
+ },
+ },
+ },
+ },
},
});
+
+export { theme };