Skip to content

Commit cce31b0

Browse files
committed
feat: add webcontent no select placeholder
1 parent 13fc093 commit cce31b0

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

src/renderer/assets/web-page.svg

Lines changed: 1 addition & 0 deletions
Loading

src/renderer/components/WebContent.tsx

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import React, { useEffect, useRef } from 'react';
2+
import styled from 'styled-components';
23
import { useTreeStore, WebsiteTreeNode } from '../store/tree';
4+
import webpageSvg from '../assets/web-page.svg';
5+
import { AddWebsiteBtn } from './AddWebsiteBtn';
36

47
const WebviewRender: React.FC<{ node: WebsiteTreeNode }> = React.memo(
58
(props) => {
@@ -64,11 +67,47 @@ const WebviewRender: React.FC<{ node: WebsiteTreeNode }> = React.memo(
6467
);
6568
WebviewRender.displayName = 'WebviewRender';
6669

70+
const WebPlaceholderRoot = styled.div`
71+
height: 100%;
72+
width: 100%;
73+
display: flex;
74+
justify-content: center;
75+
align-items: center;
76+
font-size: 24px;
77+
flex-direction: column;
78+
79+
img {
80+
width: 120px;
81+
}
82+
`;
83+
84+
const WebPlaceholder: React.FC = React.memo(() => {
85+
useEffect(() => {
86+
window.electron.ipcRenderer.sendMessage('hide-all-webview');
87+
}, []);
88+
89+
return (
90+
<WebPlaceholderRoot>
91+
<div>
92+
<img src={webpageSvg} />
93+
</div>
94+
<div>Please Select Any Page on Left</div>
95+
<div>
96+
<small>OR</small>
97+
</div>
98+
<div>
99+
<AddWebsiteBtn />
100+
</div>
101+
</WebPlaceholderRoot>
102+
);
103+
});
104+
WebPlaceholder.displayName = 'WebPlaceholder';
105+
67106
export const WebContent: React.FC = React.memo(() => {
68107
const selectedNode = useTreeStore((state) => state.selectedNode);
69108

70109
if (!selectedNode) {
71-
return <div>Please Select Node</div>;
110+
return <WebPlaceholder />;
72111
}
73112

74113
return <WebviewRender node={selectedNode} />;

0 commit comments

Comments
 (0)