Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 20c71a3

Browse files
feat: collapsible sidebar enabled in demo
1 parent bc41a93 commit 20c71a3

File tree

3 files changed

+41
-2
lines changed

3 files changed

+41
-2
lines changed

‎demo/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,17 @@
44
"scripts": {
55
"dev": "vite --host",
66
"build": "vite build",
7-
"preview": "vite preview"
7+
"preview": "vite preview",
8+
"use-local": "npm install file:../",
9+
"use-npm": "npm install virtual-react-json-diff@latest"
810
},
911
"dependencies": {
1012
"ace-builds": "^1.43.2",
1113
"react": "^18.0.0",
1214
"react-ace": "^14.0.1",
1315
"react-dom": "^18.0.0",
1416
"react-json-editor-ajrm": "^2.5.14",
15-
"virtual-react-json-diff": "^1.0.0"
17+
"virtual-react-json-diff": "^1.0.9"
1618
},
1719
"devDependencies": {
1820
"@types/react-dom": "^19.1.9",

‎demo/src/components/Sidebar.css

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,29 @@
88
overflow-y: auto;
99
overflow-x: hidden;
1010
padding: 0;
11+
position: relative;
12+
}
13+
14+
.section-title {
15+
margin-right: 20px;
16+
}
17+
18+
.sidebar-collapse {
19+
cursor: pointer;
20+
position: absolute;
21+
top: 10px;
22+
right: 10px;
23+
font-size: 24px;
24+
}
25+
26+
.sidebar-collapsed {
27+
cursor: pointer;
28+
position: absolute;
29+
top: 0;
30+
font-size: 24px;
31+
z-index: 1000;
32+
left: 20px;
33+
color: black;
1134
}
1235

1336
/* Scrollbar Styling */

‎demo/src/components/Sidebar.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,31 @@
11
import type { DifferOptions } from "json-diff-kit";
22

33
import "./Sidebar.css";
4+
import { useState } from "react";
5+
46
import type { Config } from "../types";
57

68
type Props = { config: Config; updateConfig: (key: keyof Config, value: Config[keyof Config]) => void };
79

810
function Sidebar(props: Props) {
911
const { config, updateConfig } = props;
12+
const [showSidebar, setShowSidebar] = useState(true);
13+
14+
if (!showSidebar) {
15+
return (
16+
<div className="sidebar-collapsed" onClick={() => setShowSidebar(true)} title="Show Configuration Sidebar">
17+
&#9776;
18+
</div>
19+
);
20+
}
1021
return (
1122
<aside className="sidebar">
1223
<div className="config-section">
1324
<h2 className="section-title">Main Configuration</h2>
1425

26+
<div className="sidebar-collapse" onClick={() => setShowSidebar(false)} title="Hide Sidebar">
27+
&#9776;
28+
</div>
1529
<div className="form-group">
1630
<label className="form-label">
1731
Left Title

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /