-
Notifications
You must be signed in to change notification settings - Fork 33
Expand file tree
/
Copy pathStyleGuideInit.tsx
More file actions
47 lines (41 loc) · 1.16 KB
/
StyleGuideInit.tsx
File metadata and controls
47 lines (41 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import {
type CustomizableWorkspace,
getWorkspace,
type PayloadActionCreator,
type RootState,
setWorkspace as setWorkspaceAction,
} from '@deephaven/redux';
import {
type ExportedLayout,
LocalWorkspaceStorage,
} from '@deephaven/app-utils';
import StyleGuide from './StyleGuide';
/**
* Initialize data needed for the styleguide
*/
function StyleGuideInit(props: {
workspace: CustomizableWorkspace;
setWorkspace: PayloadActionCreator<CustomizableWorkspace>;
}): JSX.Element | null {
const { workspace, setWorkspace } = props;
useEffect(() => {
LocalWorkspaceStorage.makeDefaultWorkspace({
getLayouts: async () => [] as string[],
getLayout: async () => ({}) as ExportedLayout,
}).then(setWorkspace);
}, [setWorkspace]);
return workspace != null ? <StyleGuide /> : null;
}
const mapStateToProps = (
state: RootState
): {
workspace: CustomizableWorkspace;
} => ({
workspace: getWorkspace(state),
});
const ConnectedStyleGuideInit = connect(mapStateToProps, {
setWorkspace: setWorkspaceAction,
})(StyleGuideInit);
export default ConnectedStyleGuideInit;