From 42c887e63471630920ae7207777065f7ddd0878c Mon Sep 17 00:00:00 2001 From: Mihaela Ogrezeanu Date: Tue, 16 Jul 2019 07:24:39 -0700 Subject: [PATCH] Add more fields on the Tree nodes Summary: Add fields for colouring the changeset operation that was performed on a node in the tree. Changesets are not ordered by type of operation, they need to be displayed in order Reviewed By: danielbuechele Differential Revision: D16121158 fbshipit-source-id: 411557170b16ada9d1d72fb617b1aaf583e0f0e7 --- src/plugins/sections/Models.js | 52 ++++++++++++++++++++-------------- src/plugins/sections/Tree.js | 31 +++++++++++++++----- 2 files changed, 55 insertions(+), 28 deletions(-) diff --git a/src/plugins/sections/Models.js b/src/plugins/sections/Models.js index d6c588135..c0d90e7f8 100644 --- a/src/plugins/sections/Models.js +++ b/src/plugins/sections/Models.js @@ -26,12 +26,16 @@ export type UpdateTreeGenerationHierarchyGenerationPayload = {| id: string, reason: string, tree?: Array<{ - didTriggerStateUpdate: boolean, + didTriggerStateUpdate?: boolean, identifier: string, - isDirty: boolean, - isReused: boolean, + isDirty?: boolean, + isReused?: boolean, name: string, - parent: string | 0, + parent: string | '', + inserted?: boolean, + removed?: boolean, + updated?: boolean, + unchanged?: boolean, }>, |}; @@ -40,15 +44,18 @@ export type UpdateTreeGenerationChangesetGenerationPayload = {| tree_generation_id: string, identifier: string, type: string, - changeset: { - inserted_items: {}, - inserted_sections: {}, - moved_items: {}, - removed_sections: [], - updated_items: { - [key: string]: { - context: string, - model: string, + changesets: { + section_key: { + changesets: { + id: { + count: number, + index: number, + toIndex?: number, + type: string, + render_infos?: Array, + prev_data?: Array, + next_data?: Array, + }, }, }, }, @@ -56,14 +63,17 @@ export type UpdateTreeGenerationChangesetGenerationPayload = {| export type UpdateTreeGenerationChangesetApplicationPayload = {| changeset: { - inserted_items: {}, - inserted_sections: {}, - moved_items: {}, - removed_sections: [], - updated_items: { - [key: string]: { - context: string, - model: string, + section_key: { + changesets: { + id: { + count: number, + index: number, + toIndex?: number, + type: string, + render_infos?: Array, + prev_data?: Array, + next_data?: Array, + }, }, }, }, diff --git a/src/plugins/sections/Tree.js b/src/plugins/sections/Tree.js index c4f4c117e..11475ee10 100644 --- a/src/plugins/sections/Tree.js +++ b/src/plugins/sections/Tree.js @@ -54,10 +54,14 @@ const Container = styled('div')({ type TreeData = Array<{ identifier: string, name: string, - parent: string | 0, - didTriggerStateUpdate: boolean, - isReused: boolean, - isDirty: boolean, + parent: string | '', + didTriggerStateUpdate?: boolean, + isReused?: boolean, + isDirty?: boolean, + inserted?: boolean, + removed?: boolean, + updated?: boolean, + unchanged?: boolean, }>; type Props = { @@ -94,6 +98,16 @@ export default class extends PureComponent { fill = colors.grape; } + if (n.removed) { + fill = colors.light20; + } else if (n.inserted) { + fill = colors.pinkDark1; + } else if (n.updated) { + fill = colors.orangeTint15; + } else if (n.unchanged) { + fill = colors.teal; + } + return { name: n.name, children: [], @@ -226,9 +240,12 @@ export default class extends PureComponent { step="0.01" /> - triggered state update - is reused - is dirty + Item removed + Item inserted + Item updated + Item/Section Reused + Section triggered state update + Section is dirty );