Skip to content

Instantly share code, notes, and snippets.

@HaNdTriX
HaNdTriX / useFont.js
Last active January 22, 2020 14:15
Concepts of simple font loader using react suspense.
function wrapPromise(promise) {
let status = "pending";
let result;
let suspender = promise.then(
r => {
status = "success";
result = r;
},
e => {
status = "error";
@HaNdTriX
HaNdTriX / hooks-useForceUpdate.js
Last active April 12, 2020 13:17
Force update hook for react.js
import { useState } from 'react'
const useForceUpdate = () => {
const [, setState] = useState()
return setState
}
export default useForceUpdate
@HaNdTriX
HaNdTriX / apollo.logLink.js
Last active April 15, 2020 08:26
Simple logging middleware for Apollo Client.
import React from 'react'
function Error({ statusCode }) {
return (
<>
<h1>{statusCode}</h1>
<h2>This is the Next.js _error.js page</h2>
<p>Choose the status code by changing the url param above</p>
<p>
This page supports the 7.x.x status code range{' '}
@HaNdTriX
HaNdTriX / UseRouterExample.next.js
Last active June 10, 2020 02:20
Next.js useRouter
// 🤫The following code is experimental and might break in the future!
// Don't use it if you are using some kind of side-effect patterns like: Helmet, GraphQL or react-side-effect.
import { useRouter } from 'next/router'
function Home() {
const {
// `String` of the actual path (including the query) shows in the browser
asPath,
// `String` Current route
/**
* Allows to repeatedly call
* an async code block
*
* @callback callback
* @callback [filterError] Allows to differentiate beween different type of errors
* @param {number} [maxRetries=Infinity]
*/
function asyncRetry(
callback,
@HaNdTriX
HaNdTriX / toDataUrl.js
Last active February 18, 2021 20:02
Example of converting a file to a dataURL in ES6
const toDataURL = url => fetch(url)
.then(response => response.blob())
.then(blob => new Promise((resolve, reject) => {
const reader = new FileReader()
reader.onloadend = () => resolve(reader.result)
reader.onerror = reject
reader.readAsDataURL(blob)
}))
@HaNdTriX
HaNdTriX / AppBarWithTabs.js
Last active August 11, 2021 03:00
Example next.js and Material-UI next: TabNav with shared state
import React from 'react'
import Router from 'next/router'
import AppBarMD from 'material-ui/AppBar'
import Tabs, { Tab } from 'material-ui/Tabs'
const routes = [
'/',
'/articles'
]
// THIS IS JUST A POC. DO NOT USE THIS CODE!
module.exports = function babelPluginGenerateLanguageKatalog(api, options) {
const componentNames = ['FormattedMessage']
const functionNames = ['formatMessage']
const foundIds = new Set()
return {
inherits: require('babel-plugin-syntax-jsx'),
@HaNdTriX
HaNdTriX / StripeTextField.js
Last active November 23, 2021 15:59
Use Stripe and Material-UI
import React, { useImperativeHandle } from "react";
import PropTypes from "prop-types";
import TextField from "@material-ui/core/TextField";
import { fade, useTheme } from "@material-ui/core/styles";
function StripeInput(props) {
const {
component: Component,
inputRef,
/* eslint-disable no-unused-vars */