Skip to content

Instantly share code, notes, and snippets.

View zsajjad's full-sized avatar
👊
Always Exploring

Zain Sajjad zsajjad

👊
Always Exploring
View GitHub Profile
@zsajjad
zsajjad / lefthook.yml
Last active August 25, 2021 11:59
Lefthook for React/ReactNative apps
// cSpell:word commitlint typecheck
pre-commit:
parallel: true
commands:
type-check:
glob: '*.{ts,tsx}'
run: yarn typecheck
lint:
glob: '*.{js,ts,jsx,tsx}'
@zsajjad
zsajjad / imageToTensor.ts
Last active April 20, 2020 20:39
Converting images to ONNX.js Tensor for processing.
import ndarray from 'ndarray';
import ops from 'ndarray-ops';
import { Tensor } from 'onnxjs';
export function preProcess(ctx: CanvasRenderingContext2D): Tensor {
const imageData = ctx.getImageData(0, 0, ctx.canvas.width, ctx.canvas.height);
const { data, width, height } = imageData;
const dataTensor = ndarray(new Float32Array(data), [width, height, 4]);
const dataProcessedTensor = ndarray(new Float32Array(width * height * 3), [1, 3, width, height]);
ops.assign(dataProcessedTensor.pick(0, 0, null, null), dataTensor.pick(null, null, 2));
@zsajjad
zsajjad / MainActivity.java
Last active March 10, 2020 12:15
Peekaboo - Android WebView Sample
package fetchsky.androidsample;
import android.annotation.TargetApi;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebResourceRequest;
@zsajjad
zsajjad / ViewController.swift
Last active March 10, 2020 12:15
View Controller for Peekaboo iFrame
import UIKit
class ViewController: UIViewController, UIWebViewDelegate {
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad();
@zsajjad
zsajjad / interactions.js
Created January 19, 2020 20:45
React 360 Step 3: Interactions
export default class soccerVR extends React.Component {
render() {
return (
<View style={styles.panel}>
<View style={styles.logosContainer}>
{/* Iterating over CLUBS and rendering content */}
{CLUBS.map(club => (
<VrButton
key={club.id}
onClick={() => console.log("Click")}
@zsajjad
zsajjad / content.js
Created January 18, 2020 12:04
React 360 Step 2: Images & Text
const CLUBS = [
{
id: "manutd",
name: "Manchester United",
logoUrl: "https://i.ibb.co/mBnCHjY/manUtd.png"
},
{
id: "barcelona",
name: "Barcelona",
@zsajjad
zsajjad / layout.js
Created January 18, 2020 11:45
React 360 Step 1: Layout
export default class soccerVR extends React.Component {
render() {
return (
<View style={styles.panel}>
{/* This container will align all logos in center as row */}
<View style={styles.logosContainer}>
{/* Each view will have logo and name of club */}
<View style={styles.logoHolder} />
<View style={styles.logoHolder} />
@zsajjad
zsajjad / HookContainer.js
Created July 1, 2019 22:35
Hook based Container with children props
/*
*
* HackerNews
*
*/
import React from 'react';
import PropTypes from 'prop-types';
import { useSelector, useDispatch, shallowEqual } from 'react-redux';
import { createStructuredSelector } from 'reselect';
@zsajjad
zsajjad / ClassContainer.js
Created July 1, 2019 22:24
Class based Container with children props
/*
*
* HackerNews
*
*/
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { createStructuredSelector } from 'reselect';
poppyField.style({
imagePath: 'https://farm9.staticflickr.com/8295/8007075227_dc958c1fe6_z_d.jpg',
}).then((resp) => {
this.setState((state) => ({
styledImagePath: state.styledImagePath.concat([resp.imagePath]),
}));
}).catch((err) => {
console.log(err);
});