Skip to content

Instantly share code, notes, and snippets.

View kobzarvs's full-sized avatar

Valeriy Kobzar kobzarvs

View GitHub Profile
@kobzarvs
kobzarvs / reduxDevTool.js
Created June 6, 2019 21:39
effector -> redux devtool
import { createStore as createReduxStore } from 'redux'
import { devToolsEnhancer } from 'redux-devtools-extension'
const redux = createReduxStore((state, { payload }) => payload, devToolsEnhancer())
export function useReduxDevTool(store) {
store.watch(payload => redux.dispatch({ type: 'CHANGE', payload }))
}
import React, { useLayoutEffect, useRef } from 'react'
import { useStore } from 'effector-react'
import * as effector from 'effector'
import { pathOr } from 'ramda'
const trackCreateStore = effector.createEvent('trackCreateStore')
const trackCreateEvent = effector.createEvent('trackCreateEvent')
const trackCreateEffect = effector.createEvent('trackCreateEffect')
const trackCreateStoreObject = effector.createEvent('trackCreateStoreObject')
import { useStore } from 'effector-react'
import * as effector from 'effector'
import { combine } from 'effector'
import { pathOr } from 'ramda'
import React, { useLayoutEffect, useRef } from 'react'
import ReactDOM from 'react-dom'
import { chromeDark, ObjectInspector, ObjectLabel } from 'react-inspector'
import { throttle } from 'lodash'
import './effector-addon.css'
.button {
border: 1px solid #555;
text-align: center;
padding: 0 12px;
color: #ddd;
cursor: pointer;
}
.button:hover {
background: rgba(255, 255, 255, .25)
.button {
border: 1px solid #555;
text-align: center;
padding: 0 12px;
color: #ddd;
cursor: pointer;
}
.button:hover {
background: rgba(255, 255, 255, .25)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CandleStick Chart</title>
<style>
#chart {
border: 1px solid red;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CandleStick Chart</title>
<style>
#chart {
border: 1px solid red;
@kobzarvs
kobzarvs / loadModule.js
Created March 28, 2020 18:13
effector - загрузка npm пакетов и пример three.js
async function loadModule(url, removeExports) {
delete window.exports
const text = await (await fetch(url)).text()
window.eval(text)
return text
}
await loadModule('https://threejs.org/build/three.js')
await loadModule('https://cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js')
@kobzarvs
kobzarvs / app.tsx
Last active January 18, 2022 17:50
Простой пример использования effector-logger & effector-inspector без babel-plugin
import React from 'react';
import { useEvent, useStore } from 'effector-react';
import { $counter, dec, inc, reset } from './counter';
export const App = () => {
const counter = useStore($counter);
const api = useEvent({ inc, dec, reset });
return (
<div>
_try = (cb) => {
let error;
try {
cb();
} catch(e) {
error = e;
}
const result = {
catch: (err, handler) => {