Skip to content

Commit 8f0c00e

Browse files
authored
Merge pull request #5492 from 3drepo/ISSUE_5486
ISSUE #5486 - Incorrect pin colour until you click into the new ticket
2 parents c9b99be + 9bee854 commit 8f0c00e

File tree

3 files changed

+9
-12
lines changed

3 files changed

+9
-12
lines changed

frontend/src/v5/ui/routes/viewer/tickets/ticketDetailsCard/ticketsDetailsCard.component.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ export const TicketDetailsCard = () => {
142142
setDetailViewAndProps(TicketDetailsView.Form);
143143
TicketsActionsDispatchers.fetchTicket(teamspace, project, containerOrFederation, ticket._id, isFederation, revision);
144144
setTicketId(ticket._id);
145+
TicketsCardActionsDispatchers.setSelectedTemplate(ticket.type);
145146
}, [ticket?._id]);
146147

147148
useEffect(() => {

frontend/src/v5/ui/routes/viewer/tickets/ticketsForm/properties/coordsProperty/coordsProperty.component.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import { TicketsCardHooksSelectors, TicketsHooksSelectors } from '@/v5/services/
3232
import { TicketsCardActionsDispatchers } from '@/v5/services/actionsDispatchers';
3333
import { PaddedCrossIcon } from '@controls/chip/chip.styles';
3434
import { ITicket } from '@/v5/store/tickets/tickets.types';
35-
import { isEqual } from 'lodash';
35+
import { get, isEqual, set } from 'lodash';
3636
import { useFormContext, useWatch } from 'react-hook-form';
3737
import { DrawingViewerService } from '@components/viewer/drawingViewer/drawingViewer.service';
3838
import { Pin } from '../../../pin';
@@ -43,20 +43,22 @@ export const CoordsProperty = ({ value, label, onChange, onBlur, required, error
4343
const prevValue = useRef(undefined);
4444
const { getValues } = useFormContext();
4545
const ticket = getValues() as ITicket;
46-
const selectedTemplateId = TicketsCardHooksSelectors.selectSelectedTemplateId() ?? ticket?.type;
46+
const selectedTemplateId = ticket?.type ?? TicketsCardHooksSelectors.selectSelectedTemplateId();
4747
const template = TicketsHooksSelectors.selectTemplateById(containerOrFederation, selectedTemplateId);
4848
const selectedPin = TicketsCardHooksSelectors.selectSelectedTicketPinId();
4949

50-
const colourPropPath = getColorTriggerPropName(name, template);
51-
useWatch({ name:colourPropPath });
50+
const colorTriggerPropPath = getColorTriggerPropName(name, template);
51+
const colorTriggerPropValue = useWatch({ name: colorTriggerPropPath }) ?? get(ticket, colorTriggerPropPath);
5252

5353
const isNewTicket = !ticket?._id;
5454
const ticketId = !isNewTicket ? ticket._id : NEW_TICKET_ID;
55+
const minimumPinTicket = set({ _id: ticketId }, colorTriggerPropPath, colorTriggerPropValue) as ITicket;
56+
5557
const pinId = getPinId(name, ticket);
5658
const editMode = pinToDrop === pinId;
5759
const isSelected = selectedPin === pinId;
5860
const hasPin = !!value;
59-
const colorHex = getPinColorHexForProperty(name, template, ticket);
61+
const colorHex = getPinColorHexForProperty(name, template, minimumPinTicket);
6062
const pinIcon = getPinIconForProperty(name, template);
6163

6264
const cancelEdit = () => {
@@ -105,7 +107,7 @@ export const CoordsProperty = ({ value, label, onChange, onBlur, required, error
105107
}
106108

107109
if (hasPin) {
108-
ViewerService.showPin(toPin(name, template, ticket, false, value));
110+
ViewerService.showPin(toPin(name, template, minimumPinTicket, false, value));
109111
}
110112

111113
if (isSelected) ViewerService.setSelectionPin({ id: pinId, isSelected });

frontend/src/v5/ui/routes/viewer/tickets/ticketsList/ticketsList.component.tsx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,8 @@
1717
import { useEffect } from 'react';
1818
import { TicketsCardHooksSelectors } from '@/v5/services/selectorsHooks';
1919
import { TicketsCardActionsDispatchers } from '@/v5/services/actionsDispatchers';
20-
import { VIEWER_EVENTS } from '@/v4/constants/viewer';
2120
import { EmptyListMessage } from '@controls/dashedContainer/emptyListMessage/emptyListMessage.styles';
2221
import { FormattedMessage } from 'react-intl';
23-
import { Viewer as ViewerService } from '@/v4/services/viewer/viewer';
2422
import { TicketItem } from './ticketItem/ticketItem.component';
2523
import { List } from './ticketsList.styles';
2624

@@ -30,10 +28,6 @@ export const TicketsList = () => {
3028

3129
useEffect(() => {
3230
TicketsCardActionsDispatchers.setSelectedTicketPin(selectedTicket?._id);
33-
34-
const unselectTicket = () => TicketsCardActionsDispatchers.setSelectedTicket(null);
35-
ViewerService.on(VIEWER_EVENTS.BACKGROUND_SELECTED, unselectTicket);
36-
return () => ViewerService.off(VIEWER_EVENTS.BACKGROUND_SELECTED, unselectTicket);
3731
}, []);
3832

3933
return (

0 commit comments

Comments
 (0)