Skip to content

Instantly share code, notes, and snippets.

View heaversm's full-sized avatar

Mike Heavers heaversm

View GitHub Profile
@heaversm
heaversm / react-native-zoom-carousel.js
Created June 5, 2017 17:20
React Native Animated Zoom Carousel
@heaversm
heaversm / useful-github-commands.sh
Last active September 25, 2020 17:39
Github Commands
#Clone and checkout a single github branch
git clone --single-branch --branch <branchname> <remote-repo>
#delete all local branches matching pattern
git branch | grep "mh/#*" | xargs git branch -D
#set up git post-receive hooks for autodeployment
#source: https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps
#on VPS:
@heaversm
heaversm / useful-sass.scss
Last active September 16, 2020 17:21
Useful sass mixins
#fluid type between a small and large screen size / small & large font size
@mixin fluid-type($min-vw, $max-vw, $min-font-size, $max-font-size) {
$u1: unit($min-vw);
$u2: unit($max-vw);
$u3: unit($min-font-size);
$u4: unit($max-font-size);
@if $u1 == $u2 and $u1 == $u3 and $u1 == $u4 {
& {
@heaversm
heaversm / js-utilities.js
Last active August 30, 2020 16:23
Common JS Utility Functions
//MAP A NUMBER FROM ONE RANGE TO ANOTHER:
function map_range(value, low1, high1, low2, high2) {
return low2 + (high2 - low2) * (value - low1) / (high1 - low1);
}
//RANDOM DECIMAL NUMBER BETWEEN [MIN] and [MAX]:
randomNumber(min, max) {
return Math.random() * (max - min) + min;
}
@heaversm
heaversm / react_patterns.js
Last active August 14, 2020 18:37
React stuff I use all the time but forget how to do
//Set state in react to the previous state plus an updated value:
const initState = {
thing1: 0,
thing2: null,
thing3: false,
};
const [state, setState] = useState(initState);
@heaversm
heaversm / server-commands.sh
Last active August 8, 2020 04:39
Server Commands
php -S localhost:8080
#boots a local php server
python -m SimpleHTTPServer
#boots a local http server on python 2
python -m http.server
#boots a local http server on python 3
sass --watch main.scss main.css
@heaversm
heaversm / react-functionality.js
Last active May 6, 2020 15:12
Common React Functionality
/* reusable function to update any form input value with state */
state = {
title: ''
}
handleChange = (e)=>{
const {name, type, value} = e.target;
console.log({name,type,value}); //gives keys to your console log values when you put brackets around them!
const val = type === 'number' ? parseFloat(value) : value; //converts numbers from strings
@heaversm
heaversm / common-js-tasks.js
Last active April 7, 2020 01:08
Common JS Tasks and Functions
//basic async await
// this is the function we want to schedule. it's a promise.
const addOne = (x) => {
return new Promise(resolve => {
setTimeout(() => {
console.log(`I added one! Now it's ${x + 1}.`)
resolve()
}, 2000);
})
}
@heaversm
heaversm / js-library-glitch-fixes.js
Created April 5, 2020 16:30
Fixes for some weird but crucial bugs in JS
//Polyfill for aframe/threejs raycasting
//navigator.xr.requestDevice is not a function
//see https://github.com/aframevr/aframe/issues/4354#issuecomment-567052948
navigator.xr.requestDevice = navigator.xr.requestDevice || function () {
return new Promise((resolve, reject) => {
resolve({
supportsSession: new Promise((resolve, reject) => {
resolve({
immersive: true,
.next-image-button:focus { /* disable focus ring */
outline: none;
}
.next-image-button:focus-visible { /* enable focus ring for assistive devices */
outline: 3px solid blanchedalmond;
}
/* avoid layout flash on images by setting default aspect ratio equal to initial width and height of html element */