Skip to content

Instantly share code, notes, and snippets.

View Kelin2025's full-sized avatar
๐Ÿ‘‹
Let him cook

Anton Kosykh Kelin2025

๐Ÿ‘‹
Let him cook
View GitHub Profile
const observer = new ResizeObserver(entries => {
entries.forEach(entry => {
const cr = entry.contentRect;
console.log('Element:', entry.target);
console.log(`Element size: ${cr.width}px x ${cr.height}px`);
console.log(`Element padding: ${cr.top}px ; ${cr.left}px`);
})
})
observer.observe(someElement)
<template>
<!-- Will add/remove .small if the width is less / greater -->
<div class="post__item" v-responsive="{ small: el => el.width <= 500 }">
<img class="post__image" :src="post.image" />
<div class="post__text">{{post.text}}</div>
</div>
</template>
<script>
import { ResponsiveDirective } from "vue-responsive-components"
import nocatch from 'async-nocatch'
const myFetch = nocatch(fetch)
const { success, result } = await myFetch('http://api.github.com/users')
if (success) {
console.log('Done', result)
} else {
console.log('Fail', result)
}
ะดะตั†ะตะฝั‚ั€ะฐะปะธะทะพะฒะฐะฝะฝะพัั‚ัŒ, ะดะตะบะปะฐั€ะฐั‚ะธะฒะฝะพัั‚ัŒ, ัั„ั„ะตะบั‚ะธะฒะฝะพัั‚ัŒ. ั‚ั€ะตะฑะพะฒะฐะปัั ะธะฝัั‚ั€ัƒะผะตะฝั‚, ะฟะพะทะฒะพะปััŽั‰ะธะน ัƒะฟั€ะฐะฒะปัั‚ัŒ ะดะฐะฝะฝั‹ะผะธ ะฒ ัะปะพะถะฝั‹ั… ะฟั€ะธะปะพะถะตะฝะธัั… ะฑะตะท ะพะฟะฐัะฝะพัั‚ะธ ั€ะฐะทะดัƒั‚ัŒ ะผะพะฝะพะปะธั‚ะฝั‹ะน ั†ะตะฝั‚ั€ะฐะปัŒะฝั‹ะน ัั‚ะพั€, ั ัะฒะฝั‹ะผ control flow, ะฝะพั€ะผะฐะปัŒะฝะพะน ั‚ะธะฟะธะทะฐั†ะธะตะน ะธ ะตะผะบะธะผ ะฐะฟะธ
โ€” ัั‚ะพั€ั‹ ะดะปั ะฟั€ะธะปะพะถะตะฝะธั ะดะพะปะถะฝั‹ ะฑั‹ั‚ัŒ ะปั‘ะณะบะธะผะธ, ะฝะฐัะบะพะปัŒะบะพ ัั‚ะพ ะฒะพะทะผะพะถะฝะพ โ€” ะฝะต ะดะพะปะถะฝะฐ ะฟัƒะณะฐั‚ัŒ ะผั‹ัะปัŒ ะพ ั‚ะพะผ, ั‡ั‚ะพ ะฝัƒะถะฝะพ ะดะพะฑะฐะฒะธั‚ัŒ ะตั‰ั‘ ะพะดะธะฝ ัั‚ะพั€ ะดะปั ะบะพะฝะบั€ะตั‚ะฝั‹ั… ะฝัƒะถะด
โ€” ัั‚ะพั€ั‹ ะดะพะปะถะฝั‹ ัะฒะพะฑะพะดะฝะพ ัะพะฒะผะตั‰ะฐั‚ัŒัั โ€” ะธะดะตั ะฒ ั‚ะพะผ, ั‡ั‚ะพ ะดะฐะฝะฝั‹ะต, ะบะพั‚ะพั€ั‹ะต ะฟะพั‚ั€ะตะฑัƒัŽั‚ัั ะฟั€ะธะปะพะถะตะฝะธัŽ, ะผะพะถะฝะพ ั€ะฐัะฟั€ะตะดะตะปะธั‚ัŒ ัั‚ะฐั‚ะธั‡ะตัะบะธ, ะทะฐั€ะฐะฝะตะต ะฟะพะบะฐะทะฐะฒ ะบะฐะบ ะดะฐะฝะฝั‹ะต ะฑัƒะดัƒั‚ ะฟั€ะตะพะฑั€ะฐะทะพะฒะฐั‚ัŒัั ะฒะพ ะฒั€ะตะผั ั€ะฐะฑะพั‚ั‹ ะฟั€ะธะปะพะถะตะฝะธั
โ€” ะฟั€ะธะฝั†ะธะฟ ั€ะฐะฑะพั‚ั‹ ะดะพะปะถะตะฝ by design ะธัะบะปัŽั‡ะฐั‚ัŒ ะฝะตะพะฑั…ะพะดะธะผะพัั‚ัŒ ะฒ reselect, ะพะฟะพะฒะตั‰ะฐั ะพะฑ ะธะทะผะตะฝะตะฝะธัั… ั‚ะพะปัŒะบะพ ั‚ะตั…, ะบะพะผัƒ ะพะฝะธ ะฝะตะพะฑั…ะพะดะธะผั‹. ัั‚ะพ ะฟะพะทะฒะพะปัะตั‚ ะฝะต ะทะฐะดัƒะผั‹ะฒะฐั‚ัŒัั ะพ ั‚ะพะผ, ั‡ั‚ะพ ัƒ ั‚ะตะฑั ะฑัƒะดะตั‚ ั‚ั€ะธะณะณะตั€ะธั‚ัŒัั ะฒัั‘ ะฟั€ะธะปะพะถะตะฝะธะต ะตัะปะธ ั‚ั‹ ะทะฐั…ะพั‡ะตัˆัŒ ะฒั‹ะฝะตัั‚ะธ ัั‚ะตะนั‚ ะผะพะดะฐะปะบะธ ะธะท ั€ะตะฐะบั‚ะฐ. ะฟะพ ัะพะฒะผะตัั‚ะธั‚ะตะปัŒัั‚ะฒัƒ ัั‚ะพ ะพะทะฝะฐั‡ะฐะตั‚ ั‡ั‚ะพ ะฟั€ะธะปะพะถะตะฝะธั ะธะทะฑะฐะฒะปะตะฝั‹ ะพั‚ ะฟั€ะพะฑะปะตะผ ั ะฟะตั€ั„ะพะผะฐะฝัะพะผ, ะฒะพะทะฝะธะบัˆะธะผ ัƒ react-redux ะฟั€ะธ ะฟะตั€ะตั…ะพะดะต ะฝะฐ ะบะพะฝั‚ะตะบัั‚
โ€” ะฒะพะทะผะพะถะฝะพัั‚ัŒ, ะผะตัั‚ะพ, ะธ ัะฟะพัะพะฑ ะฒั‹ะฝะตัั‚ะธ ะปัŽะฑัƒ
@Kelin2025
Kelin2025 / a.js
Last active March 19, 2019 20:42
import React from 'react'
import { useStore } from 'effector-react'
import { createStore, createEvent } from 'effector'
// events.js
const emailChanged = createEvent('Email changed')
const passwordChanged = createEvent('Password changed')
const submitPressed = createEvent('Submit pressed')
// stores.js
import { createEvent } from 'effector'
export const loginInputChanged = createEvent('Login input changed')
export const passwordInputChanged = createEvent('Password input changed')
export const formReset = createEvent('Form was reset')
export const submitPressed = createEvent('Submit button pressed')
export const processSubmit = createEffect('Process submit')
import { createStore } from 'effector'
// Simple stores
const $todo = createStore('')
const $todos = createStore([])
// Use store.map(state => computedState)
// To create computed stores
const $todosCount = $todos.map(todos => todos.length)
const $completedTodos = $todos.map(todos => todos.filter(todo => todo.completed))
import { createStore, createEvent } from 'effector'
// Create events
const inputChanged = createEvent('Input changed')
const todoAdded = createEvent('Todo added')
const todoRemoved = createEvent('Todo removed')
const todoToggled = createEvent('Todo toggled')
const $todo = createStore('')
const $todos = createStore([])
@Kelin2025
Kelin2025 / watch.js
Last active September 14, 2022 05:45
import { createStore, createEvent } from 'effector'
const inputChanged = createEvent('Input changed')
const todoAdded = createEvent('Todo added')
const todoRemoved = createEvent('Todo removed')
const todoToggled = createEvent('Todo toggled')
// We added one more event here
const submitPressed = createEvent('Submit pressed')
const $todo = createStore('')
import React from 'react'
import { useStore } from 'effector-react'
import { $todo, $todos, submitPressed, inputChanged, todoToggled, todoRemoved } from './stores'
export const TodoInput = () => {
// Use useStore(store) hook to get the state
// And update the component on state changes
const todo = useStore($todo)