Skip to content

Instantly share code, notes, and snippets.

View munkacsitomi's full-sized avatar

Tamás Munkácsi munkacsitomi

  • Amsterdam, Netherlands
View GitHub Profile
@munkacsitomi
munkacsitomi / api.service.ts
Last active March 12, 2019 09:53
Angular authentication
import {Injectable} from '@angular/core';
import {HttpClient, HttpParams} from '@angular/common/http';
import {environment} from '../../../environments/environment';
@Injectable()
export class ApiService {
constructor(public http: HttpClient) { }
refreshToken(refreshToken) {
return this.http.post(`${environment.refreshTokenUrl}${refreshToken}`, {isRefreshUrl: true});
@munkacsitomi
munkacsitomi / es6-examples.js
Last active January 24, 2020 14:50
Real life ES6 examples
const lastPickupDate = items => items
.filter(i => i.returnQuantity)
.map(i => i.pickupDate)
.sort((a, b) => +new Date(b) - +new Date(a))
.find(i => i);
const orderTotal = order => {
const totalNormalItems = order.items
.filter(x => !x.shipping)
.reduce((prev, cur) => prev + cur.quantity * cur.price, 0)
@munkacsitomi
munkacsitomi / angular-modal.ts
Created March 11, 2019 11:59
Angular event and listener examples in a modal component
export class ModalComponent {
readonly escapeKeyCode = 27;
@Output() modalClosed = new EventEmitter();
@HostListener('document:click', ['$event']) onClickHandler(event) {
if (this.checkBackgroundClass(event.target, 'transparent-background')) {
this.close();
}
}
@munkacsitomi
munkacsitomi / array-methods.js
Last active March 8, 2019 15:20
Built-in array methods
const arr = [1, 2, 3, 4, 5, 6];
// forEach()
arr.forEach(item => {
console.log(item); // output: 1 2 3 4 5 6
});
// includes()
@munkacsitomi
munkacsitomi / factory-function.js
Last active March 13, 2019 14:25
Factory function examples in JavaScript
// dog example
const dog = () => {
const sound = 'Where are my testicles, Summer?';
return {
talk: () => console.log(sound)
}
}
const snuffles = dog();
snuffles.talk();
@munkacsitomi
munkacsitomi / promise-flow.js
Created February 4, 2019 15:44
Promise Flow example
console.time("Promise flow");
const promises = [
Promise.resolve(console.log("Promises array has begun executing")),
new Promise((resolve) =>
setTimeout(() => resolve(console.log("Initial Promise resolving after:", 5000)), 5000)
)];
Promise.all(promises).then(() => console.timeEnd("Promise flow"))
@munkacsitomi
munkacsitomi / js_basics.txt
Last active January 29, 2020 14:03
Basic Javascript concepts
// hoisting (don't declare with var, use let/const instead)
// comparing objects (reference vs primitive)
// higher order functions (pass function as an argument, return with a function)
// data storing in functions (implement add, retrieve functions)
// Promises with async/await Promise.all([promise1, promise2]);
// Array . map filter reduce
// Object . keys entries values
// Array . sort find forEach some every includes
// Spread, Rest operators: const rest = (...args) => args;
Creation: from, fromPromise, fromEvent, of
Combination: combineLatest, concat, merge, startWith , withLatestFrom, zip
Filtering: debounceTime, distinctUntilChanged, filter, take, takeUntil
Transformation: bufferTime, concatMap, map, mergeMap, scan, switchMap
Utility: tap
Multicasting: share
@munkacsitomi
munkacsitomi / animations.scss
Last active February 19, 2020 14:25
CSS animation examples
/*
Example usage:
@include animation(10s, 5s, changecolour)
*/
@mixin animation ($delay, $duration, $animation) {
-webkit-animation-delay: $delay;
-webkit-animation-duration: $duration;
-webkit-animation-name: $animation;
-webkit-animation-fill-mode: forwards; /* this prevents the animation from restarting! */
@munkacsitomi
munkacsitomi / pagination.js
Created November 15, 2018 10:58
Pagination algorithm
const pagination = (c, m) => {
let current = c,
last = m,
delta = 2,
left = current - delta,
right = current + delta + 1,
range = [],
rangeWithDots = [],
l;