@@ -54,6 +54,7 @@ const EditorWrapper = forwardRef<HTMLDivElement, EditorWrapperProps>(
5454 markupHiddenActionsConfig : initialMarkupHiddenActionsConfig ,
5555 markupToolbarConfig : initialMarkupToolbarConfig ,
5656 qa,
57+ scrollContainerRef,
5758 settingsVisible : settingsVisibleProp ,
5859 stickyToolbar,
5960 toolbarsPreset,
@@ -148,6 +149,7 @@ const EditorWrapper = forwardRef<HTMLDivElement, EditorWrapperProps>(
148149 onSplitModeChange,
149150 onToolbarVisibilityChange,
150151 renderPreviewButton : canRenderPreview ,
152+ scrollContainerRef,
151153 showPreview,
152154 splitMode : editor . splitMode ,
153155 splitModeEnabled : editor . splitModeEnabled ,
@@ -195,6 +197,7 @@ const EditorWrapper = forwardRef<HTMLDivElement, EditorWrapperProps>(
195197 toolbarClassName = { b ( 'toolbar' ) }
196198 stickyToolbar = { stickyToolbar }
197199 toolbarDisplay = { toolbarDisplay }
200+ scrollContainerRef = { scrollContainerRef }
198201 >
199202 < Settings
200203 { ...settingsProps }
@@ -216,6 +219,7 @@ const EditorWrapper = forwardRef<HTMLDivElement, EditorWrapperProps>(
216219 toolbarClassName = { b ( 'toolbar' ) }
217220 stickyToolbar = { stickyToolbar }
218221 toolbarDisplay = { toolbarDisplay }
222+ scrollContainerRef = { scrollContainerRef }
219223 >
220224 < Settings
221225 { ...settingsProps }
@@ -247,6 +251,7 @@ type ViewProps = {
247251 stickyToolbar : boolean ;
248252 enableSubmitInPreview ?: boolean ;
249253 hidePreviewAfterSubmit ?: boolean ;
254+ scrollContainerRef ?: React . RefObject < HTMLElement > ;
250255} ;
251256
252257export type MarkdownEditorViewProps = ClassNameProps & ToolbarConfigs & ViewProps & QAProps & { } ;
@@ -276,6 +281,7 @@ export const MarkdownEditorView = forwardRef<HTMLDivElement, MarkdownEditorViewP
276281 markupHiddenActionsConfig,
277282 markupToolbarConfig,
278283 qa,
284+ scrollContainerRef,
279285 settingsVisible = true ,
280286 stickyToolbar,
281287 toolbarsPreset,
@@ -340,6 +346,7 @@ export const MarkdownEditorView = forwardRef<HTMLDivElement, MarkdownEditorViewP
340346 {
341347 settings : areSettingsVisible ,
342348 split : markupSplitMode && editor . splitMode ,
349+ withScrollContainer : ! ! scrollContainerRef ,
343350 } ,
344351 [ className ] ,
345352 ) }
@@ -357,6 +364,7 @@ export const MarkdownEditorView = forwardRef<HTMLDivElement, MarkdownEditorViewP
357364 markupToolbarConfig = { markupToolbarConfig }
358365 qa = "g-md-editor-mode"
359366 ref = { editorWrapperRef }
367+ scrollContainerRef = { scrollContainerRef }
360368 settingsVisible = { settingsVisible }
361369 stickyToolbar = { stickyToolbar }
362370 toolbarsPreset = { toolbarsPreset }
@@ -393,9 +401,17 @@ const MarkupSearchAnchor: React.FC<MarkupSearchAnchorProps> = ({mode}) => (
393401 < div className = { `g-md-search-${ mode } -anchor` } > </ div >
394402) ;
395403
396- function Settings ( props : EditorSettingsProps & { stickyToolbar : boolean } ) {
404+ function Settings (
405+ props : EditorSettingsProps & {
406+ stickyToolbar : boolean ;
407+ scrollContainerRef ?: React . RefObject < HTMLElement > ;
408+ } ,
409+ ) {
397410 const wrapperRef = useRef < HTMLDivElement > ( null ) ;
398- const isSticky = useSticky ( wrapperRef ) && props . toolbarVisibility && props . stickyToolbar ;
411+ const isSticky =
412+ useSticky ( wrapperRef , props . scrollContainerRef ) &&
413+ props . toolbarVisibility &&
414+ props . stickyToolbar ;
399415
400416 return (
401417 < >
0 commit comments