seagull-js/seagull

View on GitHub
examples/helloworld/src/store/DataStore.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { observable, action, computed } from 'mobx'
import { NetworkLayer } from './NetworkLayer'
export class DataStore {
  @observable data: any
  networkLayer: NetworkLayer
  constructor(initialData: any, networkLayer?: NetworkLayer) {
    this.data = initialData
    this.networkLayer = networkLayer || new NetworkLayer()
  }
  @action.bound
  async fetchNewData() {
    const fetchedData = await this.networkLayer.fetchJson()
    this.setData(fetchedData)
  }
  @action.bound
  setData(data: any) {
    this.data = data
  }
  @computed
  get fetchedDataString() {
    return JSON.stringify(this.data)
  }
}