@d-fischer/documen.ts 0.16.1 → 0.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,7 +25,7 @@ const useStyles = (0, styles_1.makeStyles)(theme => ({
25
25
  position: 'relative'
26
26
  },
27
27
  warning: {
28
- color: theme.colors.warning,
28
+ color: theme.colors.warning
29
29
  },
30
30
  activator: {
31
31
  borderRight: '0 none',
@@ -48,27 +48,31 @@ const useStyles = (0, styles_1.makeStyles)(theme => ({
48
48
  }
49
49
  }
50
50
  }), { name: 'VersionMenu' });
51
- const VersionMenu = __DOCTS_COMPONENT_MODE === 'static' ? (() => react_1.default.createElement("div", { "data-dynamic-component": "VersionMenu" })) : (() => {
52
- var _a;
53
- const classes = useStyles();
54
- const config = (0, react_1.useContext)(config_1.ConfigContext);
55
- const currentVersion = (0, react_1.useMemo)(() => config.version, [config]);
56
- const [manifest, setManifest] = (0, react_1.useState)(config.__devManifest);
57
- const [manifestLoading, setManifestLoading] = (0, react_1.useState)(false);
58
- (0, FunctionTools_1.useAsyncEffect)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
59
- if (!manifest && config.versionBranchPrefix) {
60
- setManifestLoading(true);
61
- setManifest(yield fetch(`${config_1.rootUrl}/manifest.json`).then((r) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return r.json(); })));
62
- setManifestLoading(false);
63
- }
64
- }), [manifest, manifestLoading, config]);
65
- const [menuOpen, setMenuOpen] = (0, react_1.useState)(false);
66
- const toggleMenuOpen = (0, react_1.useCallback)(() => setMenuOpen(b => !b), []);
67
- return (((_a = manifest === null || manifest === void 0 ? void 0 : manifest.versions) === null || _a === void 0 ? void 0 : _a.filter(v => v !== config.defaultVersion).length) ? (react_1.default.createElement("div", { className: classes.wrapper },
68
- react_1.default.createElement("div", { className: (0, classnames_1.default)(classes.entry, classes.activator), onClick: toggleMenuOpen }, currentVersion),
69
- menuOpen && (react_1.default.createElement("div", { className: classes.menu },
70
- react_1.default.createElement("a", { className: (0, classnames_1.default)(classes.entry, classes.menuEntry), key: config.defaultVersion, href: `${manifest.rootUrl}/` }, config.defaultVersion),
71
- manifest.versions.filter(v => v !== config.defaultVersion).map((version) => (react_1.default.createElement("a", { className: (0, classnames_1.default)(classes.entry, classes.menuEntry), key: version, href: `${manifest.rootUrl}/${config.versionFolder}/${version}/` }, version))))))) : null);
72
- });
51
+ const VersionMenu = __DOCTS_COMPONENT_MODE === 'static'
52
+ ? () => react_1.default.createElement("div", { "data-dynamic-component": "VersionMenu" })
53
+ : () => {
54
+ var _a;
55
+ const classes = useStyles();
56
+ const config = (0, react_1.useContext)(config_1.ConfigContext);
57
+ const currentVersion = (0, react_1.useMemo)(() => config.version, [config]);
58
+ const [manifest, setManifest] = (0, react_1.useState)(config.__devManifest);
59
+ const [manifestLoading, setManifestLoading] = (0, react_1.useState)(false);
60
+ (0, FunctionTools_1.useAsyncEffect)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
61
+ if (!manifest && config.versionBranchPrefix) {
62
+ setManifestLoading(true);
63
+ setManifest(yield fetch(`${config_1.rootUrl}/manifest.json`).then((r) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return (yield r.json()); })));
64
+ setManifestLoading(false);
65
+ }
66
+ }), [manifest, manifestLoading, config]);
67
+ const [menuOpen, setMenuOpen] = (0, react_1.useState)(false);
68
+ const toggleMenuOpen = (0, react_1.useCallback)(() => setMenuOpen(b => !b), []);
69
+ return ((_a = manifest === null || manifest === void 0 ? void 0 : manifest.versions) === null || _a === void 0 ? void 0 : _a.filter(v => v !== manifest.defaultVersion).length) ? (react_1.default.createElement("div", { className: classes.wrapper },
70
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(classes.entry, classes.activator), onClick: toggleMenuOpen }, currentVersion),
71
+ menuOpen && (react_1.default.createElement("div", { className: classes.menu },
72
+ react_1.default.createElement("a", { className: (0, classnames_1.default)(classes.entry, classes.menuEntry), key: manifest.defaultVersion, href: `${manifest.rootUrl}/` }, manifest.defaultVersion),
73
+ manifest.versions
74
+ .filter(v => v !== manifest.defaultVersion)
75
+ .map((version) => (react_1.default.createElement("a", { className: (0, classnames_1.default)(classes.entry, classes.menuEntry), key: version, href: `${manifest.rootUrl}/${config.versionFolder}/${version}/` }, version))))))) : null;
76
+ };
73
77
  exports.default = VersionMenu;
74
78
  //# sourceMappingURL=VersionMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VersionMenu.js","sourceRoot":"","sources":["../../../src/common/components/VersionMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VersionMenu.js","sourceRoot":"","sources":["../../../src/common/components/VersionMenu.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@d-fischer/documen.ts",
3
- "version": "0.16.1",
3
+ "version": "0.16.2",
4
4
  "homepage": "https://github.com/d-fischer/documen.ts",
5
5
  "main": "lib/generator/index.js",
6
6
  "engines": {
@@ -2,91 +2,106 @@ import { makeStyles } from '@material-ui/styles';
2
2
  import classNames from 'classnames';
3
3
  import React, { useCallback, useContext, useMemo, useState } from 'react';
4
4
  import { ConfigContext, rootUrl } from '../config';
5
+ import { type Manifest } from '../config/Config';
5
6
  import { useAsyncEffect } from '../tools/FunctionTools';
6
7
 
7
- const useStyles = makeStyles(theme => ({
8
- entry: {
9
- borderRight: `1px solid ${theme.colors.border}`,
10
- padding: theme.spacing.unit,
11
- cursor: 'pointer',
12
- userSelect: 'none',
13
- textDecoration: 'none',
14
- color: theme.colors.text,
15
- transition: 'background-color .3s ease-in-out, border-color .3s ease-in-out',
16
- borderBottom: '3px solid transparent',
17
- lineHeight: '1.3em',
8
+ const useStyles = makeStyles(
9
+ theme => ({
10
+ entry: {
11
+ borderRight: `1px solid ${theme.colors.border}`,
12
+ padding: theme.spacing.unit,
13
+ cursor: 'pointer',
14
+ userSelect: 'none',
15
+ textDecoration: 'none',
16
+ color: theme.colors.text,
17
+ transition: 'background-color .3s ease-in-out, border-color .3s ease-in-out',
18
+ borderBottom: '3px solid transparent',
19
+ lineHeight: '1.3em',
18
20
 
19
- '&:hover': {
20
- backgroundColor: theme.colors.background.hover
21
- }
22
- },
23
- wrapper: {
24
- position: 'relative'
25
- },
26
- warning: {
27
- color: theme.colors.warning,
28
- },
29
- activator: {
30
- borderRight: '0 none',
31
- borderLeft: `1px solid ${theme.colors.border}`
32
- },
33
- menu: {
34
- position: 'absolute',
35
- right: 0,
36
- top: '100%',
37
- zIndex: 4,
38
- backgroundColor: theme.colors.background.default,
39
- border: `1px solid ${theme.colors.border}`
40
- },
41
- menuEntry: {
42
- display: 'block',
43
- borderRight: '0 none',
44
- borderTop: `1px solid ${theme.colors.border}`,
21
+ '&:hover': {
22
+ backgroundColor: theme.colors.background.hover
23
+ }
24
+ },
25
+ wrapper: {
26
+ position: 'relative'
27
+ },
28
+ warning: {
29
+ color: theme.colors.warning
30
+ },
31
+ activator: {
32
+ borderRight: '0 none',
33
+ borderLeft: `1px solid ${theme.colors.border}`
34
+ },
35
+ menu: {
36
+ position: 'absolute',
37
+ right: 0,
38
+ top: '100%',
39
+ zIndex: 4,
40
+ backgroundColor: theme.colors.background.default,
41
+ border: `1px solid ${theme.colors.border}`
42
+ },
43
+ menuEntry: {
44
+ display: 'block',
45
+ borderRight: '0 none',
46
+ borderTop: `1px solid ${theme.colors.border}`,
45
47
 
46
- '&:first-child': {
47
- borderTop: '0 none'
48
+ '&:first-child': {
49
+ borderTop: '0 none'
50
+ }
48
51
  }
49
- }
50
- }), { name: 'VersionMenu' });
52
+ }),
53
+ { name: 'VersionMenu' }
54
+ );
51
55
 
52
- const VersionMenu: React.FC = __DOCTS_COMPONENT_MODE === 'static' ? (
53
- () => <div data-dynamic-component="VersionMenu"/>
54
- ) : (
55
- () => {
56
- const classes = useStyles();
57
- const config = useContext(ConfigContext);
58
- const currentVersion = useMemo(() => config.version, [config]);
59
- const [manifest, setManifest] = useState(config.__devManifest);
60
- const [manifestLoading, setManifestLoading] = useState(false);
61
- useAsyncEffect(async () => {
62
- if (!manifest && config.versionBranchPrefix) {
63
- setManifestLoading(true);
64
- setManifest(await fetch(`${rootUrl}/manifest.json`).then(async r => r.json()));
65
- setManifestLoading(false);
66
- }
67
- }, [manifest, manifestLoading, config]);
68
- const [menuOpen, setMenuOpen] = useState(false);
69
- const toggleMenuOpen = useCallback(() => setMenuOpen(b => !b), []);
70
- return (
71
- manifest?.versions?.filter(v => v !== config.defaultVersion).length ? (
72
- <div className={classes.wrapper}>
73
- <div className={classNames(classes.entry, classes.activator)} onClick={toggleMenuOpen}>
74
- {currentVersion}
75
- </div>
76
- {menuOpen && (
77
- <div className={classes.menu}>
78
- <a className={classNames(classes.entry, classes.menuEntry)} key={config.defaultVersion}
79
- href={`${manifest.rootUrl}/`}>{config.defaultVersion}</a>
80
- {manifest.versions.filter(v => v !== config.defaultVersion).map((version: string) => (
81
- <a className={classNames(classes.entry, classes.menuEntry)} key={version}
82
- href={`${manifest.rootUrl}/${config.versionFolder!}/${version}/`}>{version}</a>
83
- ))}
56
+ const VersionMenu: React.FC =
57
+ __DOCTS_COMPONENT_MODE === 'static'
58
+ ? () => <div data-dynamic-component="VersionMenu" />
59
+ : () => {
60
+ const classes = useStyles();
61
+ const config = useContext(ConfigContext);
62
+ const currentVersion = useMemo(() => config.version, [config]);
63
+ const [manifest, setManifest] = useState(config.__devManifest);
64
+ const [manifestLoading, setManifestLoading] = useState(false);
65
+ useAsyncEffect(async () => {
66
+ if (!manifest && config.versionBranchPrefix) {
67
+ setManifestLoading(true);
68
+ setManifest(
69
+ await fetch(`${rootUrl}/manifest.json`).then(async r => (await r.json()) as Manifest)
70
+ );
71
+ setManifestLoading(false);
72
+ }
73
+ }, [manifest, manifestLoading, config]);
74
+ const [menuOpen, setMenuOpen] = useState(false);
75
+ const toggleMenuOpen = useCallback(() => setMenuOpen(b => !b), []);
76
+ return manifest?.versions?.filter(v => v !== manifest.defaultVersion).length ? (
77
+ <div className={classes.wrapper}>
78
+ <div className={classNames(classes.entry, classes.activator)} onClick={toggleMenuOpen}>
79
+ {currentVersion}
84
80
  </div>
85
- )}
86
- </div>
87
- ) : null
88
- );
89
- }
90
- );
81
+ {menuOpen && (
82
+ <div className={classes.menu}>
83
+ <a
84
+ className={classNames(classes.entry, classes.menuEntry)}
85
+ key={manifest.defaultVersion}
86
+ href={`${manifest.rootUrl}/`}
87
+ >
88
+ {manifest.defaultVersion}
89
+ </a>
90
+ {manifest.versions
91
+ .filter(v => v !== manifest.defaultVersion)
92
+ .map((version: string) => (
93
+ <a
94
+ className={classNames(classes.entry, classes.menuEntry)}
95
+ key={version}
96
+ href={`${manifest.rootUrl}/${config.versionFolder!}/${version}/`}
97
+ >
98
+ {version}
99
+ </a>
100
+ ))}
101
+ </div>
102
+ )}
103
+ </div>
104
+ ) : null;
105
+ };
91
106
 
92
107
  export default VersionMenu;