Skip to content

Instantly share code, notes, and snippets.

Avatar
🌌

Nicolas Sturm sturmenta

🌌
View GitHub Profile
@sturmenta
sturmenta / GetContainerDimensions.js
Last active May 4, 2022
react get div dimensions - using react hooks
View GetContainerDimensions.js
import { useState, useEffect } from 'react';
const useContainerDimensions = containerRef => {
const getDimensions = () => ({
width: containerRef.offsetWidth,
height: containerRef.offsetHeight
});
const [dimensions, setDimensions] = useState({ width: 0, height: 0 });
@sturmenta
sturmenta / Table.tsx
Last active May 25, 2021
simple react table
View Table.tsx
import React from 'react'
import { ClassNames, CSSObject } from '@emotion/react'
import { Column, useTable } from 'react-table'
import TextByScale from './TextByScale'
interface Props {
columns: Array<Column>
data: Array<any>
}
View keybase.md

Keybase proof

I hereby claim:

  • I am sturmenta on github.
  • I am sturmenta (https://keybase.io/sturmenta) on keybase.
  • I have a public key ASCDQDUVsCMsapvOT9Dv2-9VnH4Hnoxx1SQvIPJ2zPtu9go

To claim this, I am signing this object:

@sturmenta
sturmenta / exampleOfUse.js
Created Oct 16, 2019
react-native ask permissions
View exampleOfUse.js
requestLocationPermission({
grantPermission: () => console.warn('location granted'),
refusePermission: () => console.warn('location not granted'),
});
@sturmenta
sturmenta / dist2GPS.js
Last active Oct 4, 2019
Distance between two gps locations
View dist2GPS.js
const dist2GPS = (lat1, lng1, lat2, lng2) => {
lat1 = parseFloat(lat1);
lng1 = parseFloat(lng1);
lat2 = parseFloat(lat2);
lng2 = parseFloat(lng2);
const R = 6371e3;
const φ1 = lat1.toRad();
const φ2 = lat2.toRad();
const Δφ = (lat2 - lat1).toRad();
@sturmenta
sturmenta / App.js
Last active Sep 11, 2019
react native KeyboardContext
View App.js
import React, { PureComponent } from 'react';
import { AppNavigator, setTopLevelNavigator } from './navigation';
import { KeyboardProvider } from './utils/keyboardContext';
export default class App extends PureComponent {
render() {
return (
<KeyboardProvider>
<AppNavigator ref={navigationRef => setTopLevelNavigator(navigationRef)} />
@sturmenta
sturmenta / dimensions.js
Last active Sep 9, 2019
JS Media Queries for Desktop, Tablet, Mobile.
View dimensions.js
const w = window.innerWidth;
export const isPhone = w >= 320 && w < 480;
export const isTablet = w >= 480 && w < 768;
export const isLargeTablet = w >= 768 && w < 1024;
export const isDesktop = w >= 1024 && w < 1280;
export const isLargeDesktop = w >= 1280;
View formatBigNumber.js
const values = [
{ K: 1000 },
{ M: 1000000 },
{ B: 1000000000 },
{ Qd: 1000000000000 },
{ Qt: 1000000000000000 },
{ St: 1000000000000000000 },
{ Sp: 1000000000000000000000 },
{ O: 1000000000000000000000000 },
{ N: 1000000000000000000000000000 },
@sturmenta
sturmenta / readme.md
Last active Apr 4, 2022
use "react-native-vector-icons" in "create-react-app" with "react-app-rewired"
View readme.md
  1. yarn add react-native-vector-icons react-native-web
  2. yarn add react-app-rewired -D
  3. update package.json scripts (before react-scripts start/build/test)
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "test": "react-app-rewired test --env=jsdom",
  1. create a new file named config-overrides.js add it to the root of the project
@sturmenta
sturmenta / ObjectsArrayutils.ts
Last active Nov 9, 2020
remove object from array in javascript, add, and replace
View ObjectsArrayutils.ts
export const arrayRemoveObject = (array: Object[] = [], toRemove: Object): Array<Object> => {
const tempArray = array.slice();
if (JSON.stringify(tempArray).includes(JSON.stringify(toRemove))) {
return JSON.parse(
JSON.stringify(tempArray)
.replace(JSON.stringify(toRemove), '')
.split('},]')
.join('}]')
.split('",]')