diff --git a/dist/icons/fabric-icons-2-63c99abf.woff b/dist/icons/fabric-icons-2-63c99abf.woff new file mode 100644 index 0000000..88295a5 Binary files /dev/null and b/dist/icons/fabric-icons-2-63c99abf.woff differ diff --git a/dist/styles.css b/dist/styles.css index 48437d4..bba77a1 100644 --- a/dist/styles.css +++ b/dist/styles.css @@ -98,9 +98,15 @@ i.ms-Nav-chevron { vertical-align: top; } .btn-group .btn.system { - position: sticky; + position: relative; z-index: 10; } +nav.hide-btns .btn-group .btn { + display: none; +} +nav.hide-btns .btn-group .btn.system { + display: inline-block; +} .btn-group .btn:hover { background-color: #0001; } diff --git a/package.json b/package.json index e32dfd9..5d6d14d 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "@types/redux-thunk": "^2.1.0", "@types/reselect": "^2.2.0", "@yang991178/electron-proxy-agent": "^1.2.1", + "@yang991178/rss-parser": "^3.8.1", "electron": "^8.3.0", "electron-react-devtools": "^0.5.3", "electron-window-state": "^5.0.3", @@ -35,7 +36,6 @@ "redux-devtools": "^3.5.0", "redux-thunk": "^2.3.0", "reselect": "^4.0.0", - "rss-parser": "^3.8.0", "ts-loader": "^7.0.4", "typescript": "^3.9.2", "webpack": "^4.43.0", diff --git a/src/components/menu.tsx b/src/components/menu.tsx index faefac7..aaeab88 100644 --- a/src/components/menu.tsx +++ b/src/components/menu.tsx @@ -23,9 +23,9 @@ export class Menu extends React.Component { { links: [ { - name: "主页", - key: "home", - icon: "Home", + name: "搜索", + key: "search", + icon: "Search", url: null }, { diff --git a/src/components/nav.tsx b/src/components/nav.tsx index 101004c..c9636cb 100644 --- a/src/components/nav.tsx +++ b/src/components/nav.tsx @@ -1,5 +1,5 @@ import * as React from "react" -import { ipcRenderer } from "electron" +import { ipcRenderer, remote } from "electron" import { Icon } from "@fluentui/react/lib/Icon" import { AppState, MenuStatus } from "../scripts/models/app" import { NavReduxProps } from "../containers/nav-container" @@ -12,14 +12,46 @@ type NavProps = NavReduxProps & { settings: () => void } -class Nav extends React.Component { - ipcSend(message:string) { - ipcRenderer.send(message) +type NavState = { + maximized: boolean, + window: Electron.BrowserWindow +} + +class Nav extends React.Component { + constructor(props) { + super(props) + let window = remote.getCurrentWindow() + window.on("maximize", () => { + this.setState({ maximized: true }) + }) + window.on("unmaximize", () => { + this.setState({ maximized: false }) + }) + this.state = { + maximized: remote.getCurrentWindow().isMaximized(), + window: window + } + } + + minimize = () => { + this.state.window.minimize() + } + maximize = () => { + if (this.state.maximized) { + this.state.window.unmaximize() + } else { + this.state.window.maximize() + } + this.setState({ maximized: !this.state.maximized }) + } + close = () => { + this.state.window.close() } canFetch = () => this.props.state.sourceInit && this.props.state.feedInit && !this.props.state.fetchingItems fetching = () => !this.canFetch() ? " fetching" : "" menuOn = () => this.props.state.menu == MenuStatus.Open ? " on" : "" + hideButtons = () => (this.props.state.menu == MenuStatus.Open || this.props.state.settings.display) ? "hide-btns" : "" fetch = () => { if (this.canFetch()) this.props.fetch() @@ -27,7 +59,7 @@ class Nav extends React.Component { render() { return ( -