Skip to content

Instantly share code, notes, and snippets.

Avatar
🚀

TRINH Van Huy trinhvanhuy

🚀
View GitHub Profile
@trinhvanhuy
trinhvanhuy / app.module.ts
Created Jan 15, 2019
Spinner - App Module
View app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule, Injector } from '@angular/core';
import { OAuthModule } from 'angular-oauth2-oidc';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { AppComponent } from '@containers/app/app.component';
import { StoreModule } from '@ngrx/store';
import { EffectsModule } from '@ngrx/effects';
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
import {
View app.component.scss
.spinner-container {
width: 100%;
height: 100%;
position: absolute;
z-index: $z-spinner;
display: flex;
align-items: center;
justify-content: center;
background-color: rgba(255, 255, 255, 0.56);
}
@trinhvanhuy
trinhvanhuy / app.component.ts
Created Jan 15, 2019
Spinner - Application
View app.component.ts
import { Component, OnInit, AfterViewInit } from '@angular/core';
import { Angulartics2Piwik } from 'angulartics2/piwik';$
import { LoaderService } from '@services/loader.service';
import * as fromRoot from '@core/reducers';
import { Store } from '@ngrx/store';
import * as fromGlobal from '@actions/global.action';
import { Subscription } from 'rxjs';
import { OnDestroy } from '@angular/core';
View app.component.html
<div *ngIf="isShowSpinner" class="spinner-container"><img src="./assets/spinner.gif" /></div>
<div
style="
height: 100%;
"
>
<router-outlet></router-outlet>
<app-modal-container></app-modal-container>
</div>
@trinhvanhuy
trinhvanhuy / loadderInterceptor.service.ts
Created Jan 15, 2019
Spinner - Interceptor Service
View loadderInterceptor.service.ts
import { Injectable } from '@angular/core';
import {
HttpClient,
HttpHeaders,
HttpParams,
HttpParameterCodec
} from '@angular/common/http';
import { Observable } from 'rxjs';
import { LoaderService } from '@services/loader.service';
import {
@trinhvanhuy
trinhvanhuy / loader.service.ts
Created Jan 15, 2019
Spinner - Loader Service
View loader.service.ts
import { Injectable } from '@angular/core';
import * as globalAction from '@actions/global.action';
import * as fromRoot from '@core/reducers';
import { Store } from '@ngrx/store';
@Injectable({
providedIn: 'root'
})
export class LoaderService {
@trinhvanhuy
trinhvanhuy / index.ts
Created Jan 15, 2019
Spinner - State & selector
View index.ts
import {
ActionReducerMap,
createSelector,
createFeatureSelector,
ActionReducer,
MetaReducer,
} from '@ngrx/store';
import { environment } from '@environments/environment';
import { storeFreeze } from 'ngrx-store-freeze';
import * as fromGlobal from '@reducers/gloabal.reducer';
@trinhvanhuy
trinhvanhuy / global.reducer.ts
Created Jan 15, 2019
Spinner - Global Reducer
View global.reducer.ts
import { assign } from '@utils/reducer';
import {
GlobalActionTypes,
GlobalActionsUnion
} from '@app/core/actions/global.action';
export interface State {
spinnerCounter: number;
}
View global.action.ts
import { Action } from '@ngrx/store';
export enum GlobalActionTypes {
ShowSpinner = '[Global] showSpinner',
HideSpinner = '[Global] HideSpinner',
}
export class ShowSpinner implements Action {
readonly type = GlobalActionTypes.ShowSpinner;
constructor() {}
View testcontentsquare.ts
const lib = {
'L': {
'N': 'W',
'E': 'N',
'S': 'E',
'W': 'S',
},
'R': {
'N': 'E',
'E': 'S',