@@ -6,8 +6,9 @@ import Typography from '@mui/material/Typography';
66import Link from '@mui/material/Link' ;
77import Box from '@mui/material/Box' ;
88import CodeIcon from '@mui/icons-material/Code' ;
9+ import CodeOffIcon from '@mui/icons-material/CodeOff' ;
910import Accordion from '@mui/material/Accordion' ;
10- import AccordionSummary from '@mui/material/AccordionSummary' ;
11+ import MuiAccordionSummary from '@mui/material/AccordionSummary' ;
1112import PropTypes from 'prop-types' ;
1213import AccordionDetails from '@mui/material/AccordionDetails' ;
1314import Paper from '@mui/material/Paper' ;
@@ -159,7 +160,32 @@ const getPayload = (code, sourceFiles = {}) =>
159160 } ,
160161 } ,
161162 } ) ;
162-
163+ const AccordionSummary = styled ( ( props ) => {
164+ const [ codeExpand , setCodeExpand ] = useState ( false ) ;
165+ return (
166+ < MuiAccordionSummary
167+ sx = { {
168+ pointerEvents : 'none' ,
169+ } }
170+ expandIcon = {
171+ < Tooltip title = "Expand code example" >
172+ < IconButton size = "small" display = "flex" sx = { { pointerEvents : 'auto' } } onClick = { ( ) => setCodeExpand ( ! codeExpand ) } >
173+ { codeExpand ? < CodeOffIcon /> : < CodeIcon /> }
174+ </ IconButton >
175+ </ Tooltip >
176+ }
177+ { ...props }
178+ />
179+ ) ;
180+ } ) ( ( { theme } ) => ( {
181+ flexDirection : 'row' ,
182+ '& .MuiAccordionSummary-expandIconWrapper.Mui-expanded' : {
183+ transform : 'none' ,
184+ } ,
185+ '& .MuiAccordionSummary-content' : {
186+ flexDirection : 'row-reverse' ,
187+ } ,
188+ } ) ) ;
163189const CodeExample = ( { source, mode } ) => {
164190 const [ name , setName ] = useState ( '' ) ;
165191 const [ codeSource , setCodeSource ] = useState ( '' ) ;
@@ -182,28 +208,32 @@ const CodeExample = ({ source, mode }) => {
182208 if ( mode === 'preview' ) {
183209 return (
184210 < ExampleRoot container spacing = { 0 } className = { clsx ( 'DocRawComponent' , 'container' ) } >
211+ { Component && (
212+ < Heading component = "h3" level = "5" >
213+ { name }
214+ </ Heading >
215+ ) }
216+ { Component && (
217+ < Grid className = { 'formContainer' } item xs = { 12 } >
218+ < Paper className = { 'componentPanel' } >
219+ < Component />
220+ </ Paper >
221+ </ Grid >
222+ ) }
185223 < Grid item xs = { 12 } >
186224 < Accordion className = { 'accordion' } >
187- < AccordionSummary
188- className = { 'accordionSummary' }
189- expandIcon = {
190- < Tooltip title = "Expand code example" >
191- < IconButton size = "large" >
192- < CodeIcon />
193- </ IconButton >
194- </ Tooltip >
195- }
196- >
197- { Component && (
198- < Heading component = "h3" level = "5" >
199- { name }
200- </ Heading >
201- ) }
225+ < AccordionSummary className = { 'accordionSummary' } >
202226 < Box display = "flex" >
203227 < form action = "https://codesandbox.io/api/v1/sandboxes/define" method = "POST" target = "_blank" >
204228 < input type = "hidden" name = "parameters" value = { getPayload ( codeSource , sourceFiles ) } />
205229 < Tooltip title = "Edit in codesandbox" >
206- < IconButton disableFocusRipple type = "submit" onClick = { ( event ) => event . stopPropagation ( ) } size = "large" >
230+ < IconButton
231+ disableFocusRipple
232+ type = "submit"
233+ sx = { { pointerEvents : 'auto' } }
234+ onClick = { ( event ) => event . stopPropagation ( ) }
235+ size = "small"
236+ >
207237 < CodesandboxIcon />
208238 </ IconButton >
209239 </ Tooltip >
@@ -215,7 +245,7 @@ const CodeExample = ({ source, mode }) => {
215245 onClick = { ( event ) => event . stopPropagation ( ) }
216246 >
217247 < Tooltip title = "View source on github" >
218- < IconButton size = "large " >
248+ < IconButton sx = { { pointerEvents : 'auto' } } size = "small " >
219249 < GhIcon style = { { color : grey [ 700 ] } } />
220250 </ IconButton >
221251 </ Tooltip >
@@ -227,13 +257,6 @@ const CodeExample = ({ source, mode }) => {
227257 </ AccordionDetails >
228258 </ Accordion >
229259 </ Grid >
230- { Component && (
231- < Grid className = { 'formContainer' } item xs = { 12 } >
232- < Paper className = { 'componentPanel' } >
233- < Component />
234- </ Paper >
235- </ Grid >
236- ) }
237260 </ ExampleRoot >
238261 ) ;
239262 }
0 commit comments