# @ngx-electron/electron-data-shared

> Rely on angular 6.x.x and electron 2.x.x and @ng/store 6.x.x and @ngx-electron/electron-core

Latest version **0.0.1** (published 2018-09-08) · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install @ngx-electron/electron-data-shared
pnpm add @ngx-electron/electron-data-shared
yarn add @ngx-electron/electron-data-shared
bun add @ngx-electron/electron-data-shared
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2018-09-08 |
| First published | 2018-09-08 |
| Weekly downloads | 0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 176.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | liangshen~ |

## Links

- npm: https://www.npmjs.com/package/@ngx-electron/electron-data-shared
- npm.io page: https://npm.io/package/@ngx-electron/electron-data-shared

## Dependencies (1)

- [tslib](https://npm.io/package/tslib.md) ^1.9.0

## Recent versions

- 0.0.1 (latest) — 2018-09-08

## README

# @ngx-electron/electron-data-shared

Rely on angular 6.x.x and electron 2.x.x and @ng/store 6.x.x and @ngx-electron/electron-core

Use NgxElectronDataSharedService services to synchronize data in multiple windows (data is managed uniformly by store).


## Installation

```
   npm install @ngx-electron/electron-data-shared --save
```

## Usage

```typescript
import {ElectronDataSharedModule} from '@ngx-electron/electron-data-shared'
import {StoreModule} from '@ngrx/store';
import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';

const reducers = [];
@NgModule({
    declarations: [
        
    ],
    imports: [
        BrowserModule,
        ElectronDataSharedModule,
        StoreModule.forRoot(reducers),
    ],
    providers: [],
    bootstrap: []
})
export class AppModule {
}
```
#### Open a page and synchronize the data

The current page

use NgxElectronDataSharedService openPage
```
openPage({
    url, 
    channel = url, 
    webInvoker
}: {
    url: string, 
    channel?: string, 
    webInvoker?: (string) => void
}, observables?: Observable<Action>[], complete?: () => void)

```

```
// data (action)
const loadUserAction$ = this.store$.pipe(
    select(getUsers),
    map(users => new LoadUserAction(users)),
    take(1)
);
electronDataSharedService.openPage({
    url: 'home/chat-list'
}, [loadUserAction$], () => alert('data send over')));
```

new page
use NgxElectronDataSharedService initStore

```

construct(private electronDataSharedService: NgxElectronDataSharedService) {
}
onInit() {
    electronDataSharedService.initStore();
}
```

#### Multiple pages pass the data(action, eg: LoadUserSuccessAction)

On a page use NgxElectronStoreService
```
electronStoreService.dispath({
    type: '[user] init user',
    payload: [user1, user2]
});
```

Other page usage

use initStore() or use onStore()

---
_Source: https://npm.io/package/@ngx-electron/electron-data-shared · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
