From 607ca4f75884fd983a5886be229cf41eed1e369f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 23:43:04 +0000 Subject: [PATCH 1/3] Initial plan From 032bc41b25f1dbe3d6caf5b2dba3f23ed42288bd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 23:52:13 +0000 Subject: [PATCH 2/3] Fix hearts display: mobile-responsive scaling, fix MUI defaultValue errors, remove broken flexWrap Co-authored-by: gregv <6913307+gregv@users.noreply.github.com> --- src/components/feedback-lite.js | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/components/feedback-lite.js b/src/components/feedback-lite.js index cb924f7..7bc486c 100644 --- a/src/components/feedback-lite.js +++ b/src/components/feedback-lite.js @@ -6,7 +6,8 @@ import Rating from '@mui/material/Rating'; import FavoriteIcon from '@mui/icons-material/Favorite'; import FavoriteBorderIcon from '@mui/icons-material/FavoriteBorder'; import Typography from '@mui/material/Typography'; -import { styled } from '@mui/material/styles'; +import { styled, useTheme } from '@mui/material/styles'; +import useMediaQuery from '@mui/material/useMediaQuery'; import CopyAllIcon from '@mui/icons-material/CopyAll'; import TextField from '@mui/material/TextField'; import Link from 'next/link' @@ -24,22 +25,24 @@ import usePrivacySettings from '../hooks/use-privacy-settings'; const HEART_COLOR = '#ff6d75'; -const StyledRating = styled(Rating)(({ theme }) => ({ +const StyledRating = styled(Rating)({ '& .MuiRating-iconFilled': { color: HEART_COLOR, }, '& .MuiRating-iconHover': { color: '#ff3d47', }, - flexWrap: 'wrap', - [theme.breakpoints.down('sm')]: { - '& .MuiRating-icon': { - fontSize: '1.4rem', - }, - }, -})); +}); function RatingItem({ label, description, value, maxHearts }) { + const theme = useTheme(); + const isMobile = useMediaQuery(theme.breakpoints.down('sm')); + + // On mobile: show 5 larger hearts (scale value from 0-10 to 0-5) + // On desktop: show all 10 hearts at normal size + const displayMax = isMobile ? 5 : maxHearts; + const displayValue = isMobile && maxHearts > 0 ? (value / maxHearts) * 5 : value; + return ( `${v} Heart${v !== 1 ? "s" : ""}`} precision={0.5} - max={maxHearts} + max={displayMax} icon={} emptyIcon={} /> @@ -168,10 +171,9 @@ export default function FeedbackLite ( {feedback_url, history} ){ sx={{ width: '100%', maxWidth: { xs: '100%', sm: 350 } }} id="outlined-basic" label="Your feedback link" - defaultValue="..." size="small" variant="outlined" - value={feedback_url} + value={feedback_url || "..."} /> From c3beb07e612a9aedc005e5114dd6ac1886d7170b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Mar 2026 02:03:11 +0000 Subject: [PATCH 3/3] Fix hearts mismatch: always show all 10 hearts with smaller sizing on mobile instead of scaling to 5 Co-authored-by: gregv <6913307+gregv@users.noreply.github.com> --- src/components/feedback-lite.js | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/components/feedback-lite.js b/src/components/feedback-lite.js index 7bc486c..b8b772f 100644 --- a/src/components/feedback-lite.js +++ b/src/components/feedback-lite.js @@ -6,8 +6,7 @@ import Rating from '@mui/material/Rating'; import FavoriteIcon from '@mui/icons-material/Favorite'; import FavoriteBorderIcon from '@mui/icons-material/FavoriteBorder'; import Typography from '@mui/material/Typography'; -import { styled, useTheme } from '@mui/material/styles'; -import useMediaQuery from '@mui/material/useMediaQuery'; +import { styled } from '@mui/material/styles'; import CopyAllIcon from '@mui/icons-material/CopyAll'; import TextField from '@mui/material/TextField'; import Link from 'next/link' @@ -25,24 +24,21 @@ import usePrivacySettings from '../hooks/use-privacy-settings'; const HEART_COLOR = '#ff6d75'; -const StyledRating = styled(Rating)({ +const StyledRating = styled(Rating)(({ theme }) => ({ '& .MuiRating-iconFilled': { color: HEART_COLOR, }, '& .MuiRating-iconHover': { color: '#ff3d47', }, -}); + [theme.breakpoints.down('sm')]: { + '& .MuiRating-icon': { + fontSize: '1.2rem', + }, + }, +})); function RatingItem({ label, description, value, maxHearts }) { - const theme = useTheme(); - const isMobile = useMediaQuery(theme.breakpoints.down('sm')); - - // On mobile: show 5 larger hearts (scale value from 0-10 to 0-5) - // On desktop: show all 10 hearts at normal size - const displayMax = isMobile ? 5 : maxHearts; - const displayValue = isMobile && maxHearts > 0 ? (value / maxHearts) * 5 : value; - return ( `${v} Heart${v !== 1 ? "s" : ""}`} precision={0.5} - max={displayMax} + max={maxHearts} icon={} emptyIcon={} />