Skip to content

Commit 912b65c

Browse files
authored
some styling ideas (#2010)
1 parent 59e7d5e commit 912b65c

File tree

1 file changed

+79
-25
lines changed

1 file changed

+79
-25
lines changed

site/src/pages/WorkspacesPage/WorkspacesPage.tsx

Lines changed: 79 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
import Button from "@material-ui/core/Button"
2+
import Fade from "@material-ui/core/Fade"
3+
import InputAdornment from "@material-ui/core/InputAdornment"
24
import Link from "@material-ui/core/Link"
35
import Menu from "@material-ui/core/Menu"
46
import MenuItem from "@material-ui/core/MenuItem"
57
import { makeStyles } from "@material-ui/core/styles"
68
import TextField from "@material-ui/core/TextField"
79
import AddCircleOutline from "@material-ui/icons/AddCircleOutline"
10+
import SearchIcon from "@material-ui/icons/Search"
811
import { useMachine } from "@xstate/react"
912
import { FormikErrors, useFormik } from "formik"
1013
import { FC, useState } from "react"
@@ -70,45 +73,96 @@ const WorkspacesPage: FC = () => {
7073
}
7174

7275
return (
73-
<>
74-
<Margins>
75-
<div className={styles.actions}>
76-
<Stack direction="row">
77-
<Button aria-controls="filter-menu" aria-haspopup="true" onClick={handleClick}>
76+
<Margins>
77+
<Stack direction="row" className={styles.workspacesHeaderContainer}>
78+
<Stack direction="column" className={styles.filterColumn}>
79+
<Stack direction="row" spacing={0} className={styles.filterContainer}>
80+
<Button
81+
aria-controls="filter-menu"
82+
aria-haspopup="true"
83+
onClick={handleClick}
84+
className={styles.buttonRoot}
85+
>
7886
{Language.filterName} {anchorEl ? <CloseDropdown /> : <OpenDropdown />}
7987
</Button>
8088

81-
<Menu id="filter-menu" anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={handleClose}>
89+
<form onSubmit={form.handleSubmit} className={styles.filterForm}>
90+
<TextField
91+
{...getFieldHelpers("query")}
92+
className={styles.textFieldRoot}
93+
onChange={onChangeTrimmed(form)}
94+
fullWidth
95+
variant="outlined"
96+
InputProps={{
97+
startAdornment: (
98+
<InputAdornment position="start">
99+
<SearchIcon fontSize="small" />
100+
</InputAdornment>
101+
),
102+
}}
103+
/>
104+
</form>
105+
106+
<Menu
107+
id="filter-menu"
108+
anchorEl={anchorEl}
109+
keepMounted
110+
open={Boolean(anchorEl)}
111+
onClose={handleClose}
112+
TransitionComponent={Fade}
113+
anchorOrigin={{
114+
vertical: "bottom",
115+
horizontal: "left",
116+
}}
117+
transformOrigin={{
118+
vertical: "top",
119+
horizontal: "left",
120+
}}
121+
>
82122
<MenuItem onClick={setYourWorkspaces}>{Language.yourWorkspacesButton}</MenuItem>
83123
<MenuItem onClick={setAllWorkspaces}>{Language.allWorkspacesButton}</MenuItem>
84124
</Menu>
85-
86-
<form onSubmit={form.handleSubmit}>
87-
<TextField {...getFieldHelpers("query")} onChange={onChangeTrimmed(form)} fullWidth variant="outlined" />
88-
</form>
89125
</Stack>
90-
91-
<Link underline="none" component={RouterLink} to="/workspaces/new">
92-
<Button startIcon={<AddCircleOutline />}>{Language.createWorkspaceButton}</Button>
93-
</Link>
94-
</div>
95-
96-
<WorkspacesPageView
97-
loading={workspacesState.hasTag("loading")}
98-
workspaces={workspacesState.context.workspaces}
99-
/>
100-
</Margins>
101-
</>
126+
</Stack>
127+
128+
<Link underline="none" component={RouterLink} to="/workspaces/new">
129+
<Button startIcon={<AddCircleOutline />} style={{ height: "44px" }}>
130+
{Language.createWorkspaceButton}
131+
</Button>
132+
</Link>
133+
</Stack>
134+
<WorkspacesPageView loading={workspacesState.hasTag("loading")} workspaces={workspacesState.context.workspaces} />
135+
</Margins>
102136
)
103137
}
104138

105139
const useStyles = makeStyles((theme) => ({
106-
actions: {
140+
workspacesHeaderContainer: {
107141
marginTop: theme.spacing(3),
108142
marginBottom: theme.spacing(3),
109-
display: "flex",
110143
justifyContent: "space-between",
111-
height: theme.spacing(6),
144+
},
145+
filterColumn: {
146+
width: "60%",
147+
cursor: "text",
148+
},
149+
filterContainer: {
150+
border: `1px solid ${theme.palette.divider}`,
151+
borderRadius: "6px",
152+
},
153+
filterForm: {
154+
width: "100%",
155+
},
156+
buttonRoot: {
157+
border: "none",
158+
borderRight: `1px solid ${theme.palette.divider}`,
159+
borderRadius: "6px 0px 0px 6px",
160+
},
161+
textFieldRoot: {
162+
margin: "0px",
163+
"& fieldset": {
164+
border: "none",
165+
},
112166
},
113167
}))
114168

0 commit comments

Comments
 (0)