Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bc2ed33

Browse files
f0sselgreyscaled
andauthored
Apply suggestions from code review
Co-authored-by: G r e y <[email protected]>
1 parent df15018 commit bc2ed33

File tree

3 files changed

+33
-19
lines changed

3 files changed

+33
-19
lines changed

site/src/pages/WorkspacesPage/WorkspacesPage.tsx

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,30 +25,36 @@ const WorkspacesPage: FC = () => {
2525
const styles = useStyles()
2626
const [workspacesState, send] = useMachine(workspacesMachine)
2727

28-
const form: FormikContextType<FilterFormValues> = useFormik<FilterFormValues>({
29-
initialValues: { query: workspacesState.context.filter || "" },
30-
onSubmit: (data) => {
28+
const form = useFormik<FilterFormValues>({
29+
initialValues: {
30+
query: workspacesState.context.filter || "",
31+
},
32+
onSubmit: (values) => {
3133
send({
3234
type: "SET_FILTER",
33-
query: data.query,
35+
query: values.query,
3436
})
3537
},
3638
})
3739

38-
const getFieldHelpers = getFormHelpers<FilterFormValues>(form, {})
40+
const getFieldHelpers = getFormHelpers<FilterFormValues>(form)
3941

4042
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)
43+
4144
const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
4245
setAnchorEl(event.currentTarget)
4346
}
47+
4448
const handleClose = () => {
4549
setAnchorEl(null)
4650
}
51+
4752
const setYourWorkspaces = () => {
4853
form.setFieldValue("query", "owner:me")
4954
void form.submitForm()
5055
handleClose()
5156
}
57+
5258
const setAllWorkspaces = () => {
5359
form.setFieldValue("query", "")
5460
void form.submitForm()
@@ -60,13 +66,15 @@ const WorkspacesPage: FC = () => {
6066
<Margins>
6167
<div className={styles.actions}>
6268
<Stack direction="row">
63-
<Button aria-controls="simple-menu" aria-haspopup="true" onClick={handleClick}>
69+
<Button aria-controls="filter-menu" aria-haspopup="true" onClick={handleClick}>
6470
Filter
6571
</Button>
66-
<Menu id="simple-menu" anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={handleClose}>
72+
73+
<Menu id="filter-menu" anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={handleClose}>
6774
<MenuItem onClick={setYourWorkspaces}>Your workspaces</MenuItem>
6875
<MenuItem onClick={setAllWorkspaces}>All workspaces</MenuItem>
6976
</Menu>
77+
7078
<form onSubmit={form.handleSubmit}>
7179
<TextField {...getFieldHelpers("query")} onChange={onChangeTrimmed(form)} fullWidth variant="outlined" />
7280
</form>
@@ -76,6 +84,7 @@ const WorkspacesPage: FC = () => {
7684
<Button startIcon={<AddCircleOutline />}>{Language.createButton}</Button>
7785
</Link>
7886
</div>
87+
7988
<WorkspacesPageView
8089
loading={workspacesState.hasTag("loading")}
8190
workspaces={workspacesState.context.workspaces}

site/src/util/workspace.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ describe("util > workspace", () => {
4646
["", { Owner: "", OrganizationID: "" }],
4747
["asdkfvjn", { Owner: "", OrganizationID: "" }],
4848
["owner:me", { Owner: "me", OrganizationID: "" }],
49-
["owner:me owner:me2", { Owner: "me2", OrganizationID: "" }],
49+
["owner:me owner:me2", { Owner: "me", OrganizationID: "" }],
5050
])(`query=%p, filter=%p`, (query, filter) => {
51-
expect(workspaceQueryToFilter(query)).toBe(filter)
51+
expect(workspaceQueryToFilter(query)).toEqual(filter)
5252
})
5353
})
5454
})

site/src/util/workspace.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -193,23 +193,28 @@ export const isWorkspaceOn = (workspace: Workspace): boolean => {
193193
}
194194

195195
export const workspaceQueryToFilter = (query?: string): WorkspaceFilter => {
196-
let filter: WorkspaceFilter = {
196+
const defaultFilter: WorkspaceFilter = {
197197
Owner: "",
198198
OrganizationID: "",
199199
}
200200

201-
if (query) {
202-
const parts = query.split(" ")
201+
const preparedQuery = query?.replace(/ +/g, " ")
203202

204-
parts.map((part) => {
205-
if (part.startsWith("owner:")) {
206-
filter = {
207-
Owner: part.slice("owner:".length),
203+
if (!preparedQuery) {
204+
return defaultFilter
205+
} else {
206+
const parts = preparedQuery.split(" ")
207+
208+
for (const part of parts) {
209+
const [key, val] = part.split(":")
210+
if (key === "owner") {
211+
return {
212+
Owner: val,
208213
OrganizationID: "",
209214
}
210215
}
211-
})
212-
}
216+
}
213217

214-
return filter
218+
return defaultFilter
219+
}
215220
}

0 commit comments

Comments
 (0)