Skip to content

Instantly share code, notes, and snippets.

View YonathanMeguira's full-sized avatar
🤩
Happy

Yonathan Meguira YonathanMeguira

🤩
Happy
View GitHub Profile
import { ID } from '@datorama/akita';
export interface List {
name: string;
id: ID;
date: number | Date;
total: number;
items: (ID | Item)[];
}
import { Injectable } from '@angular/core';
import { EntityState, EntityStore } from '@datorama/akita';
import { List } from './shopping-list.model';
import { config } from '@datorama/akita';
export interface ListState extends EntityState<List> {}
export interface ItemState extends EntityState<List> {}
@Injectable({
providedIn: 'root'
import { Injectable } from '@angular/core';
import { QueryEntity } from '@datorama/akita';
import { ListStore, ItemStore, ListState, ItemState } from './shopping-list.store';
import { List, Item } from './shopping-list.model';
@Injectable({
providedIn: 'root'
})
export class ListQuery extends QueryEntity<ListState, List> {
@YonathanMeguira
YonathanMeguira / data-service.ts
Last active July 26, 2018 14:06
dataService.ts
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/index';
import { List, Item } from './shopika.model';
import { ID } from '@datorama/akita';
import { of } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class ShopikaDataService {
@YonathanMeguira
YonathanMeguira / shoppingService.ts
Last active August 21, 2018 08:22
shopping-service.ts
import { ListStore } from './shopika.store';
import { List, Item } from './shopika.model';
import { ID, update } from '@datorama/akita';
export class ShopikaService {
constructor(private listStore: ListStore) {
}
addList(list: List) {
this.listStore.add(list);
@YonathanMeguira
YonathanMeguira / shopping-component.ts
Last active July 26, 2018 14:14
shoppingComponent.ts
import { Component, OnInit, ChangeDetectionStrategy, Output, EventEmitter } from '@angular/core';
import { ListQuery, ListState, List } from '../state';
import { Observable } from 'rxjs';
import { ShopikaService } from '../state/shopika.service';
import { ID } from '@datorama/akita';
@Component({
selector: 'app-list',
templateUrl: './list.component.html',
styleUrls: ['./list.component.css'],
@YonathanMeguira
YonathanMeguira / item.component.ts
Last active July 26, 2018 14:15
item.component.ts
import { Component, OnInit, Input } from '@angular/core';
import { ItemQuery, ListQuery, List, Item, ShopikaService } from '../state';
import { ID } from '@datorama/akita';
@Component({
selector: 'app-edit',
templateUrl: './edit.component.html',
styleUrls: ['./edit.component.css']
})
@YonathanMeguira
YonathanMeguira / add.component.ts
Created July 26, 2018 14:07
shopika.add.component.ts
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/index';
import { List, Item } from './shopika.model';
import { ID } from '@datorama/akita';
import { of } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class ShopikaDataService {
@YonathanMeguira
YonathanMeguira / edit.component.ts
Last active August 21, 2018 08:24
shopika-edit.component
import { List, Item, ShopikaService, ListQuery } from '../state';
import { ID } from '@datorama/akita';
export class EditComponent implements OnInit {
list: List;
constructor(
private shopikaService: ShopikaService,
private listQuery: ListQuery
) { }
@YonathanMeguira
YonathanMeguira / list.component.ts
Last active September 5, 2018 09:28
shopping list
import { ListQuery, List } from '../state';
import { ShopikaService } from '../state/shopika.service';
import { ID } from '@datorama/akita';
import { Observable } from 'rxjs';
export class ListsComponent implements OnInit {
lists$: Observable<List[]>;
constructor(
private listQuery: ListQuery,