From 6a69a6e9918dfdcc63b41312ebe9982789953bae Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Sat, 1 Jun 2019 18:05:59 -0700 Subject: [PATCH] Added HOC badge to owners stack breadcrumbs --- src/devtools/views/Components/Element.css | 4 ++-- src/devtools/views/Components/OwnersStack.css | 6 ++++++ src/devtools/views/Components/OwnersStack.js | 16 +++++++++++++++- src/devtools/views/Settings/SettingsContext.js | 2 ++ src/devtools/views/root.css | 4 ++++ 5 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/devtools/views/Components/Element.css b/src/devtools/views/Components/Element.css index b41c5a0718..1c6bc2376f 100644 --- a/src/devtools/views/Components/Element.css +++ b/src/devtools/views/Components/Element.css @@ -38,8 +38,8 @@ --color-component-badge-background-inverted ); --color-jsx-arrow-brackets: var(--color-jsx-arrow-brackets-inverted); - --color-attribute-name: var(--color-background-hover); - --color-attribute-value: var(--color-component-name-inverted); + --color-attribute-name: var(--color-attribute-name-inverted); + --color-attribute-value: var(--color-attribute-value-inverted); --color-expand-collapse-toggle: var(--color-component-name-inverted); } diff --git a/src/devtools/views/Components/OwnersStack.css b/src/devtools/views/Components/OwnersStack.css index 48c9db0fc4..8e6fc95c9f 100644 --- a/src/devtools/views/Components/OwnersStack.css +++ b/src/devtools/views/Components/OwnersStack.css @@ -13,6 +13,8 @@ font-size: var(--font-size-monospace-normal); user-select: none; white-space: nowrap; + display: flex; + align-items: center; } .Component[data-reach-menu-item][data-selected], @@ -96,3 +98,7 @@ .NotInStore:hover { color: var(--color-dimmest); } + +.Badge { + margin-left: 0.25rem; +} \ No newline at end of file diff --git a/src/devtools/views/Components/OwnersStack.js b/src/devtools/views/Components/OwnersStack.js index 3883a14480..f47c93c2cb 100644 --- a/src/devtools/views/Components/OwnersStack.js +++ b/src/devtools/views/Components/OwnersStack.js @@ -13,10 +13,12 @@ import { Menu, MenuList, MenuButton, MenuItem } from '@reach/menu-button'; import Button from '../Button'; import ButtonIcon from '../ButtonIcon'; import Toggle from '../Toggle'; +import Badge from './Badge'; import { OwnersListContext } from './OwnersListContext'; import { TreeDispatcherContext, TreeStateContext } from './TreeContext'; import { useIsOverflowing } from '../hooks'; import { StoreContext } from '../context'; +import { ElementTypeMemo, ElementTypeForwardRef } from 'src/types'; import type { Owner } from './types'; @@ -237,7 +239,7 @@ type ElementViewProps = { function ElementView({ isSelected, owner, selectOwner }: ElementViewProps) { const store = useContext(StoreContext); - const { displayName } = owner; + const { displayName, hocDisplayNames, type } = owner; const isInStore = store.containsElement(owner.id); const handleChange = useCallback(() => { @@ -246,6 +248,16 @@ function ElementView({ isSelected, owner, selectOwner }: ElementViewProps) { } }, [isInStore, selectOwner, owner]); + // TODO Maybe factor this into a shared util method? + let badge = null; + if (hocDisplayNames !== null) { + badge = hocDisplayNames.length === 1 ? hocDisplayNames[0] : '…'; + } else if (type === ElementTypeMemo) { + badge = 'Memo'; + } else if (type === ElementTypeForwardRef) { + badge = 'ForwardRef'; + } + return ( {displayName} + + {badge} ); } diff --git a/src/devtools/views/Settings/SettingsContext.js b/src/devtools/views/Settings/SettingsContext.js index 734b7752a2..e4af216522 100644 --- a/src/devtools/views/Settings/SettingsContext.js +++ b/src/devtools/views/Settings/SettingsContext.js @@ -200,7 +200,9 @@ function updateThemeVariables( documentElements: DocumentElements ): void { updateStyleHelper(theme, 'color-attribute-name', documentElements); + updateStyleHelper(theme, 'color-attribute-name-inverted', documentElements); updateStyleHelper(theme, 'color-attribute-value', documentElements); + updateStyleHelper(theme, 'color-attribute-value-inverted', documentElements); updateStyleHelper(theme, 'color-attribute-editable-value', documentElements); updateStyleHelper(theme, 'color-background', documentElements); updateStyleHelper(theme, 'color-background-hover', documentElements); diff --git a/src/devtools/views/root.css b/src/devtools/views/root.css index 70aefe072e..f6a187185b 100644 --- a/src/devtools/views/root.css +++ b/src/devtools/views/root.css @@ -5,7 +5,9 @@ /* Light theme */ --light-color-attribute-name: #ef6632; + --light-color-attribute-name-inverted: rgba(255, 255, 255, 0.7); --light-color-attribute-value: #1a1aa6; + --light-color-attribute-value-inverted: #ffffff; --light-color-attribute-editable-value: #1a1aa6; --light-color-background: #ffffff; --light-color-background-hover: rgba(0, 136, 250, 0.1); @@ -64,7 +66,9 @@ /* Dark theme */ --dark-color-attribute-name: #9d87d2; + --dark-color-attribute-name-inverted: #282828; --dark-color-attribute-value: #cedae0; + --dark-color-attribute-value-inverted: #ffffff; --dark-color-attribute-editable-value: yellow; --dark-color-background: #282c34; --dark-color-background-hover: rgba(255, 255, 255, 0.1);