Skip to content

Commit 790ad3b

Browse files
Chugunov RomanChugunov Roman
authored andcommitted
Added the back button
1 parent 9a82530 commit 790ad3b

10 files changed

Lines changed: 44 additions & 15 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"scripts": {
1111
"dev": "electron-webpack dev",
1212
"start": "electron dist/main/main.js",
13-
"build": "electron-webpack app && rm -rf dist/main/dest dist/renderer/dest dist/**/*.map dist/**/*.bak dist/renderer/index.html dist/.renderer-index-template.html",
13+
"build": "electron-webpack app && rm -rf dist/main/dest dist/renderer/dest dist/**/*.map dist/**/*.bak dist/renderer/index.html dist/.renderer-index-template.html dist/package-lock.json",
1414
"builder": "electron-builder --config=config/builder.json -l",
1515
"pack": "npm run build && npm run builder"
1616
},

src/main/utils/constants.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ const MAINTAB = 'maintab';
77

88
const SETTITLE = 'setTitle';
99

10+
const TOHOME = 'toHome';
11+
1012
export {
1113
NEWTAB,
1214
TABADDED,
@@ -15,5 +17,7 @@ export {
1517
MAINTAB,
1618
CLOSEALLTAB,
1719

18-
SETTITLE
20+
SETTITLE,
21+
22+
TOHOME
1923
}

src/main/utils/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ export {
1010
TABADDED,
1111
FOCUSTAB,
1212
MAINTAB,
13-
SETTITLE
13+
SETTITLE,
14+
TOHOME
1415
} from './constants';
1516

1617
export {

src/main/webContent/Tabs.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class Tabs implements ITabs {
2828
});
2929
tab.setBounds(options);
3030
tab.webContents.loadURL(url);
31-
// isDev && tab.webContents.toggleDevTools();
31+
isDev && tab.webContents.toggleDevTools();
3232

3333
Tabs.tabs.push(tab);
3434

src/main/webContent/WindowManager.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ import {
1414
FOCUSTAB,
1515
CLOSEALLTAB,
1616
MAINTAB,
17-
SETTITLE
17+
SETTITLE,
18+
TOHOME
1819
} from "../utils";
1920

2021
interface IWindowManager {
@@ -153,6 +154,15 @@ class WindowManager implements IWindowManager {
153154
E.ipcMain.on(SETTITLE, (event: Event, title: string) => {
154155
this.mainWindow.webContents.send(SETTITLE, { id: this.mainWindow.getBrowserView()!.id, title })
155156
});
157+
E.ipcMain.on(TOHOME, (event: Event, title: string) => {
158+
const currentView = this.mainWindow.getBrowserView();
159+
const currentUrl = currentView && currentView.webContents.getURL() || '';
160+
const go: boolean = url.parse(currentUrl).pathname !== '/files/recent';
161+
162+
console.log(`${url.parse(currentUrl).pathname} !== '/files/recent': ${url.parse(currentUrl).pathname !== '/files/recent'}`);
163+
164+
currentView && go && currentView!.webContents.loadURL(`${this.home}`);
165+
});
156166
}
157167

158168

src/renderer/components/Tabs/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class Tabs extends Component<TabsProps, {}> {
2525
this.props = props;
2626
}
2727

28-
private close = (e: MouseEvent & Event, id: number) => {
28+
private close = (e: React.MouseEvent<HTMLDivElement> & Event, id: number) => {
2929
e.stopPropagation();
3030
e.stopImmediatePropagation();
3131

@@ -51,7 +51,7 @@ class Tabs extends Component<TabsProps, {}> {
5151
ipcRenderer.send('newtab');
5252
}
5353

54-
private clickTab = (event: MouseEvent & Event, tab: Tab) => {
54+
private clickTab = (event: React.MouseEvent<HTMLDivElement> & Event, tab: Tab) => {
5555
switch(event.button) {
5656
// Handle left click, set focuse on the target tab
5757
case 0: {
@@ -68,7 +68,7 @@ class Tabs extends Component<TabsProps, {}> {
6868
}
6969
}
7070

71-
private focus = (e: MouseEvent & Event, id: number) => {
71+
private focus = (e: React.MouseEvent<HTMLDivElement> & Event, id: number) => {
7272
e.stopPropagation();
7373
e.stopImmediatePropagation();
7474

src/renderer/components/Tabs/tabs.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import { h } from 'preact';
55
interface Props {
66
tabs: ITabsStore;
77

8-
close(e: MouseEvent & Event, id: number): void
9-
clickTab(e: MouseEvent & Event, tab: Tab): void
8+
close(e: React.MouseEvent<HTMLDivElement>, id: number): void
9+
clickTab(e: React.MouseEvent<HTMLDivElement>, tab: Tab): void
1010
newTab(): void
1111
}
1212

src/renderer/components/TopPanel/index.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,16 @@ class TopPanel extends Component<TopPanelProps, {}> {
2929
this.props.tabs!.setFocus(1);
3030
}
3131

32+
private onHomeClick = (event: React.MouseEvent<HTMLDivElement> & Event) => {
33+
E.ipcRenderer.send('toHome');
34+
}
35+
3236
render() {
3337
return (
3438
<Panel
3539
current={this.props.tabs!.current}
3640
onMainTab={this.onMainTab}
41+
onHomeClick={this.onHomeClick}
3742
/>
3843
);
3944
}

src/renderer/components/TopPanel/style.scss

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
background-color: #2c2c2c;
66
}
77

8-
.panelButton {
8+
.panelButtons {
99
display: inline-flex;
1010
flex-direction: row;
1111
align-content: center;
1212
}
1313

14-
.main {
14+
.button {
1515
display: flex;
1616
align-items: center;
1717
padding: 6px 8px 6px 6px;

src/renderer/components/TopPanel/toppanel.tsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,27 @@ import Tabs from "./../Tabs";
55
interface TopPanelProps {
66
current: number;
77

8-
onMainTab(e: React.MouseEvent<HTMLDivElement> & Event): void;
8+
onMainTab(e: React.MouseEvent<HTMLDivElement>): void;
9+
onHomeClick(e: React.MouseEvent<HTMLDivElement>): void;
910
}
1011

1112
function TopPanel(props: TopPanelProps) {
1213
return (
1314
<div className="panel">
14-
<div className="panelButton gridArea-a">
15-
<div className={`main ${props.current === 1 ? 'active' : ''}`} onClick={props.onMainTab}>
15+
<div className="panelButtons gridArea-a">
16+
<div className={`button main ${props.current === 1 ? 'active' : ''}`} onClick={props.onMainTab}>
1617
<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg">
1718
<path d="M7 1H1v6h6V1zM6 2H2v4h4V2zm9-1H9v6h6V1zm-1 1h-4v4h4V2zm1 7H9v6h6V9zm-1 1h-4v4h4v-4zM7 9H1v6h6V9zm-1 1H2v4h4v-4z" fill-rule="evenodd" fill="#fff"></path>
1819
</svg>
1920
</div>
21+
<div className="button home" onClick={props.onHomeClick}>
22+
<svg x="0px" y="0px" viewBox="0 0 489 489" width="16px" height="16px">
23+
<g>
24+
<path d="M429.4,255.033c-35.4-43.1-102.1-94.4-219.7-98.8v-79.8c0-4.7-2.7-9.1-7-11.1s-9.4-1.4-13,1.6L4.5,219.633 c-2.8,2.3-4.5,5.8-4.5,9.4c0,3.7,1.6,7.1,4.4,9.4l185.2,153.3c3.7,3,8.7,3.7,13,1.6c4.3-2,7-6.3,7-11.1v-79.5 c76.8,0.3,194.2,6,256.5,115.9c2.2,3.9,6.3,6.2,10.7,6.2c1,0,2.1-0.1,3.1-0.4c5.4-1.4,9.1-6.3,9.1-11.8 C489.1,371.533,473.4,308.633,429.4,255.033z M197.4,278.233L197.4,278.233c-3.3,0-6.4,1.3-8.7,3.6s-3.6,5.4-3.6,8.7v65.7 l-153.5-127.1l153.6-126.7v65.7c0,6.7,5.4,12.2,12.1,12.3c176,1.7,241.6,109,260.7,184.4 C382.2,278.333,268.7,278.233,197.4,278.233z"
25+
fill="#FFFFFF" />
26+
</g>
27+
</svg>
28+
</div>
2029
</div>
2130
<Tabs/>
2231
</div>

0 commit comments

Comments
 (0)