Revert "MINOR: fix custom property layout issues (#18065)"

This reverts commit 778900305fa6e5f3be3d90ce0995d505f067ee87.
This commit is contained in:
Sachin Chaurasiya 2024-10-03 11:38:45 +05:30
parent 6ab15fdf54
commit f4c4f19114
8 changed files with 78 additions and 122 deletions

View File

@ -245,45 +245,40 @@ export const CustomPropertyTable = <T extends ExtentionEntitiesKeys>({
<> <>
{!isEmpty(entityTypeDetail.customProperties) && ( {!isEmpty(entityTypeDetail.customProperties) && (
<> <>
<div className="d-flex justify-between m-b-xs">
<Typography.Text className="right-panel-label">
{t('label.custom-property-plural')}
</Typography.Text>
{viewAllBtn}
</div>
{isRenderedInRightPanel ? ( {isRenderedInRightPanel ? (
<> <div className="custom-property-right-panel-container">
<div className="d-flex justify-between m-b-md"> {dataSource.map((record, index) => (
<Typography.Text className="right-panel-label"> <Fragment key={record.name}>
{t('label.custom-property-plural')} <div
</Typography.Text> className={classNames('custom-property-right-panel-card', {
{viewAllBtn} 'top-border-radius': index === 0,
</div> 'bottom-border-radius': index === dataSource.length - 1,
<div className="custom-property-right-panel-container"> })}
{dataSource.map((record, index) => ( key={record.name}>
<Fragment key={record.name}> <PropertyValue
<div extension={extensionObject.extensionObject}
className={classNames( hasEditPermissions={hasEditAccess}
'custom-property-right-panel-card', isRenderedInRightPanel={isRenderedInRightPanel}
{ isVersionView={isVersionView}
'top-border-radius': index === 0, key={record.name}
'bottom-border-radius': property={record}
index === dataSource.length - 1, versionDataKeys={extensionObject.addedKeysList}
} onExtensionUpdate={onExtensionUpdate}
)} />
key={record.name}> </div>
<PropertyValue {index !== dataSource.length - 1 && (
extension={extensionObject.extensionObject} <Divider className="m-y-0" />
hasEditPermissions={hasEditAccess} )}
isRenderedInRightPanel={isRenderedInRightPanel} </Fragment>
isVersionView={isVersionView} ))}
key={record.name} </div>
property={record}
versionDataKeys={extensionObject.addedKeysList}
onExtensionUpdate={onExtensionUpdate}
/>
</div>
{index !== dataSource.length - 1 && (
<Divider className="m-y-0" />
)}
</Fragment>
))}
</div>
</>
) : ( ) : (
<Row data-testid="custom-properties-card" gutter={[16, 16]}> <Row data-testid="custom-properties-card" gutter={[16, 16]}>
{dataSource.map((record) => ( {dataSource.map((record) => (

View File

@ -317,7 +317,7 @@ describe('Test PropertyValue Component', () => {
const iconElement = await screen.findByTestId('edit-icon'); const iconElement = await screen.findByTestId('edit-icon');
expect(await screen.findByTestId('time-interval-value')).toHaveTextContent( expect(await screen.findByTestId('time-interval-value')).toHaveTextContent(
'label.start-entity: 1736255200000label.end-entity: 1736255200020' 'StartTime: 1736255200000EndTime: 1736255200020'
); );
await act(async () => { await act(async () => {

View File

@ -11,7 +11,7 @@
* limitations under the License. * limitations under the License.
*/ */
import Icon from '@ant-design/icons'; import Icon, { DownOutlined, UpOutlined } from '@ant-design/icons';
import { import {
Button, Button,
Card, Card,
@ -29,7 +29,6 @@ import {
} from 'antd'; } from 'antd';
import { ColumnsType } from 'antd/lib/table'; import { ColumnsType } from 'antd/lib/table';
import { AxiosError } from 'axios'; import { AxiosError } from 'axios';
import classNames from 'classnames';
import { t } from 'i18next'; import { t } from 'i18next';
import { import {
isArray, isArray,
@ -51,7 +50,6 @@ import React, {
useState, useState,
} from 'react'; } from 'react';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { ReactComponent as ArrowIconComponent } from '../../../assets/svg/drop-down.svg';
import { ReactComponent as EditIconComponent } from '../../../assets/svg/edit-new.svg'; import { ReactComponent as EditIconComponent } from '../../../assets/svg/edit-new.svg';
import { import {
DE_ACTIVE_COLOR, DE_ACTIVE_COLOR,
@ -867,7 +865,7 @@ export const PropertyValue: FC<PropertyValueProps> = ({
isTeam={item.type === 'team'} isTeam={item.type === 'team'}
name={item.name ?? ''} name={item.name ?? ''}
type="circle" type="circle"
width="18" width="20"
/> />
) : ( ) : (
searchClassBase.getEntityIcon(item.type) searchClassBase.getEntityIcon(item.type)
@ -876,7 +874,7 @@ export const PropertyValue: FC<PropertyValueProps> = ({
} }
type="text"> type="text">
<Typography.Text <Typography.Text
className="text-left text-primary truncate w-68" className="text-left text-lg truncate w-68"
ellipsis={{ tooltip: true }}> ellipsis={{ tooltip: true }}>
{getEntityName(item)} {getEntityName(item)}
</Typography.Text> </Typography.Text>
@ -918,7 +916,7 @@ export const PropertyValue: FC<PropertyValueProps> = ({
isTeam={item.type === 'team'} isTeam={item.type === 'team'}
name={item.name ?? ''} name={item.name ?? ''}
type="circle" type="circle"
width="18" width="20"
/> />
) : ( ) : (
searchClassBase.getEntityIcon(item.type) searchClassBase.getEntityIcon(item.type)
@ -927,7 +925,7 @@ export const PropertyValue: FC<PropertyValueProps> = ({
} }
type="text"> type="text">
<Typography.Text <Typography.Text
className="text-left text-primary truncate w-68 " className="text-left text-lg truncate w-68"
data-testid="entityReference-value-name" data-testid="entityReference-value-name"
ellipsis={{ tooltip: true }}> ellipsis={{ tooltip: true }}>
{getEntityName(item)} {getEntityName(item)}
@ -949,17 +947,13 @@ export const PropertyValue: FC<PropertyValueProps> = ({
className="break-all" className="break-all"
data-testid="time-interval-value"> data-testid="time-interval-value">
<span> <span>
<Typography.Text>{`${t('label.start-entity', { <Typography.Text className="text-xs">{`StartTime: `}</Typography.Text>
entity: t('label.time'), <Typography.Text className="text-sm font-medium text-grey-body">
})}: `}</Typography.Text>
<Typography.Text className="text-sm text-grey-body property-value">
{timeInterval.start} {timeInterval.start}
</Typography.Text> </Typography.Text>
<Divider className="self-center" type="vertical" /> <Divider className="self-center" type="vertical" />
<Typography.Text>{`${t('label.end-entity', { <Typography.Text className="text-xs">{`EndTime: `}</Typography.Text>
entity: t('label.time'), <Typography.Text className="text-sm font-medium text-grey-body">
})}: `}</Typography.Text>
<Typography.Text className="text-sm text-grey-body property-value">
{timeInterval.end} {timeInterval.end}
</Typography.Text> </Typography.Text>
</span> </span>
@ -979,7 +973,7 @@ export const PropertyValue: FC<PropertyValueProps> = ({
default: default:
return ( return (
<Typography.Text <Typography.Text
className="break-all text-grey-body property-value" className="break-all text-lg font-medium text-grey-body"
data-testid="value"> data-testid="value">
{value} {value}
</Typography.Text> </Typography.Text>
@ -1018,10 +1012,10 @@ export const PropertyValue: FC<PropertyValueProps> = ({
const customPropertyInlineElement = ( const customPropertyInlineElement = (
<div className="d-flex flex-column gap-2" data-testid={propertyName}> <div className="d-flex flex-column gap-2" data-testid={propertyName}>
<div className="d-flex justify-between w-full items-center"> <div className="d-flex justify-between w-full">
<div className="d-flex flex-column gap-1 w-full"> <div className="d-flex flex-column gap-1 w-full">
<Typography.Text <Typography.Text
className="property-name text-grey-body" className="text-md text-grey-body"
data-testid="property-name"> data-testid="property-name">
{getEntityName(property)} {getEntityName(property)}
</Typography.Text> </Typography.Text>
@ -1045,6 +1039,11 @@ export const PropertyValue: FC<PropertyValueProps> = ({
)} )}
</div> </div>
</div> </div>
<RichTextEditorPreviewer
className="text-grey-muted"
markdown={property.description || ''}
maxLength={70}
/>
</div> </div>
); );
@ -1052,9 +1051,9 @@ export const PropertyValue: FC<PropertyValueProps> = ({
<Row data-testid={propertyName} gutter={[0, 16]}> <Row data-testid={propertyName} gutter={[0, 16]}>
<Col span={24}> <Col span={24}>
<Row gutter={[0, 2]}> <Row gutter={[0, 2]}>
<Col className="d-flex justify-between items-center w-full" span={24}> <Col className="d-flex justify-between w-full" span={24}>
<Typography.Text <Typography.Text
className="text-grey-body property-name" className="text-md text-grey-body"
data-testid="property-name"> data-testid="property-name">
{getEntityName(property)} {getEntityName(property)}
</Typography.Text> </Typography.Text>
@ -1073,30 +1072,18 @@ export const PropertyValue: FC<PropertyValueProps> = ({
</Tooltip> </Tooltip>
)} )}
</Col> </Col>
{!isRenderedInRightPanel && ( <Col span={24}>
<Col span={24}> <RichTextEditorPreviewer
<RichTextEditorPreviewer className="text-grey-muted"
className="text-grey-muted property-description" markdown={property.description || ''}
markdown={property.description || ''} maxLength={70}
maxLength={70} />
reducePreviewLineClass="max-one-line" </Col>
/>
</Col>
)}
</Row> </Row>
</Col> </Col>
<Col span={24}> <Col span={24}>
<div <div className="d-flex justify-between w-full gap-2">
className={classNames(
'd-flex justify-between w-full gap-2',
{
'items-end': isExpanded,
},
{
'items-center': !isExpanded,
}
)}>
<div <div
className="w-full" className="w-full"
ref={contentRef} ref={contentRef}
@ -1107,15 +1094,14 @@ export const PropertyValue: FC<PropertyValueProps> = ({
{showInput ? getPropertyInput() : getValueElement()} {showInput ? getPropertyInput() : getValueElement()}
</div> </div>
{isOverflowing && !showInput && ( {isOverflowing && !showInput && (
<Icon <Button
className={classNames('custom-property-value-toggle-btn', { className="custom-property-value-toggle-btn"
active: isExpanded,
})}
component={ArrowIconComponent}
data-testid={`toggle-${propertyName}`} data-testid={`toggle-${propertyName}`}
style={{ color: DE_ACTIVE_COLOR, ...ICON_DIMENSION }} size="small"
onClick={toggleExpand} type="text"
/> onClick={toggleExpand}>
{isExpanded ? <UpOutlined /> : <DownOutlined />}
</Button>
)} )}
</div> </div>
</Col> </Col>
@ -1125,7 +1111,7 @@ export const PropertyValue: FC<PropertyValueProps> = ({
if (isRenderedInRightPanel) { if (isRenderedInRightPanel) {
return ( return (
<div <div
className="custom-property-card custom-property-card-right-panel" className="custom-property-card-right-panel"
data-testid="custom-property-right-panel-card"> data-testid="custom-property-right-panel-card">
{isInlineProperty ? customPropertyInlineElement : customPropertyElement} {isInlineProperty ? customPropertyInlineElement : customPropertyElement}
</div> </div>

View File

@ -31,17 +31,14 @@
} }
} }
.custom-property-value-toggle-btn { .ant-btn-text.custom-property-value-toggle-btn {
svg { border-radius: 100%;
background: @btn-bg-color;
border-color: transparent;
height: 30px;
width: 30px;
.anticon {
vertical-align: middle; vertical-align: middle;
width: 14px;
transition: 0.3s ease-in-out;
}
}
.custom-property-value-toggle-btn.active {
svg {
transform: rotate(180deg);
} }
} }
@ -62,14 +59,6 @@
.ant-card-body { .ant-card-body {
overflow-x: scroll; overflow-x: scroll;
} }
.property-name {
font-weight: 400;
}
.property-value {
font-weight: 500;
}
} }
.custom-property-card-right-panel { .custom-property-card-right-panel {

View File

@ -111,7 +111,7 @@ const ResizablePanels: React.FC<ResizablePanelsProps> = ({
}}> }}>
{!hideSecondPanel && ( {!hideSecondPanel && (
<PanelContainer overlay={secondPanel.overlay}> <PanelContainer overlay={secondPanel.overlay}>
<div className="p-l-sm">{secondPanel.children}</div> {secondPanel.children}
</PanelContainer> </PanelContainer>
)} )}
</ReflexElement> </ReflexElement>

View File

@ -37,7 +37,6 @@ export interface PreviewerProp {
showReadMoreBtn?: boolean; showReadMoreBtn?: boolean;
isDescriptionExpanded?: boolean; isDescriptionExpanded?: boolean;
textVariant?: TextVariant; textVariant?: TextVariant;
reducePreviewLineClass?: string;
} }
export type PreviewStyle = 'tab' | 'vertical'; export type PreviewStyle = 'tab' | 'vertical';

View File

@ -35,7 +35,6 @@ const RichTextEditorPreviewer = ({
showReadMoreBtn = true, showReadMoreBtn = true,
maxLength = DESCRIPTION_MAX_PREVIEW_CHARACTERS, maxLength = DESCRIPTION_MAX_PREVIEW_CHARACTERS,
isDescriptionExpanded = false, isDescriptionExpanded = false,
reducePreviewLineClass,
}: PreviewerProp) => { }: PreviewerProp) => {
const { t, i18n } = useTranslation(); const { t, i18n } = useTranslation();
const [content, setContent] = useState<string>(''); const [content, setContent] = useState<string>('');
@ -111,11 +110,7 @@ const RichTextEditorPreviewer = ({
data-testid="viewer-container" data-testid="viewer-container"
dir={i18n.dir()}> dir={i18n.dir()}>
<div <div
className={classNames( className={classNames('markdown-parser', textVariant)}
'markdown-parser',
textVariant,
readMore ? '' : reducePreviewLineClass
)}
data-testid="markdown-parser"> data-testid="markdown-parser">
<Viewer <Viewer
extendedAutolinks extendedAutolinks

View File

@ -262,14 +262,6 @@ a[href].link-text-grey,
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
} }
.max-one-line {
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 1;
line-clamp: 1;
-webkit-box-orient: vertical;
}
.mx-auto { .mx-auto {
margin-right: auto; margin-right: auto;
margin-left: auto; margin-left: auto;