655/mobile menu drawer popup#695
Conversation
|
We have two questions about this issue, In the Figma, there are no dark mode/light mode/device Appearance options for the mobile only, so we were wondering if we should follow the Figma or keep everything how it is. |
Great questions! I've asked the UI team about the dark/light mode toggle and will get back to ya'll. About the colors, please try to sync with the current styling of the profile screen/dialog in the Figma. Thanks for your attention to detail. |
The UI team has added the dark mode options to the mobile menu |
LexTruong
left a comment
There was a problem hiding this comment.
Hey guys, looks pretty close. There are few discrepancies with the Figma though:
- The appearance toggle should have a line between the buttons.
- The appearance toggle doesn't take up the full width of the drawer (each button should be less wide).
- It's missing those 2 thin horizontal grey lines.
- The section with the account picture, name, and email should be taller.
- The Sign Out button shouldn't take up the full width of the drawer neither.
- Some of the icons are off (the ones for device and dark shouldn't be filled). Feedback icon is also wrong.
- Could you add the Feedback and Onboarding Tutorial buttons? They should be disabled for now, but we'll need them soon!
|
Also please fix up those merge conflicts. |
|
Sorry it took some time to get to these fixes, I was able to address the general styling issues but for some reason the client seems to suffer a caching error anytime I try and import different MUI icons. I can show this at our next meeting but I'm unsure why this issue seems to be persisting |
TheAbubakrAbu
left a comment
There was a problem hiding this comment.
Nice job, looks great!
* chore: 🔧 merge main changes into dev * fix: 🐛 tRPC configuration gracefully handles missing db url * chore: update next (sync with main) * chore: 🔧 regen pnpm-lock * chore: 🔧 add mui as dep * chore: 🔧 merge temp workflows from main * fix: 🐛 comparison bug perhaps * fix: 🐛 pickable dates now update as expected on the frontend * fix: 🐛 date default mismatch * chore: 🔧 main sync * fix: 🐛 add markdown description optionality * chore: 🔧 add CI testing on dev * fix: 🐛 make AEM_eventList descriptions nullable * feat: 575/dark mode (#583) * chore(frontend): add theme provider dependency for dark mode and locked node to v20 * feat(frontend): add dark mode support using next-themes - preparing to add toggle * feat(frontend): add light/dark mode toggle in sidebar * feat(frontend): change dark mode button a toggle and fix toolbar * feat(frontend): fix meal card text for dark mode * chore: 🔧 pull workflow workarounds from dev * chore: 🔧 merge dev * chore: 🔧 reegn lockfile * chore: 🔧 remerge lockfile again * chore: 🔧 merge dev AGAIN * chore: add better auth secret on GitHub * fix(ui): fix nested button in theme toggle * chore: replace React import with named imports --------- Co-authored-by: Jacob Moy <apixelatedpug@gmail.com> Co-authored-by: Lex Truong <lext@uci.edu> * feat: migrate header and sidebar to MUI (#592) * chore: remove verification from pull request template * chore: add testing instructions * feat: ✨ date selection restriction (#545) * wip: event images * feat(api): add image fetching logic to weeklyJob * fix(api): uncomment contributors and weekly job * perf(api/weekly): add batch updates for menus and dishes in weekly * feat(api): get date range trpc query * chore(api): getDateRange test * feat(frontend): restrict pickable dates on calendar * fix(api): convert Y-M-D date string to local time * fix(frontend): date picker button fits date * fix(frontend): cannot select already selected date * feat(api): get list instead of range of pickable dates * feat(frontend): user selects from list of enabled dates * feat(frontend): restrict calendar navigation to pickable dates * fix(api): error msg and db sorting logic * chore(frontend): removed dup DateList type definition --------- Co-authored-by: LexTruong <82004296+LexTruong@users.noreply.github.com> * feat: deploy to sst (#561) * feat: remove db certs (#565) * fix: db nonsense (#566) * fix: misc sst * chore(lint): 🔧 add lint config and packages (#569) * chore(lint): 🔧 add lint config and packages * chore: 🔧 pull the cool looking logo into README * ci: deploy button * feat: sst more (#571) * fix: 🐛 re-gen pnpm-lock * fix: 🐛 import schema properly * fix: 🐛 update graphql schema * fix: 🐛 add DATABASE_URL secret to environment of root SST config * fix: 🐛 remove hyphen from auth route directory * fix: 🐛 daily no longer requires non-null period data * feat: ✨ change deployment invocation cron from daily to weekly * chore: 🔧 update next to latest version * chore: 🔧 upgrade node version for deployment action * fix: migrations (#578) * fix: migrations (#579) * ci: trigger * fix: await upsert in weekly (#581) * fix: pulumi * fix: 🐛 pickable dates * chore: 🔧 regen pnpm-lock * fix: 🐛 date mismatch * fix: 🐛 remove merge heads from json file * removed extra sidebar content and migrated to MUI * refactor: replace mobile Sheet sidebar with permanent drawer component - Remove SheetClose wrapper from SidebarButton to support always-visible drawer - Replace SheetContent with plain div container in SidebarContent - Add @mui/icons-material dependency for Material-UI icon components - Rename Toolbar component to Header for better semantic clarity - Remove @emotion/react direct dependency (retained as peer dependency via @mui/material) * fix(ui): migrate sidebar from shadcn to MUI components - Move Drawer management from Header to SidebarContent component - Replace shadcn Button with MUI ButtonBase in SidebarButton - Add onClose callback prop to SidebarButton for drawer dismissal - Remove unused Drawer import from Header component - Maintain existing styling and functionality while aligning with MUI design system * fix: Route for meal tracker corrected * fix: replace Header with Toolbar * fix: change Toolbar back to Header * fix(frontend): header; converted some styling to tailwind; clean up imports and comments * changed styling to tailwind * removed unnecessary comments * fix: no switch inside button * chore: ghost commit after unlocking sst instance --------- Co-authored-by: Jacob Moy <79670488+EightBitByte@users.noreply.github.com> Co-authored-by: LexTruong <82004296+LexTruong@users.noreply.github.com> Co-authored-by: Kevin Wu <kevinwu098@gmail.com> Co-authored-by: Jacob Moy <apixelatedpug@gmail.com> Co-authored-by: Pranav Batra <batrap1@uci.edu> Co-authored-by: William <wilyan090@gmail.com> Co-authored-by: Lex Truong <lext@uci.edu> * feat: migrate card and drawer to MUI (#590) * update packages * feat(frontend): integrated MUI with event card + testing ui (just card, not drawer yet) * feat(frontend): edited sx prop to match prev. styles * feat(frontend): updated food + rating card to MUI styles. todo: migrate dialog+drawer components to render clicks * feat(frontend): updated event-dialog, food-dialog, ratings-card to render clicks, integrate MUI and match figma styles * feat(frontend): integrated MUI styles in event and food drawer * feat: updated event card and food card to be seen through on the sides * feat: left aligned nutrition label on food card * fix!: 💥 🐛 merge pnpm-lock from dev (regen on dev) * fix: 🐛 checkout pnpm-lock from dev * chore: 🔧 regen lockfile * chore: 🔧 remove autogenerated .next directories * chore: 🔧 add .next to gitignore * feat(frontend): edited CSS styles so button matches body font + leaves text as is * chore: 🔧 regen lockfile * fix: remove duplicate migration files --------- Co-authored-by: SAMIKA BHAVESH BHATKAR <samikabhatkar@gmail.com> Co-authored-by: Jacob Moy <apixelatedpug@gmail.com> Co-authored-by: Lex Truong <lext@uci.edu> * feat: improve backend performance (#591) * Add stale time and selective refreshing to tRPC * Use multi-threading to speed up wwekly cron job * Optimize data-derivation with zustand Deriving display data from what was in the database was a costly operation, so zustand helps prevent needlessly re-computing the display data. * chore: 🔧 pull dev CI changes --------- Co-authored-by: Jacob Moy <apixelatedpug@gmail.com> Co-authored-by: Lex Truong <lext@uci.edu> * fix: await weekly upsert promise Co-authored by: Dante Dam <laggycomputer@yahoo.com> * feat: integrate user features with ICSSC Auth (#603) * fix: drizzle config includes new tables * fix: auth uses env base url var * fix: regenerated 0002_snapshot with new tables * feat: meal planner integrated with auth * refactor: removed unnecessary useFavorites hook on home page * feat: favorites integrated with auth * refactor: lifted useSession hook from meal card * feat: sidebar user feature tabs disabled if not logged in * feat: integrate ratings with auth * feat: ratings card uses drawer on mobile * feat: can log same meal many times * fix: favorites page passes userid to cards * fix: meal tracker page padding and meal card star fill * chore: replace social provider with genericOAuth plugin * fix: set pkce in auth config * fix: get user's profile image from icssc auth * fix: add betterauth secret and base url to sst config * chore: set client id in sst config * chore: todo snackbar comments Co-authored-by: Jacob Moy <79670488+EightBitByte@users.noreply.github.com> * fix: rename meal-tracker page to nutrition * refactor: move hall store to context folder * feat: get session and store/clear userid in root layout component * feat: use stored userId instead of prop drilling in interactive star rating * chore: get userId with store instead of auth session --------- Co-authored-by: Jacob Moy <79670488+EightBitByte@users.noreply.github.com> * feat: ✨ merge 598/meal drawer dialog UI (#605) * fixed image properties to fit event dialog/drawer * feat(frontend): edited food dialog/drawer to match figma styles * feat(frontend): fixed event card img to be centered on mobile * feat:frontend(minor styling fixes on event card) * feat(frontend): overwrote inter font w/ poppins * removed pin from food drawer * feat ✨ 594/icon migration (Lucide -> MUI) (#612) * chore: 🔧 add mui icons as a dependency * chore: 🔧 icon replacement in progress * chore: 🔧 remove dupes, regen lockfile * chore: 🔧 switched from lucide icons to MUI icons in food-card.tsx * chore: 🔧 switched from lucide icons to MUI icons in event-card.tsx * chore: switched from lucide icons to MUI icons in ratings-card.tsx (HAS ERRORS) * chore: 🔧 removed Lucide dependency * chore: changed from Lucide to MUI icon components for all components in ui (HAS ERRORS) * chore: changed from Lucide to MUI icon components in /utils/types.ts (HAS ERRORS) * chore: merge dev * chore: merge dev * chore: 🔧 merge dev AGAIN * chore: 🔧 merge dev (hopefully the last time) * chore: 🔧 merge, merge, merge... * chore: 🔧 regen lockfile * fix: 🐛 remove double import of tRPC --------- Co-authored-by: Jacob Moy <apixelatedpug@gmail.com> Co-authored-by: Yitong Liu <yitonl21@uci.edu> * feat: ✨ 599/migrate toolbar to new UI (#613) * feat: redesign toolbar to follow figma design * fix(front): match toolbar to figma * chore: merge with dev * fix: gradient added to images for toolbar visability, added google image to nextjs config remote pattern * fix: marked gradient as important for tailwind * chore: merge dev * merge dev? --------- Co-authored-by: Lex Truong <lext@uci.edu> Co-authored-by: Jacob Moy <apixelatedpug@gmail.com> Co-authored-by: Jacob Moy <79670488+EightBitByte@users.noreply.github.com> * chore: 🔧 increase timeout for AEMEventList test (#607) * chore: 🔧 bump the timeout even more for AEMEventList * 602/database investigation (#609) * chore(db): update test data to not use dish.menuId usage * feat(db): modernize restaurant ids, indexes, and number fields * chore(db): add migration, docs, and constraint fix * refactor(db): remove dishes menu_id and use join table * chore(db): fix journal.json merge conflict * chore(db): fix journal.json merge conflict time for idx 3 * chore(db): fix zotmeal.sql merge conflict * chore(db): fix snapshot.json merge conflict * fix(db): change test period restaurant id --------- Co-authored-by: elmallaa <elmallaa@uci.edu> * feat: ✨ add robust toolbar item modification, styling * feat: ✨ 597/meal card new UI (#608) * added simplified property * make the isSimplified property default to false * added simplified property * make the isSimplified property default to false * feat: simplified food card * feat: organize food cards to be placed horizontally when multiple exists * feat: added plus button to the simplified food card * fix: added back user feedback button onClick functionality * feat: updated ui for the nonsimplified food card * feat: made the regular food card a smaller width so two can fit in a row consistent with the simplified food card * chore: maintain consistent width for simplified card * chore: reduced duplicated code in div styling for non simpified food card * fix: vertically centered food icon and make it smaller * fix: make the average rating a more apparent gray * fix: favorite button works when clicked * fix: added gap for spacing between text description and favorite button * feat: added card view and compact view buttons * chore: revert back to previous FoodCardContent style * fix: remove food tracker button * chore: 🔧 fix merge conflicts * chore: 🔧 fix another merge conflict * fix: 🐛 remove duplicate DishesInfo --------- Co-authored-by: Jacob Moy <apixelatedpug@gmail.com> * chore: 🔧 625/update literals (#626) * chore!: update literals * chore: 🔧 update all sql files * fix: 🐛 update logo path * fix: 🐛 await async in test * fix: 🐛 remove redundancies from snapshot * fix!: 💥 🐛 generate migration * fix: 🐛 add manual changes to migration * chore: 🔧 remove turbo usage in graphql script * fix: 🐛 add 15s timeout to AdobeECommerce Parsing * fix: 🐛 legacy restaurant id enum now casts * fix: 🐛 migrate unknown prices to 0 * fix: 🐛 nutrition infos now default to zero when empty string * chore: 🔧 merge dev * fix: 🐛 update some literals changed in the merge * feat: migrate sidebar to new UI (#606) * converted sidebar to menu component * removed unnecessary comments * fixed 'about' href * added feedback button & restyled to better represent figma * fixed bug where menu popped up on left side after switching tabs, now auto closes when tabs are switched * fix(frontend): scaled down menu to better fit screen & switched out lucide-react icons with MUI * feat(frontend): changed sign out button to sign in if user not logged in * chore: fixed header/toolbar conflict * feat(frontend): fixed signin/signout issue * feat(frontend): made menu button white * feat(frontend): fixed dark/light mode toggle * fix: 🐛 biome checks * fix: 🐛 center sign out button --------- Co-authored-by: Pranav Batra <batrap1@uci.edu> Co-authored-by: Lex Truong <lext@uci.edu> * feat: 601/meal images (#621) * feat(db): ✨ add dishes.image_url column and migration * feat(api): ✨ ingest and upsert dish imageUrl from location recipes * feat(api): ✨ return dish imageUrl in restaurants query * feat(web): ✨ display dish images on cards, dialogs, and drawers with fallbacks * fix: 🐛 switch to Next Image and regenerate dish image migration * chore: 🔧 resolved merge conflicts * chore: resolved merge conflicts and merged dev again * fix: 🐛 revert local db port to 5432 * fix: 🐛 migrations * fix: 🐛 update migration for prod db * fix: 🐛 move "if not exists" to proper spot * chore: 🖌️ MUI Style Injection (#614) * chore: 🔧 add MUI app router cache provider * chore: 🔧 modify theme-provider with MUI theme * fix: 🐛 mui adopts tailwind styles now * chore(ui): 🔧 define palette, fix card switcher * fix(ui): 🐛 card starborder thickness * feat: User Onboarding (#632) * chore: 🔧 wip mobile stepper and responsive dialog/drawer * chore: 🔧 stepper steps skeleton * feat(backend): ✨ added tables for user allergies & dietary prefs w/ migrations * feat(backend): ✨ added procedures to add/remove/update allergies & preferences * feat: ✨ onboarding styling * feat(backend): ✨ added procedures for allergies & preferences * chore: 🔧 add hasOnboarded flag to user table * fix: 🐛 client reads new user schema * fix: 🐛 back/next button logic, dialog shows only for new users * chore: 🔧 get user name from auth * chore: 🔧 back/next button styling * fix: 🐛 docker port change, regen meal image migration file * feat(backend): ✨ rewrote services to take in arrays & added trpc routers * fix: 🐛 regen migration files * chore: 🔧 dialog text styling * fix: 🐛 next/back button size * fix: 🐛 add preference and allergy routers to root routher * refactor: ♻️ add procedures use upsert util and return void * fix: 🐛 back/next button color * chore: 🔧 onboard tRPC procedure in user router * feat: ✨ save prefs and allergies during onboarding --------- Co-authored-by: Pranav Batra <batrap1@uci.edu> Co-authored-by: Jacob Moy <79670488+EightBitByte@users.noreply.github.com> * feat: Meal Card Improvements (#628) * feat(frontend): add "Add to meal tracker" button * feat(frontend): add scrolling and finalize meal tracker * feat: ✨ restaurant page (#617) * feat: ✨ add brandywine/anteatery pages * fix: 🐛 updated components of react to tailwind * fix: 🐛 conditional map for brandy and anteatery * fix: 🐛 adjusted sidebar width to be consistent * fix: 🐛 quality of life sizing fixes * fix: 🐛 added padding to bottom of page * feat(front): ✨ add correct cards and compact view styling and layout * feat: ✨ made large portion layout of mobile design for dining halls * fix: 🐛 alignment with figma, css base changed to poppins, sub catagories open close times deleted * fix: 🐛 meal and date selection to match figma and use mui components * fix: 🐛 remove shadcn and correct colors * fix: 🐛 minor desktop mobile differences and width increase * fix(ui): 🐛 figma allignment desktop hours operation location schedules * fix: 🐛 added map link to address, mobile layout dimensions * fix: 🐛 desktop meal selector * fix: 🐛 select color, dependencies * fix: 🐛 disables pressing buttons on mobile changing the padding * feat: ✨ restructure restaurant into smaller file components, page migrated into folder * fix: 🐛 props --------- Co-authored-by: Kelvin Truong <klvntrng456@gmail.com> * feat: ✨ new homepage (#616) * feat: ✨ rewrote desktop homepage layout * chore: 🔧 fix comments and need to refactor into components later * fix: 🐛 revert back to original mobile view * chore: 🔧 rewrote getting all of brandywine and anteatery dishes * fix: 🐛 small changes to restaurant card * fix: 🐛 made event card sort by earliest event showing first left to right * fix: 🐛 remove restaurant card transitions * fix: 🐛 made dining halls text size larger * chore: 🔧 rename ambigious variables * fix: 🐛 pull migrations from dev * feat: ✨ developed popular cards with images and ratings sorted * fix: 🐛 make food image adjust to the card dynamically * feat: ✨ made mobile page & methods for handling getting hall, popular today, and upcoming events data * feat: ✨ adjusted popularDishCard and UpcomingEventCard sizing depending on mobile/desktop view * feat: ✨ temporarily hiding navigation bar in mobile view * feat: ✨ added the mobile toolbar * feat: ✨ added extra sapcing for mobile view so toolbar doesn't overlap content * style: 🎨 fix coloring on headers * feat: ✨ replaced the emoji text with the given IconComponent * feat: ✨ altered number of cards displayed on mobile view vs desktop view * refactor: ♻️ moved components to the right folder * refactor: ♻️ remove the event card component in homepage * fix: 🐛 changed button element to use mui card * style: 🎨 remove commented code * style: 🎨 forgot to remove mobile component comment * refactor: ♻️ moved helper functions to utils folder in funcs.ts * fix: 🐛 added back the mobile toolbar * feat: ✨ replaced google sign in with profile icon on mobile and fixed hydration error * feat: ✨ uses name for sign on * fix: 🐛 iconbutton on mobile topbar because of globals.css WARNING: TEMP FIX AND NOT LONG TERM SOLUTION * fix: 🐛 revert global.css change * style: 🎨 removed border styling and shadow to hide the toolbar look --------- Co-authored-by: Jacob Moy <apixelatedpug@gmail.com> Co-authored-by: Yitong Liu <yitonl21@uci.edu> * feat: ✨ meal tracker (#564) * feat(meal-tracker): add meal log feedback, auth errors, and quantity controls * fix: 🐛 replaced sonner with MUI components * chore: 🔧 merge dev * chore: 🔧 regen lockfile * chore: 🔧 replaced toast instances with Snackbar * chore: 🔧 removed sonner dependency and switched from Lucide to MUI icons * fix: 🐛 defined Snackbar in a Zustand store * feat: ✨ added new Zustand store for globalizing userId information * chore: 🔧 resolved merge conflicts * chore: 🔧 resolved merge conflict * fix: 🐛 remove dependencies from root package.json * fix: 🐛 user store loading state * chore: 🔧 replace alerts with snackbars * fix: 🐛 import mui icon * fix: 🐛 remove extra migration file * chore: 🔧 use snackbar for log meal button * refactor!: 💥 ♻️ move incr/decr servings code from food card to nutrition page * fix: 🐛 incr/decr serving func params * feat: ✨ incr/decr buttons * refactor: ♻️ use onConflictDoUpdate to change num servings * feat: ✨ trash bin mui icon button * fix: 🐛 delete mutation uses loggedMeal id rather than dishId * feat: ✨ update meal procedure * fix: 🐛 remove add button on food card --------- Co-authored-by: Yitong Liu <yitonl21@uci.edu> Co-authored-by: Jacob Moy <apixelatedpug@gmail.com> Co-authored-by: Lex Truong <lext@uci.edu> Co-authored-by: Jacob Moy <79670488+EightBitByte@users.noreply.github.com> * feat: pwa setup (#648) * feat(pwa): ✨ add PWA dependencies and headers * feat(pwa): ✨ add pwa manifest and app icons * feat(pwa): ✨ add service worker and server actions * feat(pwa): ✨ add PWA utilities and client integration * feat(pwa): ✨ add PWA test page * chore: add todo for highlighting * docs(pwa): 📚️ add comment explaining why sw.js is JS and not TS --------- Co-authored-by: Jacob Moy <79670488+EightBitByte@users.noreply.github.com> * fix: remove duplicate children from layout-client (#653) * feat: ✨ events page (#620) * feat(frontend): ✨ add grid layout and header to events page (need to fix UI) * feat(frontend): ✨ cleaned up styles of event card to better match figma * feat(frontend): ✨ added function to filter thru data for brandy/eatery events * feat(frontend): ✨ added events badge, reworked dialog/drawer styles * fix: 🐛 add react big calendar and localizer * fix: 🐛 weird formatting * fix: 🐛 change hardcoded calendar header * feat: ✨ add "inBetween" trpc for events in a range * feat(events): ✨ view previous months' events * feat(frontend): ✨ added dark mode classes for buttons on events page * feat(frontend): ✨ added gray strip behind toolbar on events page * feat(frontend): ✨ reset migrations, added calendar component, changed navbar bg to blue * feat(frontend): ✨ restyled event drawer props to test sizing issue * refactor: ♻️ remove unnecessary comments * refactor: ♻️ move calendar to separate component Consolidate calendar logic into one component, including the modal and drawer for event details. * refactor: ♻️ use date-fns instead of moment Replace the localizer used by react-big-calendar * chore: 🔧 remove moment.js from deps * chore: 🔧 remove unnecessary imports * fix: 🐛 add dark mode styles For both grid view and calendar view, as well as the event-dialog popup. * feat(frontend): ✨ removed comments from event card * feat(chore): ✨ 🔧 installed packages to try and fix failing checks * feat(chore): ✨ 🔧 added conditional logic to migration file to fix failing check * feat(chore): ✨ 🔧 recover correct migration files * feat(chore): ✨ 🔧 remove autogenerated migration file from drizzle * feat(frontend): ✨ fixed cropping issue on images on event dialog/drawer * feat(frontend): ✨ added horizontal scroll on events page * refactor: ♻️ use date-fns instead of moment --------- Co-authored-by: SAMIKA BHAVESH BHATKAR <samikabhatkar@gmail.com> Co-authored-by: Jacob Moy <79670488+EightBitByte@users.noreply.github.com> * edit preferences dialog (#650) * feat: ✨ add edit preferences ui in sidebar * feat: ✨ add backend logic Sync data up to backend, handle getting and updating data. * fix: 🐛 prevent interaction when logged out Buttons cannot be clicked while the user is logged out. Added tooltip telling them to log in. * fix: 🐛 padding * fix: 🐛 issue with data not persisting on re-open * fix: 🐛 remove unnecessary page Created this page as a result of miscommunication. Now removed it. * fix: 🐛 add a bit of space to popup * fix: 🐛 resized drawer to fit screen on mobile * fix: 🐛 bolded edit preferences in profile, changed alert when saving, fixed ui sizing * fix: 🐛 update edit preferences dialog styling, dark mode, and custom allergy support * fix: 🐛 mobile edit preferences popup sizing, mobile button sizing * fix: 🐛 fixed edit preferences header text and icon * fix: 🐛 fixed edit preferences headers again, changed finish to update --------- Co-authored-by: Kelvin Truong <klvntrng456@gmail.com> * feat: dietary preferences and allergens functionality * feat(frontend): ✨ put users prefs/allergies on user card after onboarding * feat(frontend): ✨ added conflict badge on items that don't meet dietary prefs/restrictions * feat(frontend): ✨ added feature to allow users to only see meals matching their prefs * fix(frontend): 🐛 fixed show preferences toggle button * feat(frontend): ✨ added conflict badge to dialog/drawer * chore: 🔧 removed unnecessary comments * feat(frontend): ✨ conflict badge shows on mobile * feat(frontend): ✨ food dialog displays specific pref/allergy being violated * feat(frontend): ✨ changed conflict badge to MUI exclamation icon * feat(frontend): ✨ fixed design of exclamation points on food cards and dialogs --------- Co-authored-by: Pranav Batra <batrap1@uci.edu> Co-authored-by: Lex Truong <lext@uci.edu> * feat(frontend): improve toolbar visibility * feat(frontend): ✨ added conditional toolbar styling based on current route * feat(touchup): ✨ removed menu button when user is not logged in * feat(style): ✨ 🎨 added transparent conditioning for mobile * feat(style): ✨ 🎨 added grey line on desktop bar for non-transparent pages * feat(frontend): ✨ removed food court href, added nutrition page --------- Co-authored-by: LexTruong <82004296+LexTruong@users.noreply.github.com> Co-authored-by: Lex Truong <lext@uci.edu> Co-authored-by: Abubakr Elmallah <130480156+TheAbubakrAbu@users.noreply.github.com> * feat: ✨ foods page (#647) * feat: ✨ initial baseline of my foods page * fix: 🐛 drawer styling not right * style: 🎨 screen padding size * refactor: ♻️ use variable to store slotprops * style: 🎨 locationfilter border * style: 🎨 even more changes * style: 🎨 divider * fix: 🐛 renamed filter and additional style changes * feat: ✨ completed remaining filter options * style: 🎨 toolbar and its elements * style: 🎨 more changes * feat: ✨ migrated to mui select * feat: ✨ made filter by next to select component * style: 🎨 filter and gaps, mobile ayout and icons aligned with figma * feat: ✨ added the station name next to restaurant and fixed stars * style: 🎨 made stars bigger * style: 🎨 fix lower portion of my food card * style: 🎨 fix the rating wording and its visual changes * fix: 🐛 remove rating text from mobile but keeping star ratings * fix: 🐛 mobile figma design consistancy and filter box consistancy between plaform * style: 🎨 remove top of page padding on mobile * style: 🎨 unify text color * style: 🎨 fixed popular today spacing * fix: 🐛 removed the event card tag and prevented words from going off screen for the event title * fix: 🐛 make event card title break on words instead of being cut off * style: 🎨 added elipses when the word cant be displayed because of size --------- Co-authored-by: William <wilyan090@gmail.com> * chore: 🔧 merge main into dev * fix: 🐛 repeat onboard popup (#649) * feat: ✨ prevent closed popup from re-opening Used localstorage to save that it's been previously closed * refactor: ♻️ simplify code by combining two checks Combine DB and local storage onboarding checks into single hasOnboarded variable. * fix: 🐛 critical typo * refactor: ♻️ replace localstorage with userStore * fix: 🐛 undo breaking merge * fix: 🐛 dialog was re-appearing when logged out * fix: 🐛 join old home page with onboard fix * feat: 🖌️ updated food card styling (#629) * refactor: ♻️ compact -> card is now just style change * fix(ui): 🐛 text description overflow cuts off with ellipses * fix(ui): 🐛 use MUI typography * fix(ui): 🐛 toolbar no longer has a overlay in dark mode * fix(ui): 🐛 food card pop-ups' titles have scaling font size * feat: ✨ replace custom rating component with MUI built-in * refactor: ♻️ favorite into separate component, add tooltip when not logged in * chore: 🔧 oops, add favorite to food-card file * chore: 🔧 remove add meal tracker button from card front * chore: 🔧 change tooltips to use imperative verb * chore: 🔧 add tooltip and disable add meal tracker button on unauthenticated user * fix: 🐛 dialogs have prior user ratings * fix(ui): 🐛 enlarge food card images * fix: 🐛 unify card height * fix: 🐛 overflow pushing favorite out of bounds * fix: 🐛 standard card view favorite visibility * fix(ui): 🐛 re-add transparency to toolbar * fix: 🐛 compact card favorite overflow * fix(mobile): 🐛 pressing dining button while on page will switch dining halls (#683) * fix: 🐛 resize anteatery button to fit within mobile screen (#684) * fix: 🐛 anteatery button fit within mobile screen * style: 🎨 add truncation so overflow text is still within the button space * fix: 🐛 skip erroring test (#687) * feat: Meal Tracker Page #652 * feat(frontend): ✨ added header + nutrition breakdown column on nutrition page * feat(frontend): ✨ added userGoal table and macro counting component on nutrition page * feat(frontend): ✨ remove datastring from props * feat(frontend): ✨ edited macro breakdown + added history button * feat: ✨ tracked-meal-card displays food card details, has working delete button & WIP diet plan button * fix: 🐛 corrected tracked-meal-card to reflect food-card's implemenetation * feat: ✨ added edit servings/bowls functionality * feat: ✨ added checking for unavailable dishes * fix: 🐛 tracker heading displays date * feat: ✨ if diet plan tagged but unavailable, move to uncounted foods * fix: 🐛 corrected nutrition breakdown overflow * feat(frontend): ✨ fixed mobile view of tracker page * feat(frontend): ✨ fixed edit box bug * feat(fix): ✨ 🐛 changed protein default to 100 g * feat(fix): ✨ 🐛 clicking outside edit goals component works * feat(fix): ✨ 🐛 removed duplicate logged meals procedure * feat(frontend): ✨ added prev meals/history logic, need to fix some bugs * feat(fix): ✨ 🐛 cleaned up dialog click issues * feat(fix): ✨ 🐛 removed diet plan logic * feat(style): ✨ 🎨 added drawer for meal history tracker * feat(build): ✨ 📦️ added usergoalsbyday table + trpc procedures * feat(style): ✨ 🎨 fixed counted food card to be wider on mobile * feat(fix): ✨ 🐛 removed goalsbyday import in index.ts * feat(fix): ✨ 🐛 had to export userGoalsByDay in index.ts (not sure why it wont work otherwise) * feat(frontend): ✨ added suggested foods section * feat(frontend): ✨ added search component to scroll for foods * feat(chore): ✨ 🔧 used mui disable date prop on tracker history * feat(frontend): ✨ updated onchange event + added onblur event to fix 0 input issue * feat(frontend): ✨ changed suggested meal logic to 1 meal instead of 5 * fix(chore): 🐛 🔧 corrected nutrition breakdown overflow * fix: 🐛 fixed suggested food cards spacing to match counted food cards * fix(chore): 🐛 🔧 changed nutrition goals to update after user clicks off textbox * fix: 🐛 unavailable food cards greyed out & automatically pushed to suggested foods * fix: 🐛 save goals on enter or click out of modal --------- Co-authored-by: SAMIKA BHAVESH BHATKAR <samikabhatkar@gmail.com> Co-authored-by: Yitong Liu <yitonl21@uci.edu> Co-authored-by: Lex Truong <lext@uci.edu> * fix: 🐛 remove duplicate tracker link in toolbar * fix: 🐛 changed events to show in chronological order (#697) * feat: dark mode + MUI integration (#712) * feat: ✨ update dark mode CSS variables to match Figma design * feat: ✨ convert main page to MUI components for dark mode theme inheritance * feat: ✨ convert popular-dish-card to MUI components for dark mode * feat: ✨ convert upcoming-event-card to MUI components for dark mode * feat: ✨ convert food-card to MUI components for dark mode * feat: ✨ fix card backgrounds for dark mode in page, food-card and event-card * feat: ✨ convert ratings-card to MUI components for dark mode * feat: ✨ convert sidebar-content to MUI components for dark mode * feat: ✨ convert toolbar to MUI components for dark mode * feat: ✨ convert restaurant and dialog components to MUI for dark mode * feat: ✨ convert pages to MUI components for dark mode * feat: ✨ fix dark mode conflicts and patch new features for dark mode * feat: ✨ convert my-foods-card and food-dialog-content to MUI components for dark mode * feat: ✨ convert my-foods page to MUI components for dark mode * feat: ✨ fix mobile dark mode for drawers, filters, tabs, toolbar and my-foods page * fix: 🐛 correct mobile nav tracker route from /tracker to /nutrition * feat: ✨ convert nutrition goals to MUI components for dark mode * feat: ✨ convert meal tracker and all nutrition components to MUI for dark mode * feat: ✨ convert onboarding to MUI components for dark mode * fix: 🐛 themes on refresh and logout login (#680) * fix: 🐛 themes on refresh and logout login * chore: Fix formatting issues in theme-provider.tsx * revert: ⏪️ merge with dev * fix: 🐛 properly merge new dark palette changes * fix: 🐛 wrapper waits for mount before applying theme --------- Co-authored-by: Jacob Moy <79670488+EightBitByte@users.noreply.github.com> Co-authored-by: Jacob Moy <apixelatedpug@gmail.com> * fix: 🐛 preferences filtering (#685) * feat(frontend): ✨ changed flags to specifically t/f instead of null as well * chore: 🔧 remove allergy violation console log * feat: ✨ show prefs button disabled for guests * fix: 🐛 show prefs button grey-out on disable --------- Co-authored-by: Jacob Moy <79670488+EightBitByte@users.noreply.github.com> Co-authored-by: Jacob Moy <apixelatedpug@gmail.com> * 672/event types (#705) * feat(frontend): ✨ added different event types based on keywords/regex patterns * feat(chore): ✨ 🔧 altered event-type-badge to use classifyEvents() * feat(chore): ✨ 🔧 altered upcoming-event-card to use EventTypeBadge * feat(frontend): ✨ fixed bad imports and slightly updated event classif logic * feat: ✨ added new filtered event types buttons on event page Co-authored-by: Copilot <copilot@github.com> * feat: ✨ reworked upcoming-event-card to reflect new event badge * fix(chore): 🐛 🔧 corrected EventTypeBadge usage in event-dialog-content * fix(chore): 🐛 🔧 eventTypeBadge is hidden on mobile home screen * feat(chore): ✨ 🔧 added more ethinicities to cultural keywords --------- Co-authored-by: Pranav Batra <pranav.batra2006@gmail.com> Co-authored-by: Yitong Liu <yitonl21@uci.edu> Co-authored-by: Copilot <copilot@github.com> * feat(styling): ✨ fixed cut off characters on home event card (#694) * 679-686/Popular Dish Card Rework (#688) * feat: ✨ added meal tracker logic to popular-dish-card * feat: ✨ reformatted popular-dish-card to reflect food-card * fix(chore): 🐛 🔧 corrected small bug (FoodDialogContent used instead of FoodDrawerContent in mobile view) * fix: 🐛 missing imports Co-authored-by: Copilot <copilot@github.com> --------- Co-authored-by: Yitong Liu <yitonl21@uci.edu> Co-authored-by: Lex Truong <lext@uci.edu> Co-authored-by: Copilot <copilot@github.com> * fix: 🐛 show upcoming event card title on mobile Co-authored-by: Copilot <copilot@github.com> * feat: ✨ integrate AAPI routes (#637) * refactor!: 💥 ♻️ drop unnecessary tables, alter dishes * feat!: 💥 ✨ add dish get procedure * chore(db): 🔧 re-add num ratings, add models * feat(api): ✨ migrate dining types and dates to AnteaterAPI * feat(api): ✨ migrate dining payloads to AnteaterAPI * feat(api): ✨ update response zod model * feat(db): ✨ get procedure adds dish to table if not found * feat(db): ✨ add ratings back to table in migration * feat(api): ✨ events router * feat(db)!: 💥 ✨ favorites table entry now references a restaurant * feat(db): ✨ remove redundant meal name from loggedMeals * refactor(api): ♻️ move getDishes procedure into a service * refactor(api): ♻️ remove menus services from api * feat(api): ✨ getMealsInLastWeek now queries API for nutrition info instead of db * refactor(api): ♻️ remove period and restaurant api * feat(api): ✨ restaurant services * test(api): 🚨 available date range * test(api): 🚨 dish rating tests re-added * feat: ✨ restaurant page functionality * fix: 🐛 food cards now show images when available * feat: ✨ event functionality * feat: ✨ homepage functionality * fix: 🐛 migration errors * fix(db): 🐛 favorites restaurant column issue * test(api): 🚨 ratings tests * refactor(server): ♻️ removal of daily cron * fix: 🐛 favorite functionality * refactor(db)!: 💥 ♻️ allergies and dietary preferences now use enum * feat: ✨ dietary restriction & preferences * fix(api): 🐛 fix dining routes * fix(next): 🐛 fix nutrition page types * fix(next): 🐛 fix tracker, ratings, and UI types * fix(next): 🐛 fix event and build types * fix: 🐛 finish dining migration cleanup * fix(migration): 🐛 remove nulls from ratings table's restaurant field * revert: ⏪️ event cards only take a single description * fix(ratings): 🐛 ratings callback takes a restaurant field * fix(db): 🐛 update user_allergies to match enum * fix(test): 🐛 🚨 ratings testData includes restaurant * fix: 🐛 general fixes (event, restaurant drilling) --------- Co-authored-by: TheAbubakrAbu <ammelmallah@icloud.com> * 710/bug bashing 1 (#720) * fix: 🐛 dev account no longer visible on mobile * fix: 🐛 incorrect capitalization gone * fix: 🐛 doesn't show previous meal tracker days, only current * fix: 🐛 removed temp test account for both mobile and desktop * fix: 🐛 no meals logged message * feat: new about page (#698) * feat: ✨ increase content width to match figma * feat: ✨ make links open in new tab * fix: 🐛 dark mode improvements * fix: attempt merge fix Replaced Typography component with a heading for the about section and added buttons for GitHub and ICSSC links. * feat: ✨ optimistic updates for favorites, ratings, meal tracking (#716) Co-authored-by: Jacob Moy <apixelatedpug@gmail.com> * bug: Font Injection Fix (#738) * chore: 🔧 add css type declaration * fix: 🐛 re-add poppins google import * ✨ PostHog Analytics (#717) (#721) * chore: 🔧 run posthog wizard * chore: 🔧 update packages * fix: 🐛 unsorted deps * chore: 🔧 update github actions with posthog tokens * fix(analytics): 🐛 replace next config rewrite with custom route handler for posthog proxy * fix(analytics): 🐛 replace next config rewrite with custom route handler for posthog proxy * fix: 🐛 maybe fix the route? * fix: 🐛 exclude ingest route from service worker interception * fix: 🐛 remove content-encoding headers for gzip/br * fix!: 💥 🐛 disable gzip compression for posthog events temporarily * style: 🎨 clean up posthog route * style: 🎨 remove auto-gen docs * refactor: extract useRestaurantPage hook and fix any types in restaurant components (#731) * refactor: ♻️ extract useRestaurantPage hook and fix any types in restaurant components - Extract useRestaurantPage hook from RestaurantPage component - Moves all useState, useMemo, useEffect, and tRPC calls out of the component into a dedicated hook (hooks/useRestaurantPage.ts) - Relocates the getCurrentPeriod helper into the hook file with a JSDoc - RestaurantPage is now a pure layout/render component (~160 lines vs 326) - Fix any[] types across restaurant sub-components - restaurant-controls.tsx: stations: Station[], hallEvents: Event[] - desktop-tabs.tsx: stations: Station[] - mobile-actions.tsx: dishes: DishWithRating[], stations: Station[], hallEvents: Event[] - Additional fixes surfaced by stricter typing - dishes-view.tsx: relax activeStation to Station | undefined (can be undefined while data is loading) - mobile-actions.tsx: fix event.shortDescription → event.description to match the actual Event type from @peterplate/validators - restaurant-controls.tsx: remove misleading //...props comments; improve inline comments for clarity - Remove unnecessary hallData useMemo wrapper in restaurant-page.tsx; replace with a plain derived value * refactor: ♻️ eliminate prop drilling via useRestaurantUIStore Add useRestaurantUIStore (Zustand) to hold all interactive UI state for the restaurant page: period/station selection, isCompactView, showPreferencesOnly, isDatePickerOpen, and popover anchors. Sub-components now consume state directly from the store instead of receiving it as props through RestaurantPage → RestaurantControls: RestaurantFilters: selectedPeriod, isDatePickerOpen, showPreferencesOnly DesktopTabs: selectedStation, isCompactView MobileActions: menuAnchor, scheduleAnchor, isCompactView, setSelectedStation DishesView: isCompactView, showPreferencesOnly Prop count reductions: RestaurantControls: 22 → 13 props RestaurantFilters: 12 → 6 props DesktopTabs: 8 → 4 props MobileActions: 13 → 6 props DishesView: 8 → 6 props useRestaurantPage hook is updated to read selectedPeriod/selectedStation from the store (for auto-selection effects) rather than managing local useState. calendarRange remains local as it is query-derived config, not interactive state. * style: 🎨 cleanup * fix: 🐛 show prefs flipped * perf: ⚡️ memoize filtered dishes to prevent recompute on rerender * chore(ui): 🔧 🎨 food card styling (#740) * feat(chore): ✨ 🔧 removed shadow from meal card * fix(chore): 🐛 🔧 desktop restaurant food cards have 2 cards per row * Update apps/next/src/components/ui/card/food-card.tsx Co-authored-by: Jacob Moy <79670488+EightBitByte@users.noreply.github.com> --------- Co-authored-by: Yitong Liu <yitonl21@uci.edu> Co-authored-by: Jacob Moy <79670488+EightBitByte@users.noreply.github.com> * fix: 🐛 stop exposing better_auth_secret * fix: 🐛 add better_auth_url to auth server trusted origins (#747) * fix: 🐛 add better_auth_url to auth server trusted origins * fix: 🐛 remove posthog references to customAllergies * refactor: ♻️ extract shared modal logic into FoodCardShell, add dietary conflicts to PopularDishCard (#743) * feat(chore): ✨ 🔧 altered restaurant page (#749) * PWA Service Workers (#718) * chore: mobile menu drawer popup (#695) * feat(frontend): ✨ switched mobile profile from menu to drawer mui container * fix: 🐛 drawer now slides open instead of popping up * feat(styling): ✨ changed colors to align w figma * fix: 🐛 matched dark mode colors to match figma * feat(styling): ✨ fixed some styling inconsistencies * fix: 🐛 syntax errors in sidebar-content * chore: 🔧 fix feedback and info icons * feat(styling): ✨ fixed sign out width and shadow around component --------- Co-authored-by: SAMIKA BHAVESH BHATKAR <samikabhatkar@gmail.com> Co-authored-by: Lex Truong <lext@uci.edu> * chore: 🔧 regen lockfile --------- Co-authored-by: Jacob Moy <apixelatedpug@gmail.com> Co-authored-by: Abubakr Elmallah <130480156+TheAbubakrAbu@users.noreply.github.com> Co-authored-by: Pranav Batra <30417498+Pranav-Batra@users.noreply.github.com> Co-authored-by: Jacob Moy <79670488+EightBitByte@users.noreply.github.com> Co-authored-by: Kevin Wu <kevinwu098@gmail.com> Co-authored-by: Pranav Batra <batrap1@uci.edu> Co-authored-by: William <wilyan090@gmail.com> Co-authored-by: Jason L <122318900+jkhlin@users.noreply.github.com> Co-authored-by: SAMIKA BHAVESH BHATKAR <samikabhatkar@gmail.com> Co-authored-by: Mihai Zecheru <92233684+MihaiZecheru@users.noreply.github.com> Co-authored-by: ChaoticallyAlys <glowingsylveon@gmail.com> Co-authored-by: Yitong Liu <yitonl21@uci.edu> Co-authored-by: William Yang <77467499+wilyan09007@users.noreply.github.com> Co-authored-by: elmallaa <elmallaa@uci.edu> Co-authored-by: Kelvin Truong <klvntrng456@gmail.com> Co-authored-by: Shyam Nathan <117102240+ShyamThangaraj@users.noreply.github.com> Co-authored-by: Pranav Batra <pranav.batra2006@gmail.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: TheAbubakrAbu <ammelmallah@icloud.com>


Summary
Changed mobile profile menu to open as a drawer.
Changes
Testing Instructions
Click on the profile icon in the top right in mobile view.
Closes #655