diff --git a/src/shared/types/UserSchedule.ts b/src/shared/types/UserSchedule.ts index 9d3eaae1..2fe6534d 100644 --- a/src/shared/types/UserSchedule.ts +++ b/src/shared/types/UserSchedule.ts @@ -4,6 +4,7 @@ import { generateRandomId } from '../util/random'; import { Course } from './Course'; export interface Wallpaper { type: string; + /** Image url will be here */ data?: string; } diff --git a/src/views/components/calendar/Calendar.tsx b/src/views/components/calendar/Calendar.tsx index 1998eccb..617eed42 100644 --- a/src/views/components/calendar/Calendar.tsx +++ b/src/views/components/calendar/Calendar.tsx @@ -28,6 +28,31 @@ import { LargeLogo } from '../common/LogoIcon'; import Text from '../common/Text/Text'; import CalendarFooter from './CalendarFooter'; import DiningAppPromo from './DiningAppPromo'; +import { Wallpaper } from 'src/shared/types/UserSchedule'; + +function getWallpaper(wallpaper?: Wallpaper): React.CSSProperties { + if (!wallpaper || !wallpaper.data || wallpaper.type === 'none') { + return { backgroundColor: 'white' }; + } + + let imageUrl: string; + // get wallpaper image from storage, or just default to white + + if (wallpaper.type === 'custom' && wallpaper.data) { + imageUrl = wallpaper.data; + } else { + // Fallback to white background + return { backgroundColor: 'white' }; + } + + return { + backgroundImage: `url(${imageUrl})`, + backgroundSize: 'cover', + backgroundPosition: 'center', + backgroundRepeat: 'no-repeat', + backgroundOrigin: 'border-box', + }; +} /** * Calendar page component @@ -96,7 +121,7 @@ export default function Calendar(): ReactNode { return ( -
+