@@ -19,9 +19,14 @@ import { LayoutResizeHandler } from './LayoutResizeHandler';
1919import { useResizeHandle } from '@fluentui-contrib/react-resize-handle' ;
2020import { useLayoutResizeStyles , useLayoutStyles , SIDEBAR_SIZE_CSS_VAR , REQUEST_HEIGHT_CSS_VAR } from './LayoutStyles' ;
2121import { useDetectMobileScreen } from '../../utils/useDetectMobileScreen' ;
22+ import { Mode } from '../../../types/enums' ;
23+ import { createShareLink } from '../common/share' ;
24+ import { headerMessaging } from '../app-sections/HeaderMessaging' ;
2225
2326interface LayoutProps {
2427 handleSelectVerb : ( verb : string ) => void ;
28+ graphExplorerMode : Mode ;
29+ authenticated : boolean ;
2530}
2631
2732export const Layout = ( props : LayoutProps ) => {
@@ -34,6 +39,7 @@ export const Layout = (props: LayoutProps) => {
3439 const { mobileScreen, showSidebar } = useAppSelector ( ( state ) => state . sidebarProperties ) ;
3540 const [ initialSidebarWidth , setInitialSidebarWidth ] = useState ( 456 ) ;
3641 const [ sidebarElement , setSidebarElement ] = useState < HTMLElement | null > ( null ) ;
42+ const query = createShareLink ( sampleQuery , props . authenticated ) ;
3743 const [ requestHeight , setRequestHeight ] = useState ( 300 ) ;
3844 const requestRef = useRef < HTMLDivElement | null > ( null ) ;
3945
@@ -153,69 +159,72 @@ export const Layout = (props: LayoutProps) => {
153159 document . documentElement . style . setProperty ( REQUEST_HEIGHT_CSS_VAR , `${ requestHeight } px` ) ;
154160 } , [ ] ) ;
155161 return (
156- < >
157- < PopupsProvider >
158- < div className = { layoutStyles . container } >
159- < MainHeader />
160- < div id = 'content-ref' className = { mergeClasses ( layoutStyles . content , resizeStyles ) } ref = { sidebarWrapperRef } >
161- { showSidebar && (
162- < div id = 'sidebar-ref' className = { layoutStyles . sidebar } ref = { storeSidebarElement } >
163- < Sidebar handleToggleSelect = { handleToggleSelect } />
164- { ! mobileScreen && (
165- < LayoutResizeHandler
166- position = 'end'
167- ref = { sidebarHandleRef }
168- onDoubleClick = { ( ) => updateSidebarSize ( 456 ) }
169- onMouseDown = { handleResizeStart }
170- />
171- ) }
172- </ div >
173- ) }
174- < div id = 'main-content' className = { layoutStyles . mainContent } >
175- < div style = { { margin : '0 10px' } } >
176- < Notification
177- header = { translateMessage ( 'Banner notification 1 header' ) }
178- content = { translateMessage ( 'Banner notification 1 content' ) }
179- link = { translateMessage ( 'Banner notification 1 link' ) }
180- linkText = { translateMessage ( 'Banner notification 1 link text' ) }
162+ < PopupsProvider >
163+ < div className = { layoutStyles . container } >
164+ < MainHeader />
165+ { props . graphExplorerMode === Mode . TryIt && (
166+ < div className = { layoutStyles . headerMessaging } >
167+ { headerMessaging ( query ) }
168+ </ div >
169+ ) }
170+ < div id = 'content-ref' className = { mergeClasses ( layoutStyles . content , resizeStyles ) } ref = { sidebarWrapperRef } >
171+ { showSidebar && props . graphExplorerMode === Mode . Complete && (
172+ < div id = 'sidebar-ref' className = { layoutStyles . sidebar } ref = { storeSidebarElement } >
173+ < Sidebar handleToggleSelect = { handleToggleSelect } />
174+ { ! mobileScreen && (
175+ < LayoutResizeHandler
176+ position = 'end'
177+ ref = { sidebarHandleRef }
178+ onDoubleClick = { ( ) => updateSidebarSize ( 456 ) }
179+ onMouseDown = { handleResizeStart }
181180 />
181+ ) }
182+ </ div >
183+ ) }
184+ < div id = 'main-content' className = { layoutStyles . mainContent } >
185+ < div style = { { margin : '0 10px' } } >
186+ < Notification
187+ header = { translateMessage ( 'Banner notification 1 header' ) }
188+ content = { translateMessage ( 'Banner notification 1 content' ) }
189+ link = { translateMessage ( 'Banner notification 1 link' ) }
190+ linkText = { translateMessage ( 'Banner notification 1 link text' ) }
191+ />
192+ </ div >
193+ < ValidationProvider >
194+ < div style = { { margin : '0 10px' } } >
195+ < QueryRunner onSelectVerb = { props . handleSelectVerb } />
182196 </ div >
183- < ValidationProvider >
197+ < div id = 'request-response-area' className = { layoutStyles . requestResponseArea } >
198+ < div
199+ id = 'request-area'
200+ className = { layoutStyles . requestArea }
201+ ref = { requestRef }
202+ style = { { height : `var(${ REQUEST_HEIGHT_CSS_VAR } )` } }
203+ >
204+ < Request handleOnEditorChange = { handleOnEditorChange } sampleQuery = { sampleQuery } />
205+ { ! mobileScreen && (
206+ < LayoutResizeHandler
207+ position = 'bottom'
208+ onMouseDown = { handleRequestResizeStart }
209+ onDoubleClick = { ( ) => updateRequestHeight ( 300 ) }
210+ />
211+ ) }
212+ </ div >
184213 < div style = { { margin : '0 10px' } } >
185- < QueryRunner onSelectVerb = { props . handleSelectVerb } />
214+ < StatusMessages />
186215 </ div >
187- < div id = 'request-response-area' className = { layoutStyles . requestResponseArea } >
188- < div
189- id = 'request-area'
190- className = { layoutStyles . requestArea }
191- ref = { requestRef }
192- style = { { height : `var(${ REQUEST_HEIGHT_CSS_VAR } )` } }
193- >
194- < Request handleOnEditorChange = { handleOnEditorChange } sampleQuery = { sampleQuery } />
195- { ! mobileScreen && (
196- < LayoutResizeHandler
197- position = 'bottom'
198- onMouseDown = { handleRequestResizeStart }
199- onDoubleClick = { ( ) => updateRequestHeight ( 300 ) }
200- />
201- ) }
202- </ div >
203- < div style = { { margin : '0 10px' } } >
204- < StatusMessages />
205- </ div >
206- < div id = 'response-area' className = { layoutStyles . responseArea } >
207- < QueryResponse />
208- </ div >
216+ < div id = 'response-area' className = { layoutStyles . responseArea } >
217+ < QueryResponse />
209218 </ div >
210- </ ValidationProvider >
211- </ div >
219+ </ div >
220+ </ ValidationProvider >
212221 </ div >
213- < TermsOfUseMessage />
214222 </ div >
215- < CollectionPermissionsProvider >
216- < PopupsWrapper />
217- </ CollectionPermissionsProvider >
218- </ PopupsProvider >
219- </ >
223+ < TermsOfUseMessage />
224+ </ div >
225+ < CollectionPermissionsProvider >
226+ < PopupsWrapper />
227+ </ CollectionPermissionsProvider >
228+ </ PopupsProvider >
220229 ) ;
221230} ;
0 commit comments