Skip to content

Commit a45af1a

Browse files
authored
feat(EXXETA#97): Add Sidebar Tree UI (EXXETA#181)
EXXETA#97 - add Sidebar UI
1 parent 808ef2e commit a45af1a

30 files changed

+2128
-790
lines changed

package-lock.json

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

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,14 @@
6262
"dependencies": {
6363
"@electron-forge/shared-types": "^7.6.1",
6464
"@monaco-editor/react": "^4.6.0",
65+
"@radix-ui/react-collapsible": "^1.1.2",
6566
"@radix-ui/react-dialog": "^1.1.5",
6667
"@radix-ui/react-dropdown-menu": "^2.1.5",
6768
"@radix-ui/react-icons": "^1.3.2",
6869
"@radix-ui/react-scroll-area": "^1.2.2",
6970
"@radix-ui/react-select": "^2.1.5",
7071
"@radix-ui/react-separator": "^1.1.1",
72+
"@radix-ui/react-slot": "^1.1.1",
7173
"@radix-ui/react-tabs": "^1.1.2",
7274
"@radix-ui/react-toast": "^1.2.2",
7375
"@radix-ui/react-tooltip": "^1.1.6",

src/renderer/App.tsx

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,17 @@
11
import '@/styles/tailwind.css';
22
import '@/styles/global.css';
3-
import { Sidebar } from '@/view/Sidebar';
4-
import { MainWindow } from '@/view/MainWindow';
5-
import { Toaster } from '@/components/ui/toaster';
3+
import { Menubar } from '@/view/Menubar';
4+
import { RequestWindow } from '@/view/RequestWindow';
5+
import { SidebarProvider } from '@/components/ui/sidebar';
66
import { TooltipProvider } from '@/components/ui/tooltip';
7-
// import { Header } from '@/components/Header';
87

98
export const App = () => {
109
return (
1110
<TooltipProvider delayDuration={750}>
12-
<div>
13-
<div className="size-full">
14-
{/*<Header />*/}
15-
16-
<div className="h-screen flex items-stretch">
17-
<Sidebar />
18-
<MainWindow />
19-
</div>
20-
</div>
21-
<Toaster />
22-
</div>
11+
<SidebarProvider>
12+
<Menubar />
13+
<RequestWindow />
14+
</SidebarProvider>
2315
</TooltipProvider>
2416
);
2517
};

src/renderer/components/mainWindow/MainBody.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { InputTabs } from '@/components/mainWindow/bodyTabs/InputTabs';
1+
import { InputTabs } from '@/components/mainWindow/bodyTabs/InputTabs/InputTabs';
22
import { OutputTabs } from '@/components/mainWindow/bodyTabs/OutputTabs';
33

44
export function MainBody() {
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
2+
import { useMemo } from 'react';
3+
import { selectRequest, useCollectionStore } from '@/state/collectionStore';
4+
import { HeaderTab } from '@/components/mainWindow/bodyTabs/InputTabs/tabs/HeaderTab';
5+
import { BodyTab } from '@/components/mainWindow/bodyTabs/InputTabs/tabs/BodyTab';
6+
7+
interface InputTabsProps {
8+
className: string;
9+
}
10+
11+
export function InputTabs(props: Readonly<InputTabsProps>) {
12+
const { className } = props;
13+
14+
const headers = useCollectionStore((state) => selectRequest(state).headers);
15+
16+
const activeRowCount = useMemo(
17+
() => headers.filter((header) => header.isActive).length,
18+
[headers]
19+
);
20+
21+
return (
22+
<Tabs className={className} defaultValue="body">
23+
<TabsList>
24+
<TabsTrigger value="body">Body</TabsTrigger>
25+
{/*<TabsTrigger value="queryParams">Query</TabsTrigger>*/}
26+
<TabsTrigger value="headers">
27+
{activeRowCount === 0 ? 'Headers' : `Headers (${activeRowCount})`}
28+
</TabsTrigger>
29+
{/*<TabsTrigger value="authorization">Auth</TabsTrigger>*/}
30+
</TabsList>
31+
32+
<TabsContent value="body">
33+
<BodyTab />
34+
</TabsContent>
35+
36+
<TabsContent value="queryParams">Change your queryParams here.</TabsContent>
37+
38+
<TabsContent value="headers">
39+
<HeaderTab />
40+
</TabsContent>
41+
42+
<TabsContent value="authorization">Change your authorization here.</TabsContent>
43+
</Tabs>
44+
);
45+
}

src/renderer/components/mainWindow/bodyTabs/InputTabs/index.tsx

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

0 commit comments

Comments
 (0)