Skip to content

Commit 4aa998e

Browse files
committed
App bar + explorer design
1 parent f4a53af commit 4aa998e

File tree

21 files changed

+7667
-4092
lines changed

21 files changed

+7667
-4092
lines changed

common/config/rush/pnpm-lock.yaml

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

packages/webdoc-default-template/package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@
4141
"dependencies": {
4242
"@babel/core": "^7.9.0",
4343
"@babel/preset-react": "^7.10.1",
44-
"@material-ui/icons": "^4.9.1",
45-
"@material-ui/lab": "^4.0.0-alpha.56",
4644
"@webdoc/model": "^1.1.4",
4745
"@webdoc/template-library": "^1.1.4",
4846
"code-prettify": "^0.1.0",
@@ -60,6 +58,8 @@
6058
"@babel/preset-react": "^7.10.1",
6159
"@babel/register": "^7.9.0",
6260
"@material-ui/core": "^4.10.2",
61+
"@material-ui/icons": "^4.9.1",
62+
"@material-ui/lab": "^4.0.0-alpha.56",
6363
"@webdoc/babel-preset": "^1.0.0",
6464
"@webdoc/eslint-config": "^1.0.0",
6565
"babel-loader": "^8.1.0",
@@ -80,6 +80,8 @@
8080
"sass": "^1.26.10",
8181
"sass-loader": "^9.0.3",
8282
"webpack": "^4.43.0",
83-
"webpack-stream": "^5.2.1"
83+
"webpack-stream": "^5.2.1",
84+
"redux": "~4.0.5",
85+
"react-redux": "~7.2.2"
8486
}
8587
}

packages/webdoc-default-template/publish.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,6 @@ function outReference(
210210

211211
page = linker.processInternalURI(page, {outputRelative: true});
212212

213-
console.log(page);
214-
215213
let doc;
216214

217215
try {

packages/webdoc-default-template/src/app/components/Explorer/ExplorerCategoryItem.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import ExplorerItem from "./ExplorerItem";
22
import TreeItem from "@material-ui/lab/TreeItem";
33
import cuid from "cuid";
4-
import {useExplorerStyles} from "./useExplorerStyles";
5-
4+
import {useExplorerCategoryStyles} from "./useExplorerStyles";
65

76
export default function ExplorerCategoryItem(props) {
8-
const classes = useExplorerStyles();
7+
const classes = useExplorerCategoryStyles();
98

109
if (!props.data.nodeId) {
1110
props.data.nodeId = cuid();
@@ -16,6 +15,7 @@ export default function ExplorerCategoryItem(props) {
1615
className="explorer-tree__group"
1716
classes={{
1817
label: classes.label,
18+
labelContainer: classes.labelContainer,
1919
iconContainer: classes.iconContainer,
2020
selected: classes.selected,
2121
}}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import IconButton from "@material-ui/core/IconButton";
2+
import MenuIcon from "@material-ui/icons/Menu";
3+
import {makeStyles} from "@material-ui/core/styles";
4+
5+
const useToggleButtonStyles = makeStyles({
6+
root: {
7+
margin: "0 0 0 12px",
8+
},
9+
});
10+
11+
export default function ExplorerHeader({
12+
isOpen,
13+
toggleOpen,
14+
}) {
15+
const {root} = useToggleButtonStyles();
16+
17+
return (
18+
<section className={"explorer__header" + (
19+
isOpen ? " explorer__header-opened" : " explorer__header-closed"
20+
)}>
21+
<IconButton
22+
aria-label="Toggle Explorer"
23+
classes={{
24+
root,
25+
}}
26+
onClick={toggleOpen}
27+
>
28+
<MenuIcon />
29+
</IconButton>
30+
<span className="explorer__header__title">{"{ "}<i>webdoc</i>{" }"}</span>
31+
</section>
32+
);
33+
}

packages/webdoc-default-template/src/app/components/Explorer/ExplorerItem.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@ import Link from "@material-ui/core/Link";
33
//import React from "react";
44
import TreeItem from "@material-ui/lab/TreeItem";
55
import cuid from "cuid";
6-
import {useExplorerStyles} from "./useExplorerStyles";
6+
import {useExplorerCategoryStyles, useExplorerStyles} from "./useExplorerStyles";
77

88

99
export default function ExplorerItem(props) {
1010
if (!props.data.nodeId) {
1111
props.data.nodeId = cuid();
1212
}
1313

14-
const classes = useExplorerStyles();
14+
const classesItem = useExplorerStyles();
15+
const classesCategory = useExplorerCategoryStyles();
1516
const targetChildren = [];
1617

1718
let i = 0;
@@ -23,6 +24,8 @@ export default function ExplorerItem(props) {
2324
i++;
2425
}
2526

27+
const classes = i > 0 ? classesCategory : classesItem;
28+
2629
return (
2730
<TreeItem
2831
className="explorer-tree__target"

packages/webdoc-default-template/src/app/components/Explorer/index.js

Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,26 @@
11
import ArrowDropDownIcon from "@material-ui/icons/ArrowDropDown";
22
import ArrowRightIcon from "@material-ui/icons/ArrowRight";
3+
import ExplorerHeader from "./ExplorerHeader";
34
import ExplorerTarget from "./ExplorerItem";
45
import ExplorerTargetGroup from "./ExplorerCategoryItem";
56
import React from "react";
67
import TreeView from "@material-ui/lab/TreeView";
8+
import {connect} from "react-redux";
9+
import store from "../../store";
10+
import {useExplorerStyles} from "./useExplorerStyles";
711

812
let fetched = false;
913

10-
export default function Explorer(props) {
14+
export default connect(({explorerOpen}) => ({
15+
isOpen: explorerOpen,
16+
setOpen: (isOpen) => store.dispatch({type: "setExplorerOpen", value: isOpen}),
17+
}))(function Explorer({
18+
isOpen,
19+
setOpen,
20+
}) {
1121
const [data, setData] = React.useState(null);
22+
const {root} = useExplorerStyles();
23+
const toggleOpen = React.useCallback(() => setOpen(!isOpen), [isOpen]);
1224
const children = [];
1325

1426
if (!fetched) {
@@ -43,13 +55,28 @@ export default function Explorer(props) {
4355
}
4456

4557
return (
46-
<TreeView
47-
className="explorer-tree"
48-
defaultCollapseIcon={<ArrowDropDownIcon />}
49-
defaultExpandIcon={<ArrowRightIcon />}
50-
disableSelection={true}
51-
>
52-
{children}
53-
</TreeView>
58+
<div className="explorer" style={{
59+
display: !isOpen ? "none" : undefined,
60+
minWidth: !isOpen ? "0px" : undefined,
61+
width: !isOpen ? "0px" : undefined,
62+
overflowX: !isOpen ? "hidden" : undefined,
63+
}}>
64+
<ExplorerHeader isOpen={isOpen} toggleOpen={toggleOpen} />
65+
<TreeView
66+
className={"explorer__tree " + (
67+
isOpen ? "explorer__tree-open" : "explorer__tree-open"
68+
)}
69+
classes={{
70+
root,
71+
}}
72+
defaultCollapseIcon={<ArrowDropDownIcon />}
73+
defaultExpandIcon={<ArrowRightIcon />}
74+
disableSelection={true}
75+
>
76+
{children}
77+
</TreeView>
78+
</div>
5479
);
55-
}
80+
});
81+
82+
export {ExplorerHeader};

packages/webdoc-default-template/src/app/components/Explorer/useExplorerStyles.js

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,36 @@
11
import {makeStyles} from "@material-ui/core/styles";
22

3-
export const useExplorerStyles = makeStyles({});
4-
/*
5-
makeStyles({
3+
const itemStyle = {
64
label: {
7-
color: "black",
8-
fontSize: 13,
5+
alignItems: "center",
6+
display: "flex",
7+
color: "#333333",
8+
fontSize: 12,
9+
height: "24px",
10+
lineHeight: "14px",
911
},
1012
labelLinks: {
11-
color: "black",
13+
color: "#333333",
1214
},
1315
iconContainer: {
14-
color: "#A5A5A5",
16+
color: "#333333",
1517
fontSize: 8,
1618
marginRight: 0,
1719
},
1820
selected: {
1921
backgroundColor: "none",
2022
},
23+
root: {
24+
padding: "0 8px",
25+
},
26+
};
27+
28+
export const useExplorerStyles = makeStyles(itemStyle);
29+
30+
export const useExplorerCategoryStyles = makeStyles({
31+
...itemStyle,
32+
label: {
33+
...itemStyle.label,
34+
fontWeight: "bold",
35+
},
2136
});
22-
*/

0 commit comments

Comments
 (0)