Skip to content

Commit 615ddc3

Browse files
committed
filter out child resources
1 parent 6c875aa commit 615ddc3

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

src/components/app-sidebar.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ import {
99
SidebarRail,
1010
} from "@/components/ui/sidebar";
1111
import { useAppDispatch, useAppSelector } from "@/hooks/store";
12-
import { selectHeaders, selectResources, setHeaders } from "@/state/store";
12+
import { selectHeaders, selectParentResources, setHeaders } from "@/state/store";
1313
import { Label } from "./ui/label";
1414
import { ResourceTypeList } from "@/app/sidebar/resource_type_list";
1515

1616
export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
17-
const resources = useAppSelector(selectResources);
17+
const resources = useAppSelector(selectParentResources);
1818

1919
return (
2020
<Sidebar {...props}>

src/state/openapi.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,15 @@ class ResourceSchema {
7777
}
7878
return properties;
7979
}
80+
81+
parents(): string[] {
82+
const resource = this.schema["x-aep-resource"]
83+
if ('parents' in resource) {
84+
return resource.parents;
85+
} else {
86+
return [];
87+
}
88+
}
8089
}
8190

8291
class PropertySchema {
@@ -118,6 +127,10 @@ class OpenAPI {
118127
return resources;
119128
}
120129

130+
parentResources(): ResourceSchema[] {
131+
return this.resources().filter((resource) => resource.parents().length == 0);
132+
}
133+
121134
resourceForName(plural: string): ResourceSchema {
122135
const resources = this.resources();
123136
for (const resource of resources) {

src/state/store.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,14 @@ export const selectChildResources = (state: RootState, resource: ResourceSchema,
4343
}
4444
}
4545

46+
export const selectParentResources = (state: RootState) => {
47+
if (state.schema.value != null) {
48+
return state.schema.value.parentResources();
49+
} else {
50+
return [];
51+
}
52+
}
53+
4654
export const schemaState = (state: RootState) => state.schema.state
4755

4856
// Headers reducers + selectors.

0 commit comments

Comments
 (0)