Слияние кода завершено, страница обновится автоматически
// @ts-nocheck
import * as React from 'react';
import classNames from 'classnames';
import { DraggableProvided, DraggableStateSnapshot } from 'react-beautiful-dnd';
import { defaultClassPrefix, getUnhandledProps, prefix } from './utils';
import TableContext from './TableContext';
import { StandardProps } from './common';
export interface RowProps extends StandardProps {
width?: number;
height?: number;
headerHeight?: number;
top?: number;
isHeaderRow?: boolean;
rowDraggable?: boolean;
rowRef?: React.Ref<any>;
provided?: DraggableProvided;
snapshot?: DraggableStateSnapshot;
}
const propTypeKeys = [
'width',
'height',
'headerHeight',
'top',
'isHeaderRow',
'rowDraggable',
'rowRef',
'className',
'classPrefix',
'style',
'provided',
'snapshot',
];
class Row extends React.PureComponent<RowProps> {
static defaultProps = {
classPrefix: defaultClassPrefix('performance-table-row'),
height: 46,
headerHeight: 40,
};
render() {
const {
// todo
// dragColumnAlign,
className,
width,
height,
top,
style,
isHeaderRow,
headerHeight,
rowRef,
classPrefix,
children,
rowDraggable,
provided,
snapshot,
...rest
} = this.props;
const addPrefix = prefix(classPrefix);
const classes = classNames(classPrefix, className, {
[addPrefix('header')]: isHeaderRow,
});
let styles = {
minWidth: width,
height: isHeaderRow ? headerHeight : height,
...style,
};
const unhandledProps = getUnhandledProps(propTypeKeys, rest);
return (
<TableContext.Consumer>
{({ translateDOMPositionXY }) => {
if (translateDOMPositionXY) {
translateDOMPositionXY(styles, 0, top);
}
const providedProps = {};
let transform = styles.transform;
if (rowDraggable && provided) {
let regex = new RegExp('translate\\((.*?)px, (.*?)px\\)');
let regex3d = new RegExp('translate3d\\((.*?)px,(.*?)px,(.*?)\\)');
// the transform property of parent style gotten through reference and passed in as a prop
let parentValues = regex3d.exec(styles.transform || '');
let childValues = regex.exec(provided.draggableProps.style.transform || '');
// if both the parent (the nested list) and the child (item beeing dragged) has transform values, recalculate the child items transform to account for position fixed not working
if (childValues != null && parentValues != null) {
let x = (parseFloat(childValues[1], 10));
let y = (parseFloat(childValues[2], 10));
let p_x = (parseFloat(parentValues[1], 10));
let p_y = (parseFloat(parentValues[2], 10));
let p_z = (parseFloat(parentValues[3], 10));
transform = `translate3d(${x + p_x}px, ${y + p_y}px, ${p_z}px)`;
}
Object.assign(providedProps, provided.draggableProps, provided.dragHandleProps);
styles = {
...styles,
top: 'auto !important',
left: 'auto !important',
cursor: 'move',
transform,
zIndex: snapshot.isDragging ? 999 : styles.zIndex,
};
}
return <div {...providedProps} role="row" {...unhandledProps} ref={rowRef} className={classes} style={styles}>
{children}
</div>;
}}
</TableContext.Consumer>
);
}
}
export default Row;
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )