Skip to content

Commit 760fc6c

Browse files
committed
#1249 Created displayEnum pipe and applied to settingspage
1 parent a16c9ac commit 760fc6c

3 files changed

Lines changed: 18 additions & 2 deletions

File tree

src/frontend/src/pages/SettingsPage/Settings.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { useCurrentUser, useCurrentUserSecureSettings, useSingleUserSettings } f
1616
import ErrorPage from '../ErrorPage';
1717
import UserSecureSettings from './UserSecureSettings/UserSecureSettings';
1818
import { useAllTeams } from '../../hooks/teams.hooks';
19+
import { displayEnum } from '../../utils/pipes';
1920

2021
const NERSwitch = styled((props: SwitchProps) => (
2122
<Switch focusVisibleClassName=".Mui-focusVisible" disableRipple {...props} />
@@ -152,7 +153,7 @@ const Settings: React.FC = () => {
152153
<DetailDisplay label="Email ID" content={String(user.emailId)} />
153154
</Grid>
154155
<Grid item xs={12} sm={6} md={4} lg>
155-
<DetailDisplay label="Role" content={user.role} />
156+
<DetailDisplay label="Role" content={displayEnum(user.role)} />
156157
</Grid>
157158
<Grid item xs={12} sm={6} md={4} lg>
158159
<DetailDisplay

src/frontend/src/pages/SettingsPage/UserSettings/UserSettingsView.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { UserSettings } from 'shared';
88
import ExternalLink from '../../../components/ExternalLink';
99
import DetailDisplay from '../../../components/DetailDisplay';
1010
import { Box } from '@mui/system';
11+
import { displayEnum } from '../../../utils/pipes';
1112

1213
export interface UserSettingsViewProps {
1314
settings: UserSettings;
@@ -26,7 +27,7 @@ const UserSettingsView: React.FC<UserSettingsViewProps> = ({ settings }) => {
2627
return (
2728
<Grid container spacing={2}>
2829
<Grid item xs={12} sm={6}>
29-
<DetailDisplay label="Default Theme" content={settings.defaultTheme} />
30+
<DetailDisplay label="Default Theme" content={displayEnum(settings.defaultTheme)} />
3031
</Grid>
3132
<Grid item xs={12} sm={6}>
3233
<SlackId settings={settings} />

src/frontend/src/utils/pipes.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,3 +141,17 @@ export const codeAndRefundSourceName = (refundSource: ClubAccount) => {
141141
return `${BUDGET_ACCOUNT_CODE} - ${refundSource}`;
142142
}
143143
};
144+
145+
// Takes in an enum string to capitalize first letter of each word and gets rid of underscore
146+
export const displayEnum = (enumString: string) => {
147+
enumString = enumString.toLowerCase();
148+
while (enumString.indexOf('_') !== -1) {
149+
enumString =
150+
enumString.substring(0, enumString.indexOf('_')) +
151+
' ' +
152+
enumString.charAt(enumString.indexOf('_') + 1).toUpperCase() +
153+
enumString.slice(enumString.indexOf('_') + 2);
154+
}
155+
enumString = enumString.charAt(0).toUpperCase() + enumString.slice(1);
156+
return enumString;
157+
};

0 commit comments

Comments
 (0)