Skip to content

Instantly share code, notes, and snippets.

View andreystarkov's full-sized avatar
:electron:
<3

Andrei Starcow andreystarkov

:electron:
<3
View GitHub Profile
did:muport:QmV5PXgTWxVYQZcFcMkM4BEYBHWM8ssiDfMKk3hgT2zRkq
did:muport:QmV5PXgTWxVYQZcFcMkM4BEYBHWM8ssiDfMKk3hgT2zRkq
{"lastUpload":"2020-11-30T05:20:47.703Z","extensionVersion":"v3.4.3"}
@andreystarkov
andreystarkov / ApolloClient.js
Created June 4, 2019 17:22
cache options for apollo client
import { ApolloClient } from 'apollo-client'
import { ApolloLink, concat } from 'apollo-link'
import { HttpLink } from 'apollo-link-http'
import { InMemoryCache } from 'apollo-cache-inmemory'
const defaultOptions = {
watchQuery: {
fetchPolicy: 'network-only',
errorPolicy: 'ignore'
},
import { createReducer, createActions } from 'reduxsauce'
import Immutable from 'seamless-immutable'
import { sizes } from 'Themes/Media'
const { Types, Creators } = createActions({
layoutSetWidth: ['width']
})
export const LayoutTypes = Types
@andreystarkov
andreystarkov / callApiSaga.js
Created May 22, 2019 08:48
Universal Saga: Magic helper for handling api-calls with its side effects
import { call, put, takeEvery, select } from 'redux-saga/effects'
// все экшены названы по паттерну _REQUEST, _SUCCESS, _FAILED
// like AUTH_SUCCESS, AUTH_FAILED, AUTH_REQUEST
function * callAPI (action) {
const { payload, data: { method, params } } = action
const user = yield select(state => state.user)
try {
const authHeaders = user.headers
@andreystarkov
andreystarkov / callApiSagaExaple.js
Last active October 30, 2019 16:24
API Call Saga Example Usage
import { call, put, select } from 'redux-saga/effects'
import camel from 'to-camel-case'
export function * callAPI (api, action) {
let method = action.type.split('_')
method.pop()
method = camel(method.join('_'))
const apiCall = api[method]
const payload = { ...action }
// Открываешь чаты в badoo.com, слева должен быть список с именами
// Справа должен быть чат
// Прокручиваешь до самого низу диалоги (что бы были прогружены все)
// В таком состоянии открываешь инспектор (правой кнопкой по пустому месту)
// Открываешь вкладку Console и туда вставляешь весь код ниже
// Жмешь Enter
const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms))
function getMessage () {
@andreystarkov
andreystarkov / wallet.md
Last active April 18, 2019 07:54
Wallet Design TZ

Wallet Design TZ

Базовые принципы

Мнение большинства

Думаю стоит отказаться от варианта лейаута по левому краю с фоном справа. Сделать его по центру и с дизайном mobile app-like. У портиса некрасивый но очень практичный дизайн: wallet.portis.io.

WALLET EPIC WIN TODO

:feelsgood:

Data hiding

На платформе

  • Генерируем RSA-ключи на платформе
  • Ключ D сохраняем в localStorage на платформе
  • Ключи R, N отправляем параметрами запроса на Wallet при переходе с платформы