react-cosmos-ui 6.0.0-alpha.9 → 6.0.0-beta.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.
- package/dist/components/Icon.d.ts +7 -3
- package/dist/components/Icon.js +2 -2
- package/dist/components/Illustration.d.ts +1 -0
- package/dist/components/KeyBox.d.ts +1 -0
- package/dist/components/SidePanel.d.ts +1 -0
- package/dist/components/SidePanel.js +1 -1
- package/dist/components/Space.d.ts +1 -0
- package/dist/components/ValueInputTree/ExpandCollapseValues.d.ts +1 -0
- package/dist/components/ValueInputTree/ValueInput/BooleanValueInput.d.ts +1 -0
- package/dist/components/ValueInputTree/ValueInput/NullValueInput.d.ts +1 -0
- package/dist/components/ValueInputTree/ValueInput/NumberValueInput.d.ts +1 -0
- package/dist/components/ValueInputTree/ValueInput/StringValueInput.d.ts +1 -0
- package/dist/components/ValueInputTree/ValueInput/UndefinedValueInput.d.ts +1 -0
- package/dist/components/ValueInputTree/ValueInput/UnserializableValueInput.d.ts +1 -0
- package/dist/components/ValueInputTree/ValueInput/ValueInput.d.ts +1 -0
- package/dist/components/ValueInputTree/ValueInput/ValueInput.js +1 -1
- package/dist/components/ValueInputTree/ValueInputDir.d.ts +1 -0
- package/dist/components/ValueInputTree/index.d.ts +3 -3
- package/dist/components/ValueInputTree/index.js +2 -2
- package/dist/components/ValueInputTree/shared.d.ts +1 -2
- package/dist/components/ValueInputTree/shared.js +0 -4
- package/dist/components/ValueInputTree/valueTreeExpansion.js +2 -1
- package/dist/components/icons/index.d.ts +4 -6
- package/dist/components/icons/index.js +1 -1
- package/dist/components/illustrations/ArtificialIntelligence.d.ts +1 -0
- package/dist/components/illustrations/Astronaut.d.ts +1 -0
- package/dist/components/illustrations/BlankCanvas.d.ts +1 -0
- package/dist/components/inputs/NumberInput.d.ts +1 -0
- package/dist/components/inputs/Select.d.ts +1 -0
- package/dist/cosmos.loadPlugins.js +14 -10
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/playground.bundle.js +602 -599
- package/dist/playground.bundle.js.map +1 -1
- package/dist/playground.js +13 -2
- package/dist/playgroundConfig.d.ts +2 -0
- package/dist/plugins/ClassStatePanel/ClassStatePanel/ComponentClassState.d.ts +1 -0
- package/dist/plugins/ClassStatePanel/ClassStatePanel/ComponentClassState.js +3 -3
- package/dist/plugins/ControlPanel/ControlPanel.d.ts +1 -0
- package/dist/plugins/ControlPanel/ControlPanel.js +1 -1
- package/dist/plugins/ControlSelect/SelectValueInput.d.ts +1 -0
- package/dist/plugins/ControlSelect/SelectValueInput.js +1 -1
- package/dist/plugins/Core/index.js +0 -5
- package/dist/plugins/Core/spec.d.ts +0 -2
- package/dist/plugins/FixtureBookmark/BookmarkFixtureButton.d.ts +1 -0
- package/dist/plugins/FixtureBookmark/FixtureBookmarks.d.ts +5 -5
- package/dist/plugins/FixtureBookmark/FixtureBookmarks.js +10 -7
- package/dist/plugins/FixtureBookmark/index.js +7 -17
- package/dist/plugins/FixtureSearch/FixtureSearchHeader.d.ts +3 -2
- package/dist/plugins/FixtureSearch/FixtureSearchHeader.js +3 -3
- package/dist/plugins/FixtureSearch/FixtureSearchOverlay.d.ts +1 -0
- package/dist/plugins/FixtureSearch/FixtureSearchOverlay.js +2 -2
- package/dist/plugins/FixtureSearch/FixtureSearchResult.d.ts +1 -0
- package/dist/plugins/FixtureSearch/FixtureSearchShortcuts.d.ts +1 -0
- package/dist/plugins/FixtureSearch/index.js +2 -1
- package/dist/plugins/FixtureTree/BlankState.d.ts +1 -0
- package/dist/plugins/FixtureTree/BlankState.js +23 -24
- package/dist/plugins/FixtureTree/FixtureTree/FixtureButton.d.ts +2 -2
- package/dist/plugins/FixtureTree/FixtureTree/FixtureButton.js +2 -2
- package/dist/plugins/FixtureTree/FixtureTree/FixtureDir.d.ts +1 -0
- package/dist/plugins/FixtureTree/FixtureTree/FixtureTree.js +6 -8
- package/dist/plugins/FixtureTree/FixtureTree/MultiFixtureButton.d.ts +3 -2
- package/dist/plugins/FixtureTree/FixtureTree/MultiFixtureButton.js +16 -11
- package/dist/plugins/FixtureTree/FixtureTreeContainer.d.ts +2 -2
- package/dist/plugins/FixtureTree/FixtureTreeContainer.js +1 -3
- package/dist/plugins/FixtureTree/FixtureTreeHeader.d.ts +1 -0
- package/dist/plugins/FixtureTree/index.js +1 -1
- package/dist/plugins/FixtureTree/revealFixture.js +2 -2
- package/dist/plugins/FixtureTree/shared.d.ts +1 -1
- package/dist/plugins/FullScreenButton/FullScreenButton.d.ts +1 -0
- package/dist/plugins/FullScreenButton/index.js +11 -5
- package/dist/plugins/Notifications/Notifications.d.ts +1 -0
- package/dist/plugins/PluginList/PluginList.d.ts +1 -0
- package/dist/plugins/PropsPanel/BlankState.d.ts +1 -0
- package/dist/plugins/PropsPanel/BlankState.js +14 -12
- package/dist/plugins/PropsPanel/PropsPanel/ComponentProps.d.ts +1 -0
- package/dist/plugins/PropsPanel/index.js +1 -4
- package/dist/plugins/RemoteRenderer/RemoteButton/index.d.ts +3 -2
- package/dist/plugins/RemoteRenderer/RemoteButton/index.js +5 -4
- package/dist/plugins/RemoteRenderer/index.js +2 -1
- package/dist/plugins/RendererCore/index.js +23 -5
- package/dist/plugins/RendererCore/onRouterFixtureReselect.d.ts +3 -0
- package/dist/plugins/RendererCore/onRouterFixtureReselect.js +7 -0
- package/dist/plugins/RendererCore/onRouterFixtureSelect.d.ts +3 -0
- package/dist/plugins/RendererCore/onRouterFixtureSelect.js +9 -0
- package/dist/plugins/RendererCore/onRouterFixtureUnselect.d.ts +2 -0
- package/dist/plugins/RendererCore/onRouterFixtureUnselect.js +9 -0
- package/dist/plugins/RendererCore/receiveResponse/fixtureStateChange.js +4 -4
- package/dist/plugins/RendererCore/receiveResponse/rendererReady.js +15 -21
- package/dist/plugins/RendererCore/reloadRenderer.d.ts +2 -0
- package/dist/plugins/RendererCore/reloadRenderer.js +5 -0
- package/dist/plugins/RendererCore/shared/postRequest.d.ts +1 -0
- package/dist/plugins/RendererCore/shared/postRequest.js +8 -0
- package/dist/plugins/RendererCore/spec.d.ts +6 -1
- package/dist/plugins/RendererPreview/RendererOverlay/RemoteRendererConnected.d.ts +2 -0
- package/dist/plugins/RendererPreview/RendererOverlay/RemoteRendererConnected.js +19 -0
- package/dist/plugins/RendererPreview/RendererOverlay/RemoteRendererOverlay.d.ts +6 -0
- package/dist/plugins/RendererPreview/RendererOverlay/RemoteRendererOverlay.js +6 -0
- package/dist/plugins/RendererPreview/RendererOverlay/RendererOverlay.d.ts +7 -0
- package/dist/plugins/RendererPreview/RendererOverlay/RendererOverlay.js +11 -0
- package/dist/plugins/RendererPreview/RendererOverlay/WaitingForRenderer.d.ts +2 -0
- package/dist/plugins/RendererPreview/RendererOverlay/WaitingForRenderer.js +65 -0
- package/dist/plugins/RendererPreview/RendererOverlay/rendererOverlayShared.d.ts +3 -0
- package/dist/plugins/RendererPreview/RendererOverlay/rendererOverlayShared.js +27 -0
- package/dist/plugins/RendererPreview/RendererPreview.d.ts +3 -0
- package/dist/plugins/RendererPreview/RendererPreview.js +10 -3
- package/dist/plugins/RendererPreview/handleRendererRequests.js +7 -6
- package/dist/plugins/RendererPreview/handleWindowMessages.js +10 -1
- package/dist/plugins/RendererPreview/index.js +7 -13
- package/dist/plugins/RendererPreview/shared.d.ts +0 -6
- package/dist/plugins/RendererPreview/spec.d.ts +0 -3
- package/dist/plugins/ResponsivePreview/ResponsivePreview/{Header.d.ts → ResponsiveHeader.d.ts} +1 -1
- package/dist/plugins/ResponsivePreview/ResponsivePreview/{Header.js → ResponsiveHeader.js} +2 -2
- package/dist/plugins/ResponsivePreview/ResponsivePreview/ResponsivePreview.d.ts +1 -2
- package/dist/plugins/ResponsivePreview/ResponsivePreview/ResponsivePreview.js +4 -4
- package/dist/plugins/ResponsivePreview/ToggleButton/index.d.ts +1 -0
- package/dist/plugins/ResponsivePreview/index.js +5 -6
- package/dist/plugins/ResponsivePreview/shared.js +13 -10
- package/dist/plugins/Root/GlobalHeader.d.ts +2 -4
- package/dist/plugins/Root/GlobalHeader.js +2 -23
- package/dist/plugins/{ContentOverlay/shared.d.ts → Root/HomeOverlay/ContentOverlay.d.ts} +1 -4
- package/dist/plugins/{ContentOverlay/shared.js → Root/HomeOverlay/ContentOverlay.js} +3 -3
- package/dist/plugins/Root/HomeOverlay/HomeOverlay.d.ts +8 -0
- package/dist/plugins/Root/HomeOverlay/HomeOverlay.js +6 -0
- package/dist/plugins/{ContentOverlay → Root/HomeOverlay}/KeyShortcut.d.ts +1 -0
- package/dist/plugins/{ContentOverlay → Root/HomeOverlay}/KeyShortcut.js +2 -2
- package/dist/plugins/{ContentOverlay → Root/HomeOverlay}/NoFixtureSelected.d.ts +1 -0
- package/dist/plugins/{ContentOverlay → Root/HomeOverlay}/NoFixtureSelected.js +5 -5
- package/dist/plugins/{ContentOverlay → Root/HomeOverlay}/WelcomeCosmos.d.ts +1 -0
- package/dist/plugins/Root/HomeOverlay/WelcomeCosmos.js +159 -0
- package/dist/plugins/Root/HomeOverlay/welcomeDismiss.d.ts +7 -0
- package/dist/plugins/{ContentOverlay → Root/HomeOverlay}/welcomeDismiss.js +6 -4
- package/dist/plugins/Root/RendererHeader.d.ts +1 -1
- package/dist/plugins/Root/RendererHeader.js +13 -5
- package/dist/plugins/Root/Root.d.ts +7 -5
- package/dist/plugins/Root/Root.js +9 -10
- package/dist/plugins/Root/ToggleNavButton.d.ts +1 -0
- package/dist/plugins/Root/index.js +6 -5
- package/dist/plugins/Root/panelOpen.js +0 -5
- package/dist/plugins/Router/index.js +23 -11
- package/dist/plugins/Router/spec.d.ts +5 -3
- package/dist/plugins/StandardControl/storage.d.ts +1 -1
- package/dist/plugins/pluginEntry.d.ts +0 -1
- package/dist/plugins/pluginEntry.js +0 -1
- package/dist/shared/fixtureTree.d.ts +1 -2
- package/dist/shared/fixtureTree.js +5 -10
- package/dist/shared/url.d.ts +6 -5
- package/dist/shared/url.js +6 -6
- package/dist/slots/ControlActionSlot.d.ts +1 -0
- package/dist/slots/ControlSlot.d.ts +1 -0
- package/dist/slots/FixtureActionSlot.d.ts +3 -2
- package/dist/slots/NavRowSlot.d.ts +1 -0
- package/dist/slots/RendererActionSlot.d.ts +1 -0
- package/dist/slots/SidePanelRowSlot.d.ts +1 -0
- package/dist/testHelpers/pluginMocks.d.ts +8 -7
- package/dist/testHelpers/pluginMocks.js +5 -3
- package/package.json +4 -4
- package/dist/plugins/ContentOverlay/ContentOverlay.d.ts +0 -13
- package/dist/plugins/ContentOverlay/ContentOverlay.js +0 -34
- package/dist/plugins/ContentOverlay/RendererNotResponding.d.ts +0 -1
- package/dist/plugins/ContentOverlay/RendererNotResponding.js +0 -109
- package/dist/plugins/ContentOverlay/WelcomeCosmos.js +0 -158
- package/dist/plugins/ContentOverlay/cosmos.decorator.d.ts +0 -5
- package/dist/plugins/ContentOverlay/cosmos.decorator.js +0 -13
- package/dist/plugins/ContentOverlay/index.d.ts +0 -2
- package/dist/plugins/ContentOverlay/index.js +0 -19
- package/dist/plugins/ContentOverlay/spec.d.ts +0 -3
- package/dist/plugins/ContentOverlay/spec.js +0 -1
- package/dist/plugins/ContentOverlay/welcomeDismiss.d.ts +0 -7
- package/dist/plugins/RendererCore/isValidFixtureSelected.d.ts +0 -2
- package/dist/plugins/RendererCore/isValidFixtureSelected.js +0 -16
- package/dist/plugins/RendererCore/onRouterFixtureChange.d.ts +0 -3
- package/dist/plugins/RendererCore/onRouterFixtureChange.js +0 -18
- package/dist/plugins/RendererPreview/checkRendererStatus.d.ts +0 -2
- package/dist/plugins/RendererPreview/checkRendererStatus.js +0 -31
|
@@ -1,10 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { FixtureId, FixtureState, FlatFixtureTreeItem, StateUpdater } from 'react-cosmos-core';
|
|
2
3
|
type Props = {
|
|
3
|
-
storageCacheReady: boolean;
|
|
4
4
|
fixtureItems: FlatFixtureTreeItem[];
|
|
5
5
|
selectedFixtureId: FixtureId | null;
|
|
6
6
|
rendererConnected: boolean;
|
|
7
|
-
validFixtureSelected: boolean;
|
|
8
7
|
fixtureState: FixtureState;
|
|
9
8
|
navOpen: boolean;
|
|
10
9
|
panelOpen: boolean;
|
|
@@ -18,11 +17,14 @@ type Props = {
|
|
|
18
17
|
rendererActionOrder: string[];
|
|
19
18
|
onToggleNav: () => unknown;
|
|
20
19
|
onTogglePanel: () => unknown;
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
onReloadRenderer: () => unknown;
|
|
21
|
+
onCloseFixture: () => unknown;
|
|
23
22
|
onFixtureStateChange: (stateUpdater: StateUpdater<FixtureState>) => void;
|
|
24
23
|
setNavWidth: (width: number) => unknown;
|
|
25
24
|
setPanelWidth: (width: number) => unknown;
|
|
25
|
+
welcomeDismissed: boolean;
|
|
26
|
+
onDismissWelcome: () => unknown;
|
|
27
|
+
onShowWelcome: () => unknown;
|
|
26
28
|
};
|
|
27
|
-
export declare function Root({
|
|
29
|
+
export declare function Root({ fixtureItems, selectedFixtureId, rendererConnected, fixtureState, navOpen, panelOpen, navWidth, panelWidth, sidePanelRowOrder, globalActionOrder, globalOrder, navRowOrder, fixtureActionOrder, rendererActionOrder, onToggleNav, onTogglePanel, onReloadRenderer, onCloseFixture, onFixtureStateChange, setNavWidth, setPanelWidth, welcomeDismissed, onDismissWelcome, onShowWelcome, }: Props): JSX.Element;
|
|
28
30
|
export {};
|
|
@@ -5,9 +5,10 @@ import { useDrag } from '../../hooks/useDrag.js';
|
|
|
5
5
|
import { NavRowSlot } from '../../slots/NavRowSlot.js';
|
|
6
6
|
import { grey32, grey8, white10 } from '../../style/colors.js';
|
|
7
7
|
import { GlobalHeader } from './GlobalHeader.js';
|
|
8
|
+
import { HomeOverlay } from './HomeOverlay/HomeOverlay.js';
|
|
8
9
|
import { RendererHeader } from './RendererHeader.js';
|
|
9
10
|
import { SidePanel } from './SidePanel.js';
|
|
10
|
-
export function Root({
|
|
11
|
+
export function Root({ fixtureItems, selectedFixtureId, rendererConnected, fixtureState, navOpen, panelOpen, navWidth, panelWidth, sidePanelRowOrder, globalActionOrder, globalOrder, navRowOrder, fixtureActionOrder, rendererActionOrder, onToggleNav, onTogglePanel, onReloadRenderer, onCloseFixture, onFixtureStateChange, setNavWidth, setPanelWidth, welcomeDismissed, onDismissWelcome, onShowWelcome, }) {
|
|
11
12
|
const navDrag = useDrag({
|
|
12
13
|
value: navWidth,
|
|
13
14
|
onChange: setNavWidth,
|
|
@@ -17,29 +18,27 @@ export function Root({ storageCacheReady, fixtureItems, selectedFixtureId, rende
|
|
|
17
18
|
reverse: true,
|
|
18
19
|
onChange: setPanelWidth,
|
|
19
20
|
});
|
|
20
|
-
|
|
21
|
-
return React.createElement(Container, null);
|
|
22
|
-
}
|
|
23
|
-
const showNav = rendererConnected && (navOpen || !validFixtureSelected);
|
|
21
|
+
const showNav = navOpen || !selectedFixtureId;
|
|
24
22
|
const dragging = navDrag.dragging || panelDrag.dragging;
|
|
25
23
|
// z-indexes are set here on purpose to show the layer hierarchy at a glance
|
|
26
24
|
return (React.createElement(Container, { dragging: dragging },
|
|
27
25
|
showNav && (React.createElement(Draggable, { style: { width: navWidth, zIndex: 2 } },
|
|
28
|
-
React.createElement(Nav, null,
|
|
26
|
+
React.createElement(Nav, null,
|
|
27
|
+
React.createElement(NavRowSlot, { slotProps: { onCloseNav: onToggleNav }, plugOrder: navRowOrder })),
|
|
29
28
|
navDrag.dragging && React.createElement(DragOverlay, null),
|
|
30
29
|
React.createElement(NavDragHandle, { ref: navDrag.dragElRef }))),
|
|
31
30
|
React.createElement(MainContainer, { key: "main", style: { zIndex: 1 } },
|
|
32
|
-
!
|
|
31
|
+
!selectedFixtureId && (React.createElement(GlobalHeader, { rendererConnected: rendererConnected, globalActionOrder: globalActionOrder })),
|
|
33
32
|
React.createElement(RendererContainer, { key: "rendererContainer" },
|
|
34
|
-
selectedFixtureId &&
|
|
33
|
+
selectedFixtureId && (React.createElement(RendererHeader, { fixtureItems: fixtureItems, fixtureId: selectedFixtureId, navOpen: navOpen, panelOpen: panelOpen, fixtureActionOrder: fixtureActionOrder, rendererActionOrder: rendererActionOrder, onOpenNav: onToggleNav, onTogglePanel: onTogglePanel, onReloadRenderer: onReloadRenderer, onClose: onCloseFixture })),
|
|
35
34
|
React.createElement(RendererBody, { key: "rendererBody" },
|
|
36
35
|
React.createElement(Slot, { name: "rendererPreview" }),
|
|
37
36
|
dragging && React.createElement(DragOverlay, null),
|
|
38
|
-
|
|
37
|
+
selectedFixtureId && panelOpen && (React.createElement(ControlPanelContainer, { style: { width: panelWidth, zIndex: 3 } },
|
|
39
38
|
React.createElement(SidePanel, { fixtureId: selectedFixtureId, fixtureState: fixtureState, sidePanelRowOrder: sidePanelRowOrder, onFixtureStateChange: onFixtureStateChange }),
|
|
40
39
|
panelDrag.dragging && React.createElement(DragOverlay, null),
|
|
41
40
|
React.createElement(PanelDragHandle, { ref: panelDrag.dragElRef })))),
|
|
42
|
-
React.createElement(
|
|
41
|
+
!selectedFixtureId && (React.createElement(HomeOverlay, { welcomeDismissed: welcomeDismissed, onDismissWelcome: onDismissWelcome, onShowWelcome: onShowWelcome })))),
|
|
43
42
|
React.createElement("div", { style: { zIndex: 4 } },
|
|
44
43
|
React.createElement(ArraySlot, { name: "global", plugOrder: globalOrder }))));
|
|
45
44
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { createFixtureTree, flattenFixtureTree } from 'react-cosmos-core';
|
|
3
3
|
import { createPlugin } from 'react-plugin';
|
|
4
|
+
import { useWelcomeDismiss } from './HomeOverlay/welcomeDismiss.js';
|
|
5
|
+
import { Root } from './Root.js';
|
|
4
6
|
import { isNavOpen, openNav } from './navOpen.js';
|
|
5
7
|
import { getNavWidthApi } from './navWidth.js';
|
|
6
8
|
import { isPanelOpen, openPanel } from './panelOpen.js';
|
|
7
9
|
import { getPanelWidthApi } from './panelWidth.js';
|
|
8
|
-
import { Root } from './Root.js';
|
|
9
10
|
const { onLoad, plug, register } = createPlugin({
|
|
10
11
|
name: 'root',
|
|
11
12
|
defaultConfig: {
|
|
@@ -41,14 +42,14 @@ plug('root', ({ pluginContext }) => {
|
|
|
41
42
|
const fixtureItems = useFixtureItems(pluginContext);
|
|
42
43
|
const onToggleNav = useOpenNav(pluginContext);
|
|
43
44
|
const onTogglePanel = useOpenPanel(pluginContext);
|
|
45
|
+
const welcomeDismiss = useWelcomeDismiss(pluginContext);
|
|
44
46
|
const { storageCacheReady } = getState();
|
|
45
|
-
if (!storageCacheReady)
|
|
46
|
-
return
|
|
47
|
-
}
|
|
47
|
+
if (!storageCacheReady)
|
|
48
|
+
return null;
|
|
48
49
|
const { navWidth, setNavWidth } = getNavWidthApi(pluginContext);
|
|
49
50
|
const { panelWidth, setPanelWidth } = getPanelWidthApi(pluginContext);
|
|
50
51
|
const { sidePanelRowOrder, globalActionOrder, globalOrder, navRowOrder, fixtureActionOrder, rendererActionOrder, } = getConfig();
|
|
51
|
-
return (React.createElement(Root, {
|
|
52
|
+
return (React.createElement(Root, { fixtureItems: fixtureItems, selectedFixtureId: router.getSelectedFixtureId(), rendererConnected: rendererCore.isRendererConnected(), fixtureState: rendererCore.getFixtureState(), navOpen: isNavOpen(pluginContext), panelOpen: isPanelOpen(pluginContext), navWidth: navWidth, panelWidth: panelWidth, sidePanelRowOrder: sidePanelRowOrder, globalActionOrder: globalActionOrder, globalOrder: globalOrder, navRowOrder: navRowOrder, fixtureActionOrder: fixtureActionOrder, rendererActionOrder: rendererActionOrder, onToggleNav: onToggleNav, onTogglePanel: onTogglePanel, onReloadRenderer: rendererCore.reloadRenderer, onCloseFixture: router.unselectFixture, onFixtureStateChange: rendererCore.setFixtureState, setNavWidth: setNavWidth, setPanelWidth: setPanelWidth, welcomeDismissed: welcomeDismiss.isWelcomeDismissed(), onDismissWelcome: welcomeDismiss.onDismissWelcome, onShowWelcome: welcomeDismiss.onShowWelcome }));
|
|
52
53
|
});
|
|
53
54
|
export { register };
|
|
54
55
|
if (process.env.NODE_ENV !== 'test')
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
export const PANEL_OPEN_STORAGE_KEY = 'sidePanelOpen';
|
|
2
2
|
const PANEL_OPEN_DEFAULT = true;
|
|
3
3
|
export function isPanelOpen(context) {
|
|
4
|
-
const { getMethodsOf } = context;
|
|
5
|
-
const rendererCore = getMethodsOf('rendererCore');
|
|
6
|
-
if (!rendererCore.isValidFixtureSelected()) {
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
9
4
|
const storage = context.getMethodsOf('storage');
|
|
10
5
|
const open = storage.getItem(PANEL_OPEN_STORAGE_KEY);
|
|
11
6
|
return typeof open === 'boolean' ? open : PANEL_OPEN_DEFAULT;
|
|
@@ -20,7 +20,7 @@ onLoad(context => {
|
|
|
20
20
|
const fixtureChanged = !isEqual(urlParams.fixtureId, fixtureId);
|
|
21
21
|
setState({ urlParams }, () => {
|
|
22
22
|
if (fixtureChanged) {
|
|
23
|
-
emitFixtureChangeEvent(context);
|
|
23
|
+
emitFixtureChangeEvent(context, true);
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
26
|
});
|
|
@@ -41,16 +41,28 @@ function setUrlParams(context, nextUrlParams) {
|
|
|
41
41
|
const { urlParams } = context.getState();
|
|
42
42
|
const fixtureChanged = !isEqual(nextUrlParams.fixtureId, urlParams.fixtureId);
|
|
43
43
|
const urlParamsEqual = isEqual(nextUrlParams, urlParams);
|
|
44
|
-
|
|
45
|
-
// Setting identical
|
|
46
|
-
if
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
if (urlParamsEqual) {
|
|
45
|
+
// Setting identical URL params can be considered a "reset" request, but
|
|
46
|
+
// this will only re-render the fixture if the renderer implements an
|
|
47
|
+
// auto-incrementing render key in its state
|
|
48
|
+
emitFixtureChangeEvent(context, false);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
context.setState({ urlParams: nextUrlParams }, () => {
|
|
50
52
|
pushUrlParams(context.getState().urlParams);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
emitFixtureChangeEvent(context, fixtureChanged);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
53
56
|
}
|
|
54
|
-
function emitFixtureChangeEvent(context) {
|
|
55
|
-
|
|
57
|
+
function emitFixtureChangeEvent(context, fixtureChanged) {
|
|
58
|
+
const fixtureId = getSelectedFixtureId(context);
|
|
59
|
+
if (!fixtureId) {
|
|
60
|
+
context.emit('fixtureUnselect');
|
|
61
|
+
}
|
|
62
|
+
else if (fixtureChanged) {
|
|
63
|
+
context.emit('fixtureSelect', fixtureId);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
context.emit('fixtureReselect', fixtureId);
|
|
67
|
+
}
|
|
56
68
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { FixtureId,
|
|
1
|
+
import { FixtureId, PlaygroundParams } from 'react-cosmos-core';
|
|
2
2
|
export type RouterSpec = {
|
|
3
3
|
name: 'router';
|
|
4
4
|
state: {
|
|
5
|
-
urlParams:
|
|
5
|
+
urlParams: PlaygroundParams;
|
|
6
6
|
};
|
|
7
7
|
methods: {
|
|
8
8
|
getSelectedFixtureId(): null | FixtureId;
|
|
@@ -10,6 +10,8 @@ export type RouterSpec = {
|
|
|
10
10
|
unselectFixture(): void;
|
|
11
11
|
};
|
|
12
12
|
events: {
|
|
13
|
-
|
|
13
|
+
fixtureSelect(fixtureId: FixtureId): void;
|
|
14
|
+
fixtureReselect(fixtureId: FixtureId): void;
|
|
15
|
+
fixtureUnselect(): void;
|
|
14
16
|
};
|
|
15
17
|
};
|
|
@@ -2,6 +2,6 @@ import { PluginContext } from 'react-plugin';
|
|
|
2
2
|
import { TreeExpansion } from '../../shared/treeExpansion.js';
|
|
3
3
|
import { StandardControlSpec } from './spec.js';
|
|
4
4
|
export declare function useTreeExpansionStorage(pluginContext: PluginContext<StandardControlSpec>): {
|
|
5
|
-
expansion:
|
|
5
|
+
expansion: {};
|
|
6
6
|
setExpansion: (newTreeExpansion: TreeExpansion) => void;
|
|
7
7
|
};
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import { FixtureId, FixtureTreeNode } from 'react-cosmos-core';
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function nodeContainsFixtureId({ data, children }: FixtureTreeNode, fixtureId: FixtureId): boolean;
|
|
2
|
+
export declare function fixtureTreeNodeContainsFixtureId({ data, children }: FixtureTreeNode, fixtureId: FixtureId): boolean;
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
export function nodeContainsFixtureId({ data, children }, fixtureId) {
|
|
6
|
-
if (data.type === 'fixture')
|
|
7
|
-
return isEqual(data.fixtureId, fixtureId);
|
|
8
|
-
if (data.type === 'multiFixture')
|
|
9
|
-
return recordContainsFixtureId(data.fixtureIds, fixtureId);
|
|
1
|
+
export function fixtureTreeNodeContainsFixtureId({ data, children }, fixtureId) {
|
|
2
|
+
if (data.type === 'fixture' || data.type === 'multiFixture') {
|
|
3
|
+
return data.path === fixtureId.path;
|
|
4
|
+
}
|
|
10
5
|
return (children !== undefined &&
|
|
11
|
-
Object.keys(children).some(childName =>
|
|
6
|
+
Object.keys(children).some(childName => fixtureTreeNodeContainsFixtureId(children[childName], fixtureId)));
|
|
12
7
|
}
|
package/dist/shared/url.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function getUrlParams():
|
|
3
|
-
export declare function pushUrlParams(urlParams:
|
|
4
|
-
export declare function subscribeToLocationChanges(userHandler: (urlParams:
|
|
5
|
-
export declare function createRelativePlaygroundUrl(urlParams:
|
|
1
|
+
import { PlaygroundParams } from 'react-cosmos-core';
|
|
2
|
+
export declare function getUrlParams(): PlaygroundParams;
|
|
3
|
+
export declare function pushUrlParams(urlParams: PlaygroundParams): void;
|
|
4
|
+
export declare function subscribeToLocationChanges(userHandler: (urlParams: PlaygroundParams) => unknown): () => void;
|
|
5
|
+
export declare function createRelativePlaygroundUrl(urlParams: PlaygroundParams): string;
|
|
6
|
+
export declare function createRelativeUrlWithQuery(query: string): string;
|
package/dist/shared/url.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { buildPlaygroundQueryString, parsePlaygroundQueryString, } from 'react-cosmos-core';
|
|
2
2
|
export function getUrlParams() {
|
|
3
|
-
return
|
|
3
|
+
return parsePlaygroundQueryString(location.search);
|
|
4
4
|
}
|
|
5
5
|
export function pushUrlParams(urlParams) {
|
|
6
|
-
const query =
|
|
6
|
+
const query = buildPlaygroundQueryString(urlParams);
|
|
7
7
|
// Refresh page completely when pushState isn't supported
|
|
8
8
|
if (!history.pushState) {
|
|
9
9
|
location.search = query;
|
|
@@ -22,12 +22,12 @@ export function subscribeToLocationChanges(userHandler) {
|
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
export function createRelativePlaygroundUrl(urlParams) {
|
|
25
|
-
const query =
|
|
25
|
+
const query = buildPlaygroundQueryString(urlParams);
|
|
26
26
|
return createRelativeUrlWithQuery(query);
|
|
27
27
|
}
|
|
28
|
-
function createRelativeUrlWithQuery(query) {
|
|
28
|
+
export function createRelativeUrlWithQuery(query) {
|
|
29
29
|
// NOTE: "./" is used to return to the home URL. Passing an empty string
|
|
30
30
|
// doesn't do anything. And passing "/" doesn't work if Cosmos is not hosted
|
|
31
31
|
// at root (sub)domain level.
|
|
32
|
-
return query
|
|
32
|
+
return query || './';
|
|
33
33
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FlatFixtureTreeItem } from 'react-cosmos-core';
|
|
2
3
|
export type FixtureActionSlotProps = {
|
|
3
|
-
|
|
4
|
+
fixtureItem: FlatFixtureTreeItem;
|
|
4
5
|
};
|
|
5
6
|
type Props = {
|
|
6
7
|
slotProps: FixtureActionSlotProps;
|
|
@@ -30,15 +30,15 @@ export declare function getCoreMethods(): {
|
|
|
30
30
|
fixtureFileSuffix: string;
|
|
31
31
|
};
|
|
32
32
|
isDevServerOn(): boolean;
|
|
33
|
-
getWebRendererUrl(): string | null;
|
|
34
33
|
};
|
|
35
34
|
export declare function getRendererCoreMethods(): {
|
|
35
|
+
getRendererUrl(): string | null;
|
|
36
36
|
getConnectedRendererIds(): string[];
|
|
37
37
|
getPrimaryRendererId(): string | null;
|
|
38
38
|
getFixtures(): import("react-cosmos-core").FixtureList;
|
|
39
39
|
getFixtureState(): import("react-cosmos-core").FixtureState;
|
|
40
40
|
isRendererConnected(): boolean;
|
|
41
|
-
|
|
41
|
+
reloadRenderer(): void;
|
|
42
42
|
setFixtureState(stateUpdater: import("react-cosmos-core").StateUpdater<import("react-cosmos-core").FixtureState>): void;
|
|
43
43
|
selectPrimaryRenderer(primaryRendererId: string): void;
|
|
44
44
|
receiveResponse(msg: import("react-cosmos-core").MessageType): void;
|
|
@@ -49,7 +49,6 @@ export declare function getNotificationsMethods(): {
|
|
|
49
49
|
pushTimedNotification(notification: import("../plugins/Notifications/spec.js").NotificationItem): void;
|
|
50
50
|
};
|
|
51
51
|
export declare function getRendererPreviewMethods(): {
|
|
52
|
-
getUrlStatus(): import("../plugins/RendererPreview/spec.js").UrlStatus;
|
|
53
52
|
getRuntimeStatus(): import("../plugins/RendererPreview/spec.js").RuntimeStatus;
|
|
54
53
|
};
|
|
55
54
|
export declare function mockStorage(methods?: MethodsOf<StorageSpec>): {
|
|
@@ -71,25 +70,25 @@ export declare function mockCore(methods?: MethodsOf<CoreSpec>): {
|
|
|
71
70
|
fixtureFileSuffix: string;
|
|
72
71
|
});
|
|
73
72
|
isDevServerOn: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<CoreSpec>) => boolean);
|
|
74
|
-
getWebRendererUrl: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<CoreSpec>) => string | null);
|
|
75
73
|
};
|
|
76
74
|
export declare function mockMessageHandler(methods?: MethodsOf<MessageHandlerSpec>): {
|
|
77
75
|
postRendererRequest: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<MessageHandlerSpec>, msg: import("react-cosmos-core").MessageType) => unknown);
|
|
78
76
|
};
|
|
79
77
|
export declare function mockRendererCore(methods?: MethodsOf<RendererCoreSpec>): {
|
|
78
|
+
getRendererUrl: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<RendererCoreSpec>) => string | null);
|
|
80
79
|
getConnectedRendererIds: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<RendererCoreSpec>) => string[]);
|
|
81
80
|
getPrimaryRendererId: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<RendererCoreSpec>) => string | null);
|
|
82
81
|
getFixtures: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<RendererCoreSpec>) => import("react-cosmos-core").FixtureList);
|
|
83
82
|
getFixtureState: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<RendererCoreSpec>) => import("react-cosmos-core").FixtureState);
|
|
84
83
|
isRendererConnected: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<RendererCoreSpec>) => boolean);
|
|
85
|
-
|
|
84
|
+
reloadRenderer: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<RendererCoreSpec>) => void);
|
|
86
85
|
setFixtureState: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<RendererCoreSpec>, stateUpdater: import("react-cosmos-core").StateUpdater<import("react-cosmos-core").FixtureState>) => void);
|
|
87
86
|
selectPrimaryRenderer: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<RendererCoreSpec>, primaryRendererId: string) => void);
|
|
88
87
|
receiveResponse: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<RendererCoreSpec>, msg: import("react-cosmos-core").MessageType) => void);
|
|
89
88
|
};
|
|
90
89
|
export declare function mockRendererPreview(methods?: MethodsOf<RendererPreviewSpec>): {
|
|
91
|
-
getUrlStatus: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<RendererPreviewSpec>) => import("../plugins/RendererPreview/spec.js").UrlStatus);
|
|
92
90
|
getRuntimeStatus: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<RendererPreviewSpec>) => import("../plugins/RendererPreview/spec.js").RuntimeStatus);
|
|
91
|
+
getUrlStatus: jest.Mock<any, any, any>;
|
|
93
92
|
};
|
|
94
93
|
export declare function mockNotifications(methods?: MethodsOf<NotificationsSpec>): {
|
|
95
94
|
pushStickyNotification: jest.Mock<any, any, any> | ((context: import("react-plugin").PluginContext<NotificationsSpec>, notification: import("../plugins/Notifications/spec.js").NotificationItem) => void);
|
|
@@ -103,7 +102,9 @@ export declare function mockFixtureTree(methods?: MethodsOf<FixtureTreeSpec>): {
|
|
|
103
102
|
}, fixtureId: import("react-cosmos-core").FixtureId) => unknown);
|
|
104
103
|
};
|
|
105
104
|
export declare function onRouter(events?: EventsOf<RouterSpec>): {
|
|
106
|
-
|
|
105
|
+
fixtureSelect: jest.Mock<any, any, any> | import("ui-plugin/dist/types/PluginContextHandlers.js").PluginEventHandler<any, [fixtureId: import("react-cosmos-core").FixtureId]>;
|
|
106
|
+
fixtureReselect: jest.Mock<any, any, any> | import("ui-plugin/dist/types/PluginContextHandlers.js").PluginEventHandler<any, [fixtureId: import("react-cosmos-core").FixtureId]>;
|
|
107
|
+
fixtureUnselect: jest.Mock<any, any, any> | import("ui-plugin/dist/types/PluginContextHandlers.js").PluginEventHandler<any, []>;
|
|
107
108
|
};
|
|
108
109
|
export declare function onMessageHandler(events?: EventsOf<MessageHandlerSpec>): {
|
|
109
110
|
serverMessage: jest.Mock<any, any, any> | import("ui-plugin/dist/types/PluginContextHandlers.js").PluginEventHandler<any, [msg: import("react-cosmos-core").MessageType]>;
|
|
@@ -54,7 +54,6 @@ export function mockCore(methods = {}) {
|
|
|
54
54
|
getProjectId: jest.fn(),
|
|
55
55
|
getFixtureFileVars: jest.fn(),
|
|
56
56
|
isDevServerOn: jest.fn(),
|
|
57
|
-
getWebRendererUrl: jest.fn(),
|
|
58
57
|
...methods,
|
|
59
58
|
};
|
|
60
59
|
mockMethodsOf('core', allMethods);
|
|
@@ -70,12 +69,13 @@ export function mockMessageHandler(methods = {}) {
|
|
|
70
69
|
}
|
|
71
70
|
export function mockRendererCore(methods = {}) {
|
|
72
71
|
const allMethods = {
|
|
72
|
+
getRendererUrl: jest.fn(),
|
|
73
73
|
getConnectedRendererIds: jest.fn(),
|
|
74
74
|
getPrimaryRendererId: jest.fn(),
|
|
75
75
|
getFixtures: jest.fn(),
|
|
76
76
|
getFixtureState: jest.fn(),
|
|
77
77
|
isRendererConnected: jest.fn(),
|
|
78
|
-
|
|
78
|
+
reloadRenderer: jest.fn(),
|
|
79
79
|
setFixtureState: jest.fn(),
|
|
80
80
|
selectPrimaryRenderer: jest.fn(),
|
|
81
81
|
receiveResponse: jest.fn(),
|
|
@@ -113,7 +113,9 @@ export function mockFixtureTree(methods = {}) {
|
|
|
113
113
|
}
|
|
114
114
|
export function onRouter(events = {}) {
|
|
115
115
|
const allEvents = {
|
|
116
|
-
|
|
116
|
+
fixtureSelect: jest.fn(),
|
|
117
|
+
fixtureReselect: jest.fn(),
|
|
118
|
+
fixtureUnselect: jest.fn(),
|
|
117
119
|
...events,
|
|
118
120
|
};
|
|
119
121
|
on('router', allEvents);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-cosmos-ui",
|
|
3
|
-
"version": "6.0.0-
|
|
3
|
+
"version": "6.0.0-beta.2",
|
|
4
4
|
"description": "React Cosmos UI",
|
|
5
5
|
"repository": "https://github.com/react-cosmos/react-cosmos/tree/main/packages/react-cosmos-ui",
|
|
6
6
|
"license": "MIT",
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"lodash-es": "^4.17.21",
|
|
18
|
-
"react-cosmos-core": "
|
|
18
|
+
"react-cosmos-core": "6.0.0-beta.2"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"fuzzaldrin-plus": "^0.6.0",
|
|
22
22
|
"localforage": "^1.10.0",
|
|
23
23
|
"react-plugin": "^3.0.0-alpha.4",
|
|
24
|
-
"styled-components": "^5.3.
|
|
24
|
+
"styled-components": "^5.3.10"
|
|
25
25
|
},
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "f3e3893b0439132e083228f312c62e4379f39762"
|
|
27
27
|
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { RuntimeStatus, UrlStatus } from '../RendererPreview/shared.js';
|
|
2
|
-
type Props = {
|
|
3
|
-
fixtureSelected: boolean;
|
|
4
|
-
validFixtureSelected: boolean;
|
|
5
|
-
rendererConnected: boolean;
|
|
6
|
-
rendererPreviewUrlStatus: UrlStatus;
|
|
7
|
-
rendererPreviewRuntimeStatus: RuntimeStatus;
|
|
8
|
-
welcomeDismissed: boolean;
|
|
9
|
-
onDismissWelcome: () => unknown;
|
|
10
|
-
onShowWelcome: () => unknown;
|
|
11
|
-
};
|
|
12
|
-
export declare function ContentOverlay({ fixtureSelected, validFixtureSelected, rendererConnected, rendererPreviewUrlStatus, rendererPreviewRuntimeStatus, welcomeDismissed, onDismissWelcome, onShowWelcome, }: Props): JSX.Element | null;
|
|
13
|
-
export {};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { NoFixtureSelected } from './NoFixtureSelected.js';
|
|
3
|
-
import { RendererNotResponding } from './RendererNotResponding.js';
|
|
4
|
-
import { ContentContainer, OverlayContainer } from './shared.js';
|
|
5
|
-
import { WelcomeCosmos } from './WelcomeCosmos.js';
|
|
6
|
-
export function ContentOverlay({ fixtureSelected, validFixtureSelected, rendererConnected, rendererPreviewUrlStatus, rendererPreviewRuntimeStatus, welcomeDismissed, onDismissWelcome, onShowWelcome, }) {
|
|
7
|
-
if (rendererPreviewUrlStatus === 'error') {
|
|
8
|
-
return (React.createElement(OverlayContainer, { "data-testid": "rendererNotResponding" },
|
|
9
|
-
React.createElement(RendererNotResponding, null)));
|
|
10
|
-
}
|
|
11
|
-
if (validFixtureSelected || rendererPreviewRuntimeStatus === 'error') {
|
|
12
|
-
// Usually the content overlay is only hidden when a valid fixture is
|
|
13
|
-
// selected. However, when the renderer is in error state, we also hide the
|
|
14
|
-
// content overlay to avoid showing a blank screen and to uncover the error
|
|
15
|
-
// message.
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
if (!rendererConnected) {
|
|
19
|
-
// Delay "waiting for renderer" state to avoid rapidly changing visual
|
|
20
|
-
// states when renderer is already compiled and will respond immediately
|
|
21
|
-
return (React.createElement(OverlayContainer, { "data-testid": "waiting" },
|
|
22
|
-
React.createElement(ContentContainer, null)));
|
|
23
|
-
}
|
|
24
|
-
if (fixtureSelected) {
|
|
25
|
-
return (React.createElement(OverlayContainer, { "data-testid": "notFound" },
|
|
26
|
-
React.createElement(ContentContainer, null)));
|
|
27
|
-
}
|
|
28
|
-
if (welcomeDismissed) {
|
|
29
|
-
return (React.createElement(OverlayContainer, { "data-testid": "blank" },
|
|
30
|
-
React.createElement(NoFixtureSelected, { onShowWelcome: onShowWelcome })));
|
|
31
|
-
}
|
|
32
|
-
return (React.createElement(OverlayContainer, { "data-testid": "welcome" },
|
|
33
|
-
React.createElement(WelcomeCosmos, { onDismissWelcome: onDismissWelcome })));
|
|
34
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function RendererNotResponding(): JSX.Element;
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Slot } from 'react-plugin';
|
|
3
|
-
import styled from 'styled-components';
|
|
4
|
-
import { ArtificialIntelligenceIllustration } from '../../components/illustrations/ArtificialIntelligence.js';
|
|
5
|
-
import { screenGrey3, screenGrey5, screenPrimary2, screenPrimary3, } from '../../style/colors.js';
|
|
6
|
-
import { ContentContainer, IllustrationContainer, NoWrap, TextContainer, } from './shared.js';
|
|
7
|
-
export function RendererNotResponding() {
|
|
8
|
-
return (React.createElement(ContentContainer, null,
|
|
9
|
-
React.createElement(TextContainer, null,
|
|
10
|
-
React.createElement(Header, null,
|
|
11
|
-
"Renderer ",
|
|
12
|
-
React.createElement(NoWrap, null, "not responding")),
|
|
13
|
-
React.createElement(Paragraph, null, `It's usually one of the following...`),
|
|
14
|
-
React.createElement(List, null,
|
|
15
|
-
React.createElement("li", null,
|
|
16
|
-
React.createElement(No, null, "1"),
|
|
17
|
-
React.createElement("span", null,
|
|
18
|
-
React.createElement("strong", null, "Please check your terminal for errors."),
|
|
19
|
-
React.createElement("br", null),
|
|
20
|
-
"Your build might be broken.")),
|
|
21
|
-
React.createElement("li", null,
|
|
22
|
-
React.createElement(No, null, "2"),
|
|
23
|
-
React.createElement("span", null,
|
|
24
|
-
React.createElement(Slot, { name: "rendererError" },
|
|
25
|
-
"If you use a bundler plugin,",
|
|
26
|
-
' ',
|
|
27
|
-
React.createElement("strong", null,
|
|
28
|
-
"make sure",
|
|
29
|
-
React.createElement("br", null),
|
|
30
|
-
"your build is generating an index.html page."))))),
|
|
31
|
-
React.createElement(Paragraph, null,
|
|
32
|
-
React.createElement(ActionLink, { href: "https://react-cosmos.slack.com/join/shared_invite/zt-g9rsalqq-clCoV7DWttVvzO5FAAmVAw", rel: "noopener noreferrer", target: "_blank" }, "ask for help"))),
|
|
33
|
-
React.createElement(IllustrationContainer, null,
|
|
34
|
-
React.createElement(ArtificialIntelligenceIllustration, { title: "robot" }))));
|
|
35
|
-
}
|
|
36
|
-
const Header = styled.h1 `
|
|
37
|
-
position: relative;
|
|
38
|
-
margin: 0 0 64px 0;
|
|
39
|
-
color: ${screenPrimary2};
|
|
40
|
-
font-size: 30px;
|
|
41
|
-
font-weight: 700;
|
|
42
|
-
line-height: 1.2em;
|
|
43
|
-
text-transform: uppercase;
|
|
44
|
-
letter-spacing: 0.015em;
|
|
45
|
-
|
|
46
|
-
::after {
|
|
47
|
-
content: '';
|
|
48
|
-
position: absolute;
|
|
49
|
-
bottom: -12px;
|
|
50
|
-
left: 0;
|
|
51
|
-
width: 64px;
|
|
52
|
-
height: 3px;
|
|
53
|
-
background: ${screenPrimary2};
|
|
54
|
-
}
|
|
55
|
-
`;
|
|
56
|
-
const Paragraph = styled.p `
|
|
57
|
-
margin: 16px 0;
|
|
58
|
-
|
|
59
|
-
:last-child {
|
|
60
|
-
margin-bottom: 0;
|
|
61
|
-
}
|
|
62
|
-
`;
|
|
63
|
-
const List = styled.ul `
|
|
64
|
-
margin: 0 0 48px 0;
|
|
65
|
-
padding: 0;
|
|
66
|
-
list-style: none;
|
|
67
|
-
|
|
68
|
-
li {
|
|
69
|
-
display: flex;
|
|
70
|
-
flex-direction: row;
|
|
71
|
-
align-items: flex-start;
|
|
72
|
-
margin-bottom: 12px;
|
|
73
|
-
}
|
|
74
|
-
`;
|
|
75
|
-
const No = styled.span `
|
|
76
|
-
flex-shrink: 0;
|
|
77
|
-
display: flex;
|
|
78
|
-
align-items: center;
|
|
79
|
-
justify-content: flex-end;
|
|
80
|
-
box-sizing: border-box;
|
|
81
|
-
width: 32px;
|
|
82
|
-
height: 32px;
|
|
83
|
-
margin: 6px 16px 0 0;
|
|
84
|
-
padding: 0 6px 0 0;
|
|
85
|
-
border-radius: 100%;
|
|
86
|
-
font-size: 18px;
|
|
87
|
-
font-weight: 600;
|
|
88
|
-
background: ${screenGrey5};
|
|
89
|
-
color: ${screenGrey3};
|
|
90
|
-
|
|
91
|
-
::after {
|
|
92
|
-
content: '.';
|
|
93
|
-
}
|
|
94
|
-
`;
|
|
95
|
-
const actionLinkHeight = 36;
|
|
96
|
-
const ActionLink = styled.a `
|
|
97
|
-
display: inline-block;
|
|
98
|
-
height: ${actionLinkHeight}px;
|
|
99
|
-
padding: 0 16px;
|
|
100
|
-
background: ${screenPrimary3};
|
|
101
|
-
color: #fff;
|
|
102
|
-
border-radius: 5px;
|
|
103
|
-
font-size: 12px;
|
|
104
|
-
font-weight: 700;
|
|
105
|
-
line-height: ${actionLinkHeight}px;
|
|
106
|
-
text-transform: uppercase;
|
|
107
|
-
letter-spacing: 0.1em;
|
|
108
|
-
text-decoration: none;
|
|
109
|
-
`;
|