diff --git a/datahub/webapp/components/DataDoc/DataDocCellControl.tsx b/datahub/webapp/components/DataDoc/DataDocCellControl.tsx index 718a8e834..8038d4617 100644 --- a/datahub/webapp/components/DataDoc/DataDocCellControl.tsx +++ b/datahub/webapp/components/DataDoc/DataDocCellControl.tsx @@ -215,6 +215,10 @@ export const DataDocCellControl: React.FunctionComponent = ({ /> ) ); + } else { + // In case center buttons are empty + // push an empty span to ensure the width + centerButtons.push(); } if (leftMenuItems.length) { @@ -250,6 +254,7 @@ export const DataDocCellControl: React.FunctionComponent = ({ ) : null} {centerButtons} +   {rightButtons.length ? (
{rightButtons} diff --git a/datahub/webapp/components/DataDoc/DataDocContentContainer.tsx b/datahub/webapp/components/DataDoc/DataDocContentContainer.tsx index 3359265bf..335fe224e 100644 --- a/datahub/webapp/components/DataDoc/DataDocContentContainer.tsx +++ b/datahub/webapp/components/DataDoc/DataDocContentContainer.tsx @@ -1,4 +1,5 @@ -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useState, useCallback } from 'react'; +import { useResizeObserver } from 'hooks/useResizeObserver'; const isChrome = /chrome/.test(navigator.userAgent.toLowerCase()); @@ -12,27 +13,20 @@ export const DataDocContentContainer: React.FunctionComponent = isChrome const [containerWidth, setContainerWidth] = useState(1200); const selfRef = React.useRef(null); - useEffect(() => { - let observer; - - if (selfRef.current) { - setContainerWidth(selfRef.current.offsetWidth); - observer = new ResizeObserver((entries) => { - for (const entry of entries) { - if (entry.contentRect) { - setContainerWidth(entry.contentRect.width); - } + useResizeObserver( + selfRef.current, + useCallback((entries) => { + for (const entry of entries) { + if (entry.contentRect) { + setContainerWidth(entry.contentRect.width); } - }); - observer.observe(selfRef.current); - } - - return () => { - if (observer) { - observer.disconnect(); } - }; - }, [selfRef.current]); + }, []), + useCallback( + () => setContainerWidth(selfRef.current.offsetWidth), + [] + ) + ); return (
diff --git a/datahub/webapp/components/DataDocQueryCell/DataDocQueryCell.scss b/datahub/webapp/components/DataDocQueryCell/DataDocQueryCell.scss index bb7025c32..63c9e91e3 100644 --- a/datahub/webapp/components/DataDocQueryCell/DataDocQueryCell.scss +++ b/datahub/webapp/components/DataDocQueryCell/DataDocQueryCell.scss @@ -50,19 +50,12 @@ .query-title { flex: 1; - input.Title, - span { + .Title, + p { font-weight: bold; - } - input.Title { font-size: var(--large-text-size); color: var(--dark-text-color); - text-overflow: ellipsis; - } - span { - font-size: var(--med-text-size); - color: var(--light-text-color); - margin-right: 8px; + padding: 8px; } } diff --git a/datahub/webapp/components/DataDocQueryCell/DataDocQueryCell.tsx b/datahub/webapp/components/DataDocQueryCell/DataDocQueryCell.tsx index c1a7f7be3..b152cf246 100644 --- a/datahub/webapp/components/DataDocQueryCell/DataDocQueryCell.tsx +++ b/datahub/webapp/components/DataDocQueryCell/DataDocQueryCell.tsx @@ -46,6 +46,7 @@ import { Modal } from 'ui/Modal/Modal'; import { Title } from 'ui/Title/Title'; import './DataDocQueryCell.scss'; +import { ResizableTextArea } from 'ui/ResizableTextArea/ResizableTextArea'; const ON_CHANGE_DEBOUNCE_MS = 250; @@ -539,15 +540,12 @@ class DataDocQueryCellComponent extends React.Component { const { meta, selectedRange } = this.state; const queryTitleDOM = isEditable ? ( - ) : ( {this.dataCellTitle} @@ -619,7 +617,7 @@ class DataDocQueryCellComponent extends React.Component { ); const openSnippetDOM = - query.trim().length === 0 ? ( + query.trim().length === 0 && isEditable ? (