You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by mi...@apache.org on 2024/04/29 12:37:20 UTC
(superset) 01/01: fix(sqllab): invalid css scope for ace editor autocomplete (#28156)
This is an automated email from the ASF dual-hosted git repository.
michaelsmolina pushed a commit to branch 3.1
in repository https://gitbox.apache.org/repos/asf/superset.git
commit 4e416150f2d20b14de56a8720b42041c0390d985
Author: JUST.in DO IT <ju...@airbnb.com>
AuthorDate: Fri Apr 26 09:48:13 2024 -0700
fix(sqllab): invalid css scope for ace editor autocomplete (#28156)
---
.../SqlLab/components/AceEditorWrapper/index.tsx | 62 ++++++++++++++--------
1 file changed, 39 insertions(+), 23 deletions(-)
diff --git a/superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx b/superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
index 8529f49d4f..dd6c0c92bc 100644
--- a/superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
+++ b/superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
@@ -19,8 +19,10 @@
import React, { useState, useEffect, useRef } from 'react';
import type { IAceEditor } from 'react-ace/lib/types';
import { useDispatch } from 'react-redux';
-import { css, styled, usePrevious } from '@superset-ui/core';
+import { css, styled, usePrevious, useTheme } from '@superset-ui/core';
+import { Global } from '@emotion/react';
+import { SQL_EDITOR_LEFTBAR_WIDTH } from 'src/SqlLab/constants';
import { queryEditorSetSelectedText } from 'src/SqlLab/actions/sqlLab';
import { FullSQLEditor as AceEditor } from 'src/components/AsyncAceEditor';
import type { KeyboardShortcut } from 'src/SqlLab/components/KeyboardShortcutButton';
@@ -50,16 +52,6 @@ const StyledAceEditor = styled(AceEditor)`
// double class is better than !important
border: 1px solid ${theme.colors.grayscale.light2};
font-feature-settings: 'liga' off, 'calt' off;
-
- &.ace_autocomplete {
- // Use !important because Ace Editor applies extra CSS at the last second
- // when opening the autocomplete.
- width: ${theme.gridUnit * 130}px !important;
- }
-
- .ace_scroller {
- background-color: ${theme.colors.grayscale.light4};
- }
}
`}
`;
@@ -167,20 +159,44 @@ const AceEditorWrapper = ({
},
!autocomplete,
);
+ const theme = useTheme();
return (
- <StyledAceEditor
- keywords={keywords}
- onLoad={onEditorLoad}
- onBlur={onBlurSql}
- height={height}
- onChange={onChangeText}
- width="100%"
- editorProps={{ $blockScrolling: true }}
- enableLiveAutocompletion={autocomplete}
- value={sql}
- annotations={annotations}
- />
+ <>
+ <Global
+ styles={css`
+ .ace_text-layer {
+ width: 100% !important;
+ }
+
+ .ace_autocomplete {
+ // Use !important because Ace Editor applies extra CSS at the last second
+ // when opening the autocomplete.
+ width: ${theme.gridUnit * 130}px !important;
+ }
+
+ .ace_tooltip {
+ max-width: ${SQL_EDITOR_LEFTBAR_WIDTH}px;
+ }
+
+ .ace_scroller {
+ background-color: ${theme.colors.grayscale.light4};
+ }
+ `}
+ />
+ <StyledAceEditor
+ keywords={keywords}
+ onLoad={onEditorLoad}
+ onBlur={onBlurSql}
+ height={height}
+ onChange={onChangeText}
+ width="100%"
+ editorProps={{ $blockScrolling: true }}
+ enableLiveAutocompletion={autocomplete}
+ value={sql}
+ annotations={annotations}
+ />
+ </>
);
};