Skip to content

Conversation

@bharatkashyap
Copy link
Collaborator

@bharatkashyap bharatkashyap commented Jun 10, 2025

Screenshot 2025-06-10 at 3 27 17 PM

  • Add support to pass a pre-generated aiSuggestion prop to the demo to render this UI
  • Clicking on the suggestion leads to MUI Chat with that demo opened, and the suggestion pre-typed in the chat*
  • *Needs to add a feature to get an initialMessage from the /open API

@bharatkashyap bharatkashyap added the docs Improvements or additions to the documentation. label Jun 10, 2025
@mui-bot
Copy link

mui-bot commented Jun 10, 2025

Netlify deploy preview

https://deploy-preview-46309--material-ui.netlify.app/

Bundle size report

@mui/materialparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/labparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/systemparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/utilsparsed: 0B(0.00%) gzip: 0B(0.00%)

Details

Show details for 100 more bundles (86 more not shown)

@mui/lab/AdapterDateFnsparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/AdapterDayjsparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/AdapterLuxonparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/AdapterMomentparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/CalendarPickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/CalendarPickerSkeletonparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/ClockPickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/DatePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/DateRangePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/DateRangePickerDayparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/DateTimePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/DesktopDatePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/DesktopDateRangePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/DesktopDateTimePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/DesktopTimePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/LoadingButtonparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/LocalizationProviderparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/Masonryparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/MobileDatePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/MobileDateRangePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/MobileDateTimePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/MobileTimePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/MonthPickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/PickersDayparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/StaticDatePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/StaticDateRangePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/StaticDateTimePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/StaticTimePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/TabContextparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/TabListparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/TabPanelparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/Timelineparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/TimelineConnectorparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/TimelineContentparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/TimelineDotparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/TimelineItemparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/TimelineOppositeContentparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/TimelineSeparatorparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/TimePickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/TreeItemparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/TreeViewparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/useAutocompleteparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/lab/YearPickerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Accordionparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/AccordionActionsparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/AccordionDetailsparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/AccordionSummaryparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Alertparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/AlertTitleparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/AppBarparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Autocompleteparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Avatarparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/AvatarGroupparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Backdropparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Badgeparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/BottomNavigationparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/BottomNavigationActionparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Boxparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Breadcrumbsparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Buttonparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/ButtonBaseparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/ButtonGroupparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Cardparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/CardActionAreaparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/CardActionsparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/CardContentparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/CardHeaderparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/CardMediaparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Checkboxparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Chipparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/CircularProgressparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/ClickAwayListenerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Collapseparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Containerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/CssBaselineparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/DefaultPropsProviderparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Dialogparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/DialogActionsparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/DialogContentparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/DialogContentTextparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/DialogTitleparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Dividerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Drawerparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Fabparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Fadeparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/FilledInputparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/FormControlparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/FormControlLabelparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/FormGroupparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/FormHelperTextparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/FormLabelparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/GlobalStylesparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Gridparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/GridLegacyparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Growparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/Iconparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/IconButtonparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/ImageListparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/ImageListItemparsed: 0B(0.00%) gzip: 0B(0.00%)
@mui/material/ImageListItemBarparsed: 0B(0.00%) gzip: 0B(0.00%)

Details of bundle changes

Generated by 🚫 dangerJS against bb326cc

@zannager zannager requested a review from alexfauquette June 11, 2025 11:38
Comment on lines 31 to 35

const handleClick = async () => {
if (!baseUrl) {
return;
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering if we should render nothing in that case. Otherwise you risk to render a button that does nothing

Suggested change
const handleClick = async () => {
if (!baseUrl) {
return;
}
if (!baseUrl) {
return null;
}
const handleClick = async () => {

} catch (err: any) {
setError(err as Error);
} finally {
clearTimeout(setLoadingTimeout);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering why there is a setLoadingTimeout. After 200ms the loading interface will disappear even if the API call is still pending

@alexfauquette
Copy link
Member

Maybe we should not display that on mobile. Or at least make it more subtile

image

@bharatkashyap
Copy link
Collaborator Author

bharatkashyap commented Jun 15, 2025

Less obstructive on mobile screens:

Screen.Recording.2025-06-15.at.3.53.03.PM.mov

Copy link
Member

@alexfauquette alexfauquette left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good fr me.

Don't forget to remove the aiSuggestion if it was only for demonstration purpose

@bharatkashyap bharatkashyap changed the title [feat] [ai] Add suggestions to edit with MUI Chat [docs] [ai] Add suggestions to edit with MUI Chat Jun 16, 2025
@bharatkashyap bharatkashyap enabled auto-merge (squash) June 18, 2025 08:35
@bharatkashyap bharatkashyap merged commit 0c2cd95 into mui:master Jun 18, 2025
23 checks passed
@bharatkashyap
Copy link
Collaborator Author

bharatkashyap commented Jun 24, 2025

  • Noticed this is giving "React does not recognize the hasAiSuggestion prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase hasaisuggestion instead. If you accidentally passed it from a parent component, remove it from the DOM element."
  • Missed removing this from the forwarded props, fixing in [docs] Don't forward hasAiSuggestion #46415

@oliviertassinari oliviertassinari changed the title [docs] [ai] Add suggestions to edit with MUI Chat [docs][chat] Add suggestions to edit with MUI Chat Jul 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Improvements or additions to the documentation.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants