3.0.1 • Published 9 months ago

@ucd-lib/cork-app-state v3.0.1

Weekly downloads
8
License
MIT
Repository
-
Last release
9 months ago

cork-app-state

Base AppStateModel class

This library is for SPA location routing based on event. These base classes leverage the cork-app-utils event flow. The standard work flow is as follows:

  • A <a> tag is clicked with a relative link path that is registered to the SPA.
  • The event is intercepted by the cork-app-state library
  • The cork-app-state library sets the correct browser history state and url path.
  • additional route/path logic is set in the AppStoreModel by overridding the set method.
  • A cork-app-utils event is sent on the event bus via the AppStateStore.

Additionally you can use the AppStateModel.setLocation() method to manually set a path.

Setup

import AppStateModel from '../src/models/AppStateModel.js'

// initialize base routes to handle.
AppStateModel.init(['record', 'collection', 'about']);

Example

Example Model:

import {AppStateModel} from '@ucd-lib/cork-app-state';
import AppStateStore from '../stores/AppStateStore.js';

class AppStateModelImpl extends AppStateModel {

  constructor() {
    super();

    if( !window.gtag || !config.gaCode ) {
      console.warn('No global gtag variable set for analytics events');
    }

    this.defaultPage = 'home';
    this.store = AppStateStore;
  }



  set(update) {
    // set a default page
    if( !update.location.path.length ) {
      update.page = this.defaultPage;
    } else {
      update.path = update.location.path[0];
    }
    
    let res = super.set(update);

    // do some google analytics stuff
    // ga.sendPageView();

    return res;
  }

}

const instance = new AppStateModelImpl();
export default instance;

Example store:

import {AppStateStore} from '@ucd-lib/cork-app-state';

class AppStateStoreImpl extends AppStateStore {}

const instance = new AppStateStoreImpl();
export default instance;
3.0.1

9 months ago

3.0.0

9 months ago

2.0.2

12 months ago

2.0.1

2 years ago

2.0.0

3 years ago

1.0.5

4 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

6 years ago

0.2.0

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.15

7 years ago

0.0.14

7 years ago

0.0.13

7 years ago

0.0.11

8 years ago

0.0.10

8 years ago

0.0.9

8 years ago

0.0.8

8 years ago

0.0.7

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago