|
@@ -86,7 +86,7 @@ export class TableRow extends DateComponent<TableRowProps, TableRowState> {
|
|
|
props.cells
|
|
props.cells
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
- let selectedInstanceHash = // TODO: messy way to compute this
|
|
|
|
|
|
|
+ let isForcedInvisible = // TODO: messy way to compute this
|
|
|
(props.eventDrag && props.eventDrag.affectedInstances) ||
|
|
(props.eventDrag && props.eventDrag.affectedInstances) ||
|
|
|
(props.eventResize && props.eventResize.affectedInstances) ||
|
|
(props.eventResize && props.eventResize.affectedInstances) ||
|
|
|
{}
|
|
{}
|
|
@@ -98,15 +98,15 @@ export class TableRow extends DateComponent<TableRowProps, TableRowState> {
|
|
|
let normalFgNodes = this.renderFgSegs(
|
|
let normalFgNodes = this.renderFgSegs(
|
|
|
col,
|
|
col,
|
|
|
props.forPrint ? singleColPlacements[col] : multiColPlacements[col],
|
|
props.forPrint ? singleColPlacements[col] : multiColPlacements[col],
|
|
|
- selectedInstanceHash,
|
|
|
|
|
props.todayRange,
|
|
props.todayRange,
|
|
|
|
|
+ isForcedInvisible,
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
let mirrorFgNodes = this.renderFgSegs(
|
|
let mirrorFgNodes = this.renderFgSegs(
|
|
|
col,
|
|
col,
|
|
|
buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements),
|
|
buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements),
|
|
|
- {},
|
|
|
|
|
props.todayRange,
|
|
props.todayRange,
|
|
|
|
|
+ {},
|
|
|
Boolean(props.eventDrag),
|
|
Boolean(props.eventDrag),
|
|
|
Boolean(props.eventResize),
|
|
Boolean(props.eventResize),
|
|
|
false, // date-selecting (because mirror is never drawn for date selection)
|
|
false, // date-selecting (because mirror is never drawn for date selection)
|
|
@@ -194,16 +194,17 @@ export class TableRow extends DateComponent<TableRowProps, TableRowState> {
|
|
|
renderFgSegs(
|
|
renderFgSegs(
|
|
|
col: number,
|
|
col: number,
|
|
|
segPlacements: TableSegPlacement[],
|
|
segPlacements: TableSegPlacement[],
|
|
|
- selectedInstanceHash: { [instanceId: string]: any }, // for hiding the original in event dnd/resize
|
|
|
|
|
todayRange: DateRange,
|
|
todayRange: DateRange,
|
|
|
|
|
+ isForcedInvisible: { [instanceId: string]: any },
|
|
|
isDragging?: boolean,
|
|
isDragging?: boolean,
|
|
|
isResizing?: boolean,
|
|
isResizing?: boolean,
|
|
|
isDateSelecting?: boolean,
|
|
isDateSelecting?: boolean,
|
|
|
): VNode[] {
|
|
): VNode[] {
|
|
|
let { context } = this
|
|
let { context } = this
|
|
|
- let { eventSelection } = this.props // being selected by touch. bad vocab confusion with selectedInstanceHash!
|
|
|
|
|
|
|
+ let { eventSelection } = this.props
|
|
|
let { framePositions } = this.state
|
|
let { framePositions } = this.state
|
|
|
let defaultDisplayEventEnd = this.props.cells.length === 1 // colCnt === 1
|
|
let defaultDisplayEventEnd = this.props.cells.length === 1 // colCnt === 1
|
|
|
|
|
+ let isMirror = isDragging || isResizing || isDateSelecting
|
|
|
let nodes: VNode[] = []
|
|
let nodes: VNode[] = []
|
|
|
|
|
|
|
|
if (framePositions) {
|
|
if (framePositions) {
|
|
@@ -211,9 +212,7 @@ export class TableRow extends DateComponent<TableRowProps, TableRowState> {
|
|
|
let seg = placement.seg
|
|
let seg = placement.seg
|
|
|
let { instanceId } = seg.eventRange.instance
|
|
let { instanceId } = seg.eventRange.instance
|
|
|
let key = instanceId + ':' + col
|
|
let key = instanceId + ':' + col
|
|
|
- let isSelected = selectedInstanceHash[instanceId]
|
|
|
|
|
- let isMirror = isDragging || isResizing || isDateSelecting
|
|
|
|
|
- let isVisible = placement.isVisible && !isSelected
|
|
|
|
|
|
|
+ let isVisible = placement.isVisible && !isForcedInvisible[instanceId]
|
|
|
let isAbsolute = placement.isAbsolute
|
|
let isAbsolute = placement.isAbsolute
|
|
|
let left: CssDimValue = ''
|
|
let left: CssDimValue = ''
|
|
|
let right: CssDimValue = ''
|
|
let right: CssDimValue = ''
|
|
@@ -380,7 +379,7 @@ function buildMirrorPlacements(mirrorSegs: TableSeg[], colPlacements: TableSegPl
|
|
|
if (!mirrorSegs.length) {
|
|
if (!mirrorSegs.length) {
|
|
|
return []
|
|
return []
|
|
|
}
|
|
}
|
|
|
- let topsByInstanceId = buildAbsoluteTopHash(colPlacements)
|
|
|
|
|
|
|
+ let topsByInstanceId = buildAbsoluteTopHash(colPlacements) // TODO: cache this at first render?
|
|
|
return mirrorSegs.map((seg: TableSeg) => ({
|
|
return mirrorSegs.map((seg: TableSeg) => ({
|
|
|
seg,
|
|
seg,
|
|
|
isVisible: true,
|
|
isVisible: true,
|