Skip to content

Instantly share code, notes, and snippets.

View asci's full-sized avatar
🍊

Artem R asci

🍊
View GitHub Profile
@asci
asci / mocks.tsx
Created April 9, 2019 10:01
Jest mocks snippets
// Mock default constructor
import SomeConstructor from "some-package"
const SomePackageMock = {
default: jest.fn(),
}
jest.mock("some-package", () => SomePackageMock)
// Import place where construcor from some-package is used
import { testStuff } from "../Scroll/useElementSize"
@asci
asci / ImageShuffle.tsx
Created March 9, 2019 09:53
Image Shuffle component
import * as React from 'react';
import { ControlType, PropertyControls, Size } from 'framer';
interface Props extends Size {
images: string[];
}
interface State {
index: number;
}
@asci
asci / Nums.tsx
Created December 5, 2018 18:34
Random Number component for Framer X
import * as React from "react";
import { PropertyControls, ControlType } from "framer";
import { FontWeightProperty, TextAlignProperty } from "csstype";
type FontWeight =
| "normal"
| "bold"
| "lighter"
| "bolder"
| "100"
@asci
asci / App.jsx
Created October 29, 2018 09:42
Iframe React issue
// Could be served via CRA with default port 3000
import React from 'react';
import ReactDOM from 'react-dom';
class App extends React.Component {
constructor(props) {
super(props);
this.state = { num: 0 };
}
@asci
asci / Button.tsx
Created October 17, 2018 10:58
Framer X connected components
import * as React from 'react';
import { animate } from 'framer';
// This is shared data, it should be imported
import { data } from './Examples';
export class Button extends React.Component {
render() {
return (
<div
@asci
asci / index.ts
Created September 21, 2018 15:23
share data
import * as React from 'react';
import { PropertyControls, ControlType } from 'framer';
import { data } from './Examples';
// Define type of property
interface Props {
text: string;
}
export class Display extends React.Component<Props> {
@asci
asci / forEach.js
Last active February 24, 2019 09:45
tree functions
function walkTree(onEachChildren, childrenKey = "children") {
return function treeWalker(elem, level = 0) {
onEachChildren(elem, level);
if (elem[childrenKey]) {
elem[childrenKey].forEach(item => treeWalker(item, level + 1));
}
};
}
// how to use
@asci
asci / fromPromise.js
Created March 12, 2018 14:17
Observable from Promise
export default function fromPromise(promise) {
return new Observable(observer => {
let active = true;
promise.then((...data) => {
if (active) {
observer.next(...data);
}
observer.complete();
}).catch((...err) => observer.error(...err));
@asci
asci / stub.js
Created January 23, 2018 09:38
Mocha cheatsheet
// return resolved promise
sandbox.stub(Obj, 'method').resolves(value);
// return rejected promise
sandbox.stub(Obj, 'method').rejects(value);
@asci
asci / script.js
Created June 11, 2017 11:18
crystal-feed - remove all non-important cards from your facebook feed
(function() {
'use strict';
function debounce(callback, delay) {
var timeout;
return function() {
var context = this,
args = arguments;