Skip to content

Commit c0130eb

Browse files
committed
Bunch of settings changes
1 parent 936c47e commit c0130eb

8 files changed

Lines changed: 311 additions & 183 deletions

File tree

package-lock.json

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
"react-hook-form": "^7.53.2",
3737
"react-redux": "^9.2.0",
3838
"react-router-dom": "^6.28.0",
39+
"redux-persist": "^6.0.0",
3940
"tailwind-merge": "^2.6.0",
4041
"tailwindcss-animate": "^1.0.7",
4142
"zod": "^3.23.8"

src/App.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ import CreateForm from "./components/form/form";
77
import InfoPage from "./app/explorer/info";
88
import UpdatePage from "./app/explorer/update_form";
99

10-
import { selectResources, store } from './state/store';
10+
import { selectResources, store, persistor } from './state/store';
1111
import { Provider } from 'react-redux'
12+
import { PersistGate } from 'redux-persist/integration/react'
1213
import { useAppSelector } from "./hooks/store";
1314

1415
function transformUrlForRouter(url: string): string {
@@ -52,7 +53,9 @@ function createRoutes(resources: ResourceSchema[]): RouteObject[] {
5253
function App() {
5354
return (
5455
<Provider store={store} >
56+
<PersistGate loading={null} persistor={persistor}>
5557
<Routes />
58+
</PersistGate>
5659
</Provider>
5760
);
5861
}

src/app/sidebar/app-sidebar.tsx

Lines changed: 17 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@ import * as React from "react";
22
import {
33
Sidebar,
44
SidebarContent,
5-
SidebarGroup,
6-
SidebarGroupContent,
75
SidebarHeader,
8-
SidebarInput,
96
SidebarRail,
7+
SidebarMenu,
8+
SidebarMenuItem,
9+
SidebarMenuButton,
1010
} from "@/components/ui/sidebar";
11-
import { useAppDispatch, useAppSelector } from "@/hooks/store";
12-
import { selectHeaders, selectRootResources, setHeaders, selectMockServerEnabled, setMockServerEnabled } from "@/state/store";
13-
import { Label } from "../../components/ui/label";
14-
import { Checkbox } from "../../components/ui/checkbox";
11+
import { useAppSelector } from "@/hooks/store";
12+
import { selectRootResources } from "@/state/store";
1513
import { ResourceTypeList } from "@/components/resource_types/resource_type_list";
14+
import { Home } from "lucide-react";
15+
import { Link } from "react-router-dom";
1616

1717
// The AppSidebar. This fetches the list of root resources from the schema and displays them.
1818
export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
@@ -21,8 +21,16 @@ export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
2121
return (
2222
<Sidebar {...props}>
2323
<SidebarHeader>
24-
<HeadersInput />
25-
<MockServerToggle />
24+
<SidebarMenu>
25+
<SidebarMenuItem>
26+
<SidebarMenuButton asChild>
27+
<Link to="/">
28+
<Home className="h-4 w-4" />
29+
<span>Home</span>
30+
</Link>
31+
</SidebarMenuButton>
32+
</SidebarMenuItem>
33+
</SidebarMenu>
2634
</SidebarHeader>
2735
<SidebarContent>
2836
<ResourceTypeList resources={resources} />
@@ -31,52 +39,3 @@ export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
3139
</Sidebar>
3240
);
3341
}
34-
35-
export function HeadersInput() {
36-
const headers = useAppSelector(selectHeaders);
37-
const dispatch = useAppDispatch();
38-
39-
const handleTextChange = (event: React.ChangeEvent<HTMLInputElement>) => {
40-
dispatch(setHeaders(event.target.value));
41-
};
42-
43-
return (
44-
<form>
45-
<SidebarGroup className="py-0">
46-
<SidebarGroupContent className="relative">
47-
<Label htmlFor="headers" className="sr-only">
48-
Headers
49-
</Label>
50-
<SidebarInput
51-
id="headers"
52-
placeholder="Headers"
53-
type="text"
54-
value={headers!}
55-
onChange={handleTextChange} />
56-
</SidebarGroupContent>
57-
</SidebarGroup>
58-
</form>
59-
);
60-
}
61-
62-
export function MockServerToggle() {
63-
const mockServerEnabled = useAppSelector(selectMockServerEnabled);
64-
const dispatch = useAppDispatch();
65-
66-
const handleToggle = (event: React.ChangeEvent<HTMLInputElement>) => {
67-
dispatch(setMockServerEnabled(event.target.checked));
68-
};
69-
70-
return (
71-
<SidebarGroup className="py-2">
72-
<SidebarGroupContent>
73-
<Checkbox
74-
id="mock-server"
75-
checked={mockServerEnabled}
76-
onChange={handleToggle}
77-
label="Use Mock Server"
78-
/>
79-
</SidebarGroupContent>
80-
</SidebarGroup>
81-
);
82-
}

src/app/spec_specifier/page.tsx

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
1-
import { OASSelector } from "@/components/oas-selector";
1+
import { Settings } from "@/components/settings";
22
import { useAppSelector } from "@/hooks/store";
33
import { schemaState } from "@/state/store";
44

55
export default function SpecSpecifierPage() {
6-
const state = useAppSelector(schemaState);
7-
if(state == 'unset') {
8-
return (
9-
<div className="flex h-screen w-full items-center justify-center px-4">
10-
<OASSelector />
11-
</div>
12-
)
13-
} else {
14-
return <div />
15-
}
6+
return (
7+
<div className="flex h-screen w-full items-center justify-center px-4">
8+
<Settings />
9+
</div>
10+
)
1611
}

src/components/oas-selector.tsx

Lines changed: 0 additions & 107 deletions
This file was deleted.

0 commit comments

Comments
 (0)