Skip to content

Instantly share code, notes, and snippets.

export function isWebview() {
const navigator = window.navigator;
const userAgent = navigator.userAgent;
const normalizedUserAgent = userAgent.toLowerCase();
const standalone = (navigator as any).standalone;
const isIos =
/ip(ad|hone|od)/.test(normalizedUserAgent) ||
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
const isAndroid = /android/.test(normalizedUserAgent);
@SonyStone
SonyStone / breakpoints.ts
Created April 3, 2023 15:24
breakpoints for angular
import { BreakpointObserver } from '@angular/cdk/layout';
import {
Directive,
EmbeddedViewRef,
Inject,
inject,
InjectionToken,
Input,
OnDestroy,
TemplateRef,

image Ok, you see here we are taking the user idToken as Observable. I am not shore is it a stream or signal but for reactive programming it's very critical

Stream — A stream of discrete events. Also known in other FRP systems as an event, like keyboard input events, WebSocket events, login/logout events etc. (in rxjs — Subject, Observable)

Signal — A container/store for a value that changes over time. Some FRP systems call it a behavior, property, cell or signal, like isLogin state, key press state, current user state etc. (in rxjs — BehaviorSubject, ReplaySubject(1), shareReplay(1)).

For example in Angular components @Output is a stream, and @Input is a signal