From edaeebd5798f7b403804ff7a5f8781fbcd9e3f54 Mon Sep 17 00:00:00 2001 From: Grzegorz Zdunek Date: Wed, 23 Mar 2022 10:48:49 +0100 Subject: [PATCH] Apply `Identity` design changes --- .../ui/TopBar/Identity/EmptyIdentityList.tsx | 22 ------- .../EmptyIdentityList/EmptyIdentityList.tsx | 41 ++++++++++++ .../Identity/EmptyIdentityList/clusters.png | Bin 0 -> 18583 bytes .../src/ui/TopBar/Identity/Identity.tsx | 4 +- .../Identity/IdentityList/IdentityList.tsx | 26 ++++---- .../IdentityList/IdentityListItem.tsx | 59 +++++++++++------- .../IdentitySelector/IdentitySelector.tsx | 2 +- .../src/ui/TopBar/Identity/useIdentity.ts | 2 +- .../teleterm/src/ui/TopBar/TopBar.tsx | 4 +- 9 files changed, 97 insertions(+), 63 deletions(-) delete mode 100644 web/packages/teleterm/src/ui/TopBar/Identity/EmptyIdentityList.tsx create mode 100644 web/packages/teleterm/src/ui/TopBar/Identity/EmptyIdentityList/EmptyIdentityList.tsx create mode 100644 web/packages/teleterm/src/ui/TopBar/Identity/EmptyIdentityList/clusters.png diff --git a/web/packages/teleterm/src/ui/TopBar/Identity/EmptyIdentityList.tsx b/web/packages/teleterm/src/ui/TopBar/Identity/EmptyIdentityList.tsx deleted file mode 100644 index f5d0569641e..00000000000 --- a/web/packages/teleterm/src/ui/TopBar/Identity/EmptyIdentityList.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import React from 'react'; -import { ButtonPrimary, Flex, Text } from 'design'; -import { useAppContext } from 'teleterm/ui/appContextProvider'; - -export function EmptyIdentityList() { - const ctx = useAppContext(); - - function handleConnect() { - ctx.commandLauncher.executeCommand('cluster-connect', {}); - } - - return ( - - - Connect to a Cluster - - - Connect - - - ); -} \ No newline at end of file diff --git a/web/packages/teleterm/src/ui/TopBar/Identity/EmptyIdentityList/EmptyIdentityList.tsx b/web/packages/teleterm/src/ui/TopBar/Identity/EmptyIdentityList/EmptyIdentityList.tsx new file mode 100644 index 00000000000..5a4ab86244b --- /dev/null +++ b/web/packages/teleterm/src/ui/TopBar/Identity/EmptyIdentityList/EmptyIdentityList.tsx @@ -0,0 +1,41 @@ +import React from 'react'; +import { ButtonPrimary, Flex, Text } from 'design'; +import { useAppContext } from 'teleterm/ui/appContextProvider'; +import Image from 'design/Image'; +import clusterPng from './clusters.png'; + +export function EmptyIdentityList() { + const ctx = useAppContext(); + + function handleConnect() { + ctx.commandLauncher.executeCommand('cluster-connect', {}); + } + + return ( + + + + No root cluster connected + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit + + + Connect + + + ); +} diff --git a/web/packages/teleterm/src/ui/TopBar/Identity/EmptyIdentityList/clusters.png b/web/packages/teleterm/src/ui/TopBar/Identity/EmptyIdentityList/clusters.png new file mode 100644 index 0000000000000000000000000000000000000000..751ea8f016b638203f1ed77036099dd017f8723a GIT binary patch literal 18583 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 h>5l&oN>5;y$b5tR5uaV`PXWLoF*_RvYr2&$(); @@ -84,6 +84,4 @@ const focusGrabber = ( const Container = styled(Box)` background: ${props => props.theme.colors.primary.dark}; - width: 350px; - padding-top: 12px; `; diff --git a/web/packages/teleterm/src/ui/TopBar/Identity/IdentityList/IdentityList.tsx b/web/packages/teleterm/src/ui/TopBar/Identity/IdentityList/IdentityList.tsx index 8740acaf641..0a821715bbd 100644 --- a/web/packages/teleterm/src/ui/TopBar/Identity/IdentityList/IdentityList.tsx +++ b/web/packages/teleterm/src/ui/TopBar/Identity/IdentityList/IdentityList.tsx @@ -20,16 +20,20 @@ interface IdentityListProps { export function IdentityList(props: IdentityListProps) { return ( - <> - - - {props.loggedInUser?.name} - - {props.loggedInUser?.rolesList?.join(', ')} - - - - + + {props.loggedInUser && ( + <> + + + {props.loggedInUser.name} + + {props.loggedInUser.rolesList.join(', ')} + + + + + + )} {props.clusters.map((i, index) => ( @@ -53,7 +57,7 @@ export function IdentityList(props: IdentityListProps) { /> - + ); } diff --git a/web/packages/teleterm/src/ui/TopBar/Identity/IdentityList/IdentityListItem.tsx b/web/packages/teleterm/src/ui/TopBar/Identity/IdentityList/IdentityListItem.tsx index eefd259e34a..1f3a7fddc42 100644 --- a/web/packages/teleterm/src/ui/TopBar/Identity/IdentityList/IdentityListItem.tsx +++ b/web/packages/teleterm/src/ui/TopBar/Identity/IdentityList/IdentityListItem.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React, { useRef, useState } from 'react'; import { ListItem } from 'teleterm/ui/components/ListItem'; import { useKeyboardArrowsNavigation } from 'teleterm/ui/components/KeyboardArrowsNavigation'; import { ButtonIcon, Flex, Label, Text } from 'design'; @@ -23,6 +23,8 @@ export function IdentityListItem(props: IdentityListItemProps) { index: props.index, onRun: props.onSelect, }); + const ref = useRef(); + const [newWidth, setMaxWidth] = useState(); const title = props.userName ? `${props.userName}@${props.clusterName}` @@ -32,33 +34,44 @@ export function IdentityListItem(props: IdentityListItemProps) { setIsHovered(true)} - onMouseLeave={() => setIsHovered(false)} + ref={ref} + style={{ maxWidth: newWidth && newWidth + 'px' }} + onMouseEnter={() => { + // we set maxWidth to list item element, because otherwise it becomes wider on hover (new element is added to it) + setMaxWidth(ref.current.clientWidth); + setIsHovered(true); + }} + onMouseLeave={() => { + setMaxWidth(undefined); + setIsHovered(false); + }} > + {props.isSyncing && } {title} - {props.isSelected ? ( - - ) : null} - {props.isSyncing && } - {isHovered && ( - { - e.stopPropagation(); - props.onLogout(); - }} - > - - - )} + + {props.isSelected ? ( + + ) : null} + {isHovered && ( + { + e.stopPropagation(); + props.onLogout(); + }} + > + + + )} + ); diff --git a/web/packages/teleterm/src/ui/TopBar/Identity/IdentitySelector/IdentitySelector.tsx b/web/packages/teleterm/src/ui/TopBar/Identity/IdentitySelector/IdentitySelector.tsx index 88ab9b4e431..1cdf11335ee 100644 --- a/web/packages/teleterm/src/ui/TopBar/Identity/IdentitySelector/IdentitySelector.tsx +++ b/web/packages/teleterm/src/ui/TopBar/Identity/IdentitySelector/IdentitySelector.tsx @@ -54,7 +54,7 @@ const Container = styled.button` flex-direction: row; padding: 0 12px; height: 100%; - max-width: 260px; + min-width: 0; border-radius: 4px; border-width: 1px; border-style: solid; diff --git a/web/packages/teleterm/src/ui/TopBar/Identity/useIdentity.ts b/web/packages/teleterm/src/ui/TopBar/Identity/useIdentity.ts index 20cc3e8d5f5..cd38e9eb961 100644 --- a/web/packages/teleterm/src/ui/TopBar/Identity/useIdentity.ts +++ b/web/packages/teleterm/src/ui/TopBar/Identity/useIdentity.ts @@ -15,7 +15,7 @@ export function useIdentity() { ctx.commandLauncher.executeCommand('cluster-connect', {}); } - async function logout(clusterUri: string): Promise { + function logout(clusterUri: string): void { ctx.commandLauncher.executeCommand('cluster-logout', {clusterUri}) } diff --git a/web/packages/teleterm/src/ui/TopBar/TopBar.tsx b/web/packages/teleterm/src/ui/TopBar/TopBar.tsx index 1f119e58608..ee861358ff0 100644 --- a/web/packages/teleterm/src/ui/TopBar/TopBar.tsx +++ b/web/packages/teleterm/src/ui/TopBar/TopBar.tsx @@ -24,7 +24,7 @@ export function TopBar() { const Grid = styled.div` display: grid; - grid-template-columns: 1fr auto 1fr; + grid-template-columns: 1fr auto minmax(250px, 1fr); width: 100%; padding: 8px 25px; height: 56px; @@ -49,7 +49,7 @@ const JustifyLeft = styled.div` `; const JustifyRight = styled.div` - display: flex; + display: grid; justify-self: end; align-items: center; height: 100%;