Fix flacky header (#17690)

This commit is contained in:
Geido 2021-12-10 18:25:40 +02:00 committed by GitHub
parent 8e69b2db34
commit 8de93871d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 10 deletions

View File

@ -18,8 +18,9 @@
*/ */
import React, { useEffect, useState, useRef } from 'react'; import React, { useEffect, useState, useRef } from 'react';
import cx from 'classnames'; import cx from 'classnames';
import { t } from '@superset-ui/core'; import { styled, t } from '@superset-ui/core';
import { Tooltip } from 'src/components/Tooltip'; import { Tooltip } from 'src/components/Tooltip';
import CertifiedIcon from '../CertifiedIcon';
export interface EditableTitleProps { export interface EditableTitleProps {
canEdit?: boolean; canEdit?: boolean;
@ -34,8 +35,14 @@ export interface EditableTitleProps {
title?: string; title?: string;
defaultTitle?: string; defaultTitle?: string;
placeholder?: string; placeholder?: string;
certifiedBy?: string;
certificationDetails?: string;
} }
const StyledCertifiedIcon = styled(CertifiedIcon)`
vertical-align: middle;
`;
export default function EditableTitle({ export default function EditableTitle({
canEdit = false, canEdit = false,
editing = false, editing = false,
@ -48,6 +55,8 @@ export default function EditableTitle({
title = '', title = '',
defaultTitle = '', defaultTitle = '',
placeholder = '', placeholder = '',
certifiedBy,
certificationDetails,
}: EditableTitleProps) { }: EditableTitleProps) {
const [isEditing, setIsEditing] = useState(editing); const [isEditing, setIsEditing] = useState(editing);
const [currentTitle, setCurrentTitle] = useState(title); const [currentTitle, setCurrentTitle] = useState(title);
@ -222,6 +231,14 @@ export default function EditableTitle({
)} )}
style={style} style={style}
> >
{certifiedBy && (
<>
<StyledCertifiedIcon
certifiedBy={certifiedBy}
details={certificationDetails}
/>{' '}
</>
)}
{titleComponent} {titleComponent}
</span> </span>
); );

View File

@ -22,7 +22,6 @@ import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { styled, t } from '@superset-ui/core'; import { styled, t } from '@superset-ui/core';
import ButtonGroup from 'src/components/ButtonGroup'; import ButtonGroup from 'src/components/ButtonGroup';
import CertifiedIcon from 'src/components/CertifiedIcon';
import { import {
LOG_ACTIONS_PERIODIC_RENDER_DASHBOARD, LOG_ACTIONS_PERIODIC_RENDER_DASHBOARD,
@ -515,19 +514,13 @@ class Header extends React.PureComponent {
data-test-id={`${dashboardInfo.id}`} data-test-id={`${dashboardInfo.id}`}
> >
<div className="dashboard-component-header header-large"> <div className="dashboard-component-header header-large">
{dashboardInfo.certified_by && (
<>
<CertifiedIcon
certifiedBy={dashboardInfo.certified_by}
details={dashboardInfo.certification_details}
/>{' '}
</>
)}
<EditableTitle <EditableTitle
title={dashboardTitle} title={dashboardTitle}
canEdit={userCanEdit && editMode} canEdit={userCanEdit && editMode}
onSaveTitle={this.handleChangeText} onSaveTitle={this.handleChangeText}
showTooltip={false} showTooltip={false}
certifiedBy={dashboardInfo.certified_by}
certificationDetails={dashboardInfo.certification_details}
/> />
<PublishedStatus <PublishedStatus
dashboardId={dashboardInfo.id} dashboardId={dashboardInfo.id}