Skip to content

Instantly share code, notes, and snippets.

View toruticas's full-sized avatar

Rafael Mariano toruticas

View GitHub Profile
@toruticas
toruticas / .zshrc
Last active September 20, 2022 07:03
export ZSH="/Users/rs0230/.oh-my-zsh"
ZSH_THEME='gnzh'
plugins=(
git
dnf
zsh-autosuggestions
)
import React from 'react'
class Suspense extends React.Component {
state = {
promise: null
};
componentDidCatch(error) {
// Oh my god, this is the desired Promise 😬
if (error instanceof Promise) {
import SplitFactory from '@splitsoftware/splitio'
// Instancia a SDK
const factory = SplitFactory({
core: {
authorizationKey: 'YOUR_API_KEY',
// A 'key' pode ser o ID do usuário conectado ou o ID da conta à qual o
// usuário conectado pertence. Em resumo, o ID é a chave que identificado o
// usuário. Dependendo da sua regra de negócio, faz mais sentido usar o
// identificado como um grupo invés do ID do usuário.
import SplitFactory from '@splitsoftware/splitio')
const factory = SplitFactory({
core: {
authorizationKey: 'YOUR_API_KEY'
// note que não passamos mais uma key aqui
}
});
const client = factory.client()
import React, { FC } from 'react'
import { SWRConfig } from 'swr'
import axios from 'axios'
import { ProfileContainer } from './ProfileContainer'
import './App.css'
const fetcher = (url: string) =>
axios(url).then(
response =>
const ProfileContainer: FC = () => (
<Suspense fallback={<SkeletonLoading />}>
<ProfileData />
</Suspense>
)
const ProfileData: FC = () => {
const { data, isValidating, mutate } = useSWR(
'https://api.github.com/users/toruticas',
)
return (
<div className="ProfileData">
...
{isValidating && (
import React, { Suspense, ReactNode } from 'react'
import { cache } from 'swr'
import { GITHUB_PROFILE_API } from './api'
import { ProfileData } from './ProfileData'
import { SkeletonLoading } from './SkeletonLoading'
import { ConfusedIcon } from './ConfusedIcon'
import './ErrorBoundary.css'
const ProfileData: FC = () => {
const { data, error, isValidating, mutate } = useSWR(GITHUB_PROFILE_API)
return (
<div className="ProfileData">
...
{error && (
<div className="spinner">
<AlertIcon />
</div>
{
"compilerOptions": {
"baseUrl": "src/",
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,