KochiyaOcean / electron-react-titlebar

A github desktop style title bar component for electron.
MIT License
60 stars 15 forks source link
electron react react-virtualized titlebar

electron-react-titlebar

A github desktop style title bar component for electron.

screenshot

Installation

npm i --save electron-react-titlebar

Example

npm run build
npm run demo

Usage

Main process

app.on('ready', () => {
  require('electron-react-titlebar/main').initialize()
})

Renderer process

If you are using webpack

import { TitleBar } from 'electron-react-titlebar/renderer'
import 'electron-react-titlebar/assets/style.css'

ReactDOM.render(
    <TitleBar menu={menuTemplate} icon={iconPath} />,
    document.querySelector('title-bar')
)

If you're not a webpack user and wants to load css directly

ReactDOM.render(
    <TitleBar menu={menuTemplate} icon={iconPath}>
      <link rel="stylesheet" type="text/css" href={require.resolve('electron-react-titlebar/assets/style.css')} />
    </TitleBar>,
    document.body
)

Options

children?: node

Elements to be rendered in between the menu and the window controls (optional).

disableMinimize?: boolean

Disable minimize button (optional).

disableMaximize?: boolean

Disable maximize button (optional).

icon?: string

Path to icon file (optional).

browserWindowId?: number

The browserWindow's id that window controls affect to. Default value is the browserWindow that renders the component (optional).

menu?: \<MenuTemplate>

Menu template of Electron's Menu (optional).

Note: electron-react-titlebar is supporting a subset of Electron's MenuItem.

Supported options:

Breaking changes since v1.0.0

The v1.0.0 version contains following breaking changes:

If you're still using Electron below 14 and don't want to take breaking changes, you can still use 0.x version of electron-react-titlebar.