View useTrackUpdate.js
import { useRef, useEffect } from 'react'; | |
function useTraceUpdate(props: any) { | |
const prev = useRef(props); | |
useEffect(() => { | |
const changedProps = Object.entries(props).reduce((ps, [k, v]) => { | |
if (prev.current[k] !== v) { | |
ps[k] = [prev.current[k], v]; | |
} | |
return ps; |
View DoubleTap.js
import React from "react"; | |
import { TouchableOpacity } from "react-native" | |
const DoubleTap = ({ children, delay, doubleTap, singleTap, ...rest }) => { | |
let timer = false; | |
let firstPress = true; | |
let delayTime = delay; | |
let lastTime = new Date(); |
View grid
// grid system | |
.grid-base, | |
.grid-1, | |
.grid-2, | |
.grid-3, | |
.grid-4, | |
.grid-5, | |
.grid-6 { | |
display: -webkit-box; | |
display: -webkit-flex; |
View gulp-css
let | |
gulp = require('gulp'), | |
concat = require('gulp-concat-css'), | |
minify = require('gulp-clean-css'), | |
prefix = require('gulp-autoprefixer'); | |
let path = { | |
src: './*.css', | |
dest: './done/' | |
} |
View px to em(sass)
$base: 15; | |
@function em($pixels, $context: $base) { | |
@if (unitless($pixels)) { | |
$pixels: $pixels * 1px; | |
} | |
@if (unitless($context)) { | |
$context: $context * 1px; | |
} |