Skip to content

Commit 8f6ac4d

Browse files
author
adesousa_microsoft
committed
update sidebar buttone styling
1 parent 8514cee commit 8f6ac4d

File tree

2 files changed

+42
-7
lines changed

2 files changed

+42
-7
lines changed

frontend/src/components/Sidebar/Sidebar.module.css

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,19 @@
3939
padding: 8px, 8px, 8px, 8px;
4040
}
4141

42+
.navigationButtonDisabled {
43+
justify-content: center;
44+
align-items: center;
45+
border-radius: 8px;
46+
margin: 8px;
47+
48+
padding: 8px, 8px, 8px, 8px;
49+
background: var(--Colors-Alpha-Black-5, #0000000D);
50+
51+
box-shadow: 0px 0px 2px 0px #0000003D;
52+
box-shadow: 0px 2px 4px 0px #00000047;
53+
}
54+
4255
.navigationButton:hover {
4356
background-color: #EDEBE9;
4457
cursor: pointer;

frontend/src/components/Sidebar/Sidebar.tsx

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,42 @@ import { AppStateContext } from '../../state/AppProvider'
77
import { getUserInfo } from '../../api'
88
import { useNavigate, useLocation } from 'react-router-dom'
99

10+
11+
enum NavigationButtonStates {
12+
Active = 'active',
13+
Inactive = 'inactive',
14+
Disabled = 'disabled'
15+
}
16+
1017
interface NavigationButtonProps {
1118
text: string
12-
isActive: boolean
19+
buttonState: NavigationButtonStates
1320
onClick: () => void
1421
}
1522

16-
const NavigationButton = ({ text, isActive, onClick }: NavigationButtonProps) => {
17-
const fontColor = isActive ? '#367AF6' : '#BEBBB8'
23+
const NavigationButton = ({ text, buttonState, onClick }: NavigationButtonProps) => {
24+
const fontColor = {
25+
[NavigationButtonStates.Active]: '#367AF6',
26+
[NavigationButtonStates.Inactive]: '#BEBBB8',
27+
[NavigationButtonStates.Disabled]: '#797775'
28+
}[buttonState]
29+
1830
const iconElements: { [key: string]: JSX.Element } = {
1931
'Browse': <News28Regular color={fontColor}/>,
2032
'Generate': <Book28Regular color={fontColor}/>,
2133
'Draft': <Notepad28Regular color={fontColor}/>
2234
}
2335

36+
const buttonStyle = {
37+
[NavigationButtonStates.Active]: styles.navigationButtonActive,
38+
[NavigationButtonStates.Inactive]: styles.navigationButton,
39+
[NavigationButtonStates.Disabled]: styles.navigationButtonDisabled
40+
}[buttonState]
41+
2442
const icon = iconElements[text]
2543

2644
return (
27-
<Stack onClick={onClick} className={isActive ? styles.navigationButtonActive : styles.navigationButton}>
45+
<Stack onClick={buttonState === NavigationButtonStates.Inactive ? onClick : () => {}} className={buttonStyle}>
2846
<Button appearance="transparent"
2947
size="large"
3048
icon={icon}
@@ -65,15 +83,19 @@ const Sidebar = (): JSX.Element => {
6583

6684
const currentView = determineView()
6785

86+
// inactive, disabled, active
87+
var draftButtonState = NavigationButtonStates.Disabled
88+
if (appStateContext?.state.draftedDocument) { draftButtonState = currentView === 'draft' ? NavigationButtonStates.Active : NavigationButtonStates.Inactive }
89+
6890
return (
6991
<Stack className={styles.sidebarContainer}>
7092
<Stack horizontal className={styles.avatarContainer}>
7193
<Avatar color="colorful" name={name} />
7294
</Stack>
7395
<Stack className={styles.sidebarNavigationContainer}>
74-
<NavigationButton text={"Browse"} isActive={currentView === 'chat'} onClick={() => { navigate("/chat") }} />
75-
<NavigationButton text={"Generate"} isActive={currentView === 'generate'} onClick={() => { navigate("/generate") }} />
76-
<NavigationButton text={"Draft"} isActive={currentView === 'draft'} onClick={() => { navigate("/draft") }} />
96+
<NavigationButton text={"Browse"} buttonState={currentView === 'chat' ? NavigationButtonStates.Active : NavigationButtonStates.Inactive} onClick={() => { navigate("/chat") }} />
97+
<NavigationButton text={"Generate"} buttonState={currentView === 'generate' ? NavigationButtonStates.Active : NavigationButtonStates.Inactive} onClick={() => { navigate("/generate") }} />
98+
<NavigationButton text={"Draft"} buttonState={draftButtonState} onClick={() => { navigate("/draft") }} />
7799
</Stack>
78100
</Stack>
79101
)

0 commit comments

Comments
 (0)