From 90794fcb59a5ec62c687909f6f72b907eb3731f3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 15 Jun 2020 18:55:44 +0200 Subject: [PATCH 1/3] packages/core: fix base path being ignored + sidebar highlighting --- packages/app/src/components/Root/Root.tsx | 12 +++---- packages/core-api/src/app/App.tsx | 9 ++++- packages/core/src/layout/Sidebar/Items.tsx | 36 ++++++++----------- .../Sidebar/Settings/ProviderSettingsItem.tsx | 7 +--- .../layout/Sidebar/Settings/UserProfile.tsx | 1 - 5 files changed, 30 insertions(+), 35 deletions(-) diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx index 8b1ce76cbd..453c98bc72 100644 --- a/packages/app/src/components/Root/Root.tsx +++ b/packages/app/src/components/Root/Root.tsx @@ -86,14 +86,14 @@ const Root: FC<{}> = ({ children }) => ( {/* Global nav, not org-specific */} - - - + + + {/* End global nav */} - - - + + + diff --git a/packages/core-api/src/app/App.tsx b/packages/core-api/src/app/App.tsx index d7920e6bbd..c5c53f50ba 100644 --- a/packages/core-api/src/app/App.tsx +++ b/packages/core-api/src/app/App.tsx @@ -205,7 +205,14 @@ export class PrivateAppImpl implements BackstageApp { - {children} + + + {children}} + /> + + diff --git a/packages/core/src/layout/Sidebar/Items.tsx b/packages/core/src/layout/Sidebar/Items.tsx index 5c2909f82e..68f67c1445 100644 --- a/packages/core/src/layout/Sidebar/Items.tsx +++ b/packages/core/src/layout/Sidebar/Items.tsx @@ -111,8 +111,8 @@ const useStyles = makeStyles(theme => { type SidebarItemProps = { icon: IconComponent; text?: string; + // If 'to' is set the item will act as a nav link with highlight, otherwise it's just a button to?: string; - disableSelected?: boolean; hasNotifications?: boolean; onClick?: () => void; }; @@ -120,9 +120,7 @@ type SidebarItemProps = { export const SidebarItem: FC = ({ icon: Icon, text, - to = '#', - // TODO: isActive is not in v6 - // disableSelected = false, + to, hasNotifications = false, onClick, children, @@ -144,27 +142,23 @@ export const SidebarItem: FC = ({ ); + const Component = to === undefined ? 'div' : NavLink; + const childProps = { + activeClassName: classes.selected, + end: true, + to: to!, + onClick: onClick, + }; + if (!isOpen) { return ( - + {itemIcon} - + ); } return ( - +
{itemIcon}
@@ -174,7 +168,7 @@ export const SidebarItem: FC = ({ )}
{children}
-
+ ); }; @@ -198,7 +192,7 @@ export const SidebarSearchField: FC = props => { return (
- + = ({ title, icon, signedIn, api, signInHandler }) => { return ( - + (signedIn ? api.logout() : signInHandler())}> = ({ text={displayName} onClick={handleClick} icon={avatar || AccountCircleIcon} - disableSelected > {open ? : } From 972745a0914c3f4b3eb4b7498b6139baaa0b239e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 15 Jun 2020 19:23:34 +0200 Subject: [PATCH 2/3] packages/core: refactor SidebarItem to avoid warnings --- packages/core/src/layout/Sidebar/Items.tsx | 32 +++++++++++++++------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/packages/core/src/layout/Sidebar/Items.tsx b/packages/core/src/layout/Sidebar/Items.tsx index 68f67c1445..a7f40f56ba 100644 --- a/packages/core/src/layout/Sidebar/Items.tsx +++ b/packages/core/src/layout/Sidebar/Items.tsx @@ -142,23 +142,25 @@ export const SidebarItem: FC = ({ ); - const Component = to === undefined ? 'div' : NavLink; const childProps = { - activeClassName: classes.selected, - end: true, - to: to!, - onClick: onClick, + onClick, + className: clsx(classes.root, isOpen ? classes.open : classes.closed), }; if (!isOpen) { + if (to === undefined) { + return
{itemIcon}
; + } + return ( - + {itemIcon} - + ); } - return ( - + + const content = ( + <>
{itemIcon}
@@ -168,7 +170,17 @@ export const SidebarItem: FC = ({ )}
{children}
-
+ + ); + + if (to === undefined) { + return
{content}
; + } + + return ( + + {content} + ); }; From 6692243b20b2b7a59bad0d74372307872eb9631a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 15 Jun 2020 19:25:11 +0200 Subject: [PATCH 3/3] packages/core-api: use fragment instead of div to wrap app route --- packages/core-api/src/app/App.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/core-api/src/app/App.tsx b/packages/core-api/src/app/App.tsx index c5c53f50ba..1923adba0d 100644 --- a/packages/core-api/src/app/App.tsx +++ b/packages/core-api/src/app/App.tsx @@ -207,10 +207,7 @@ export class PrivateAppImpl implements BackstageApp { - {children}
} - /> + {children}} />