Skip to content

Instantly share code, notes, and snippets.

View effe-megna's full-sized avatar
🎮

Francesco Megna effe-megna

🎮
  • Bologna
View GitHub Profile
@effe-megna
effe-megna / HocExample.js
Last active April 27, 2019 14:11
Hoc Example
const HocExample = ({ isAtTop }) => {
return (
<NavBar
isAtTop={isAtTop}
info="High Order Component example"
/>
);
};
export default withTopDetector(HocExample);
@effe-megna
effe-megna / PlainExample.js
Created April 27, 2019 13:46
Detect the when the user is at the top of the page, in plain React way.
class PlainExample extends React.Component {
state = {
isAtTop: true
};
componentDidMount() {
window.addEventListener("scroll", this.onScrollListener);
}
componentWillUnmount() {
@effe-megna
effe-megna / Hoc.js
Created April 27, 2019 13:49
An High-ordered component for detect when the user is at the top of the page
export const withTopDetector = Component => {
return class extends React.Component {
state = {
isAtTop: true
};
componentDidMount() {
window.addEventListener("scroll", this.onScrollListener);
}
@effe-megna
effe-megna / detector.js
Created April 27, 2019 13:53
Function for detect when the user is at the top of the page
const winScroll = document.body.scrollTop || document.documentElement.scrollTop;
const height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
const scrolled = winScroll / height;
// scrolled === 0 user is at the top of the page
@effe-megna
effe-megna / someInjection.js
Created April 30, 2019 01:02
Some Injection
function getInstanceMethodNames (obj) {
return Object
.getOwnPropertyNames (Object.getPrototypeOf (obj))
.filter(name => (name !== 'constructor' && typeof obj[name] === 'function'));
}
function getInstanceStaticMethodNames (Class) {
return Object.getOwnPropertyNames(Class)
.filter(prop => typeof Class[prop] === "function");
}
package com.bepower.becharge.ui
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.View.OnClickListener
import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import androidx.databinding.ViewDataBinding
import androidx.recyclerview.widget.DiffUtil
@effe-megna
effe-megna / RemoteData.kt
Last active October 21, 2019 20:42
Port of RemoteData to Kotlin
/**
*
* Port of [RemoteData](https://github.com/devexperts/remote-data-ts/blob/master/src/remote-data.ts)
*
* Represents a value of one of four possible types (a disjoint union)
* An instance of [RemoteData] is either an instance of [Initial], [Pending], [Failure] or [Success]
*
* A common use of [RemoteData] is as an alternative to [Either] or [Option] supporting initial and pending states
*
* Note: [Initial], [Pending] and [Failure] are commonly called "Left" part.
@effe-megna
effe-megna / TaskRemoteData.ts
Created November 4, 2019 11:57
monad TaskRemoteData
import { Monad2 } from 'fp-ts/lib/Monad'
import * as RD from "@devexperts/remote-data-ts"
import * as T from "fp-ts/lib/Task"
import * as TE from "fp-ts/lib/TaskEither"
import * as E from "fp-ts/lib/Either"
import { pipe, pipeable } from "fp-ts/lib/pipeable"
import { sequenceT } from 'fp-ts/lib/Apply'
declare module 'fp-ts/lib/HKT' {
interface URItoKind2<E, A> {
@effe-megna
effe-megna / ReaderRemoteData.ts
Created November 4, 2019 11:58
monad ReaderRemoteData
import { Reader } from 'fp-ts/lib/Reader'
import { Monad3 } from 'fp-ts/lib/Monad'
import * as RD from "@devexperts/remote-data-ts"
import { getReaderM } from 'fp-ts/lib/ReaderT'
import { pipeable } from "fp-ts/lib/pipeable"
declare module 'fp-ts/lib/HKT' {
interface URItoKind3<R, E, A> {
ReaderRemoteData: ReaderRemoteData<R, E, A>
}
import { Reader } from 'fp-ts/lib/Reader'
import { Monad3 } from 'fp-ts/lib/Monad'
import * as RD from "@devexperts/remote-data-ts"
import * as T from "fp-ts/lib/Task"
import { monadTaskRemoteData, TaskRemoteData, TRD } from "./TaskRemoteData"
import { pipe, pipeable } from "fp-ts/lib/pipeable"
import { sequenceT } from 'fp-ts/lib/Apply'
declare module 'fp-ts/lib/HKT' {
interface URItoKind3<R, E, A> {