Skip to content

Instantly share code, notes, and snippets.

import React from 'react'
export function useEffectDebugger(effect, dependencies) {
useLogChanges(dependencies)
React.useEffect(effect, dependencies)
}
export function useCallbackDebugger(callback, dependencies) {
useLogChanges(dependencies)
return React.useCallback(callback, dependencies)

ჯანსაღი ქომუნითის წესები:

  • სანამ კითხვას დასვამთ, ცოტა ხანი (15 წუთი მაინც) ეცადეთ მოძებნოთ პასუხი თქვენივე ძალებით.
    • არ იქნება სამართლიანი, რომ ვიღაცას დაეზაროს და მის მაგივრად სხვამ ხარჯოს დრო/ენერგია, ეს თქვენც არ გესიამოვნებათ. მოძებნისთვის შეგილიათ გამოიყენოთ სხვადასხვა ონლაინ საძიებო სისტემები როგორიცაა მაგალითად გუგლი.
  • კითხვა გასაგებად ჩამოაყალბეთ, ჩანდეს რომ თქვენ უკვე ეცადეთ თქვენით გარკვევა და დაიცავით პირველი წესი. ახლა მართლა გჭირდებათ ქომუნითსგან დახმარების მიღება და თქვენ ამას იმსახურებთ!
    • კოდის გაზიარებისთვის გამოიყენეთ ისეთი პლატფორმები როგორებიცაა Gist, codesandbox, jsfiddle, codepen და მისთანები.
    • არ გააზიაროთ კოდის სკრინშოტი, რადგან რთულია ასეთ ფორმატში კოდის წაკითხვა და გარჩევა, მითუმეტეს თუ მთელი ეკრანის სქრინშოტია
    • ეცადეთ მაგალითი გაამარტივოთ და მთელი აპლიცაკიის კოდის მაგივრად, კოდის ის ნაწილი გააშეაროთ, რომელიც კერძოდ ამ პრობლემასთან არის დაკავშირებული
  • წერეთ ქართულად ი
@notgiorgi
notgiorgi / Modad.re
Last active December 17, 2018 20:12
module type Monad = {
type m(_);
let flatMap: m('a) => ('a => m('b)) => m('b);
};
module ListMonad: Monad {
type t('a) = list('a)
let rec flatMap = (ma, f) => switch (ma) {
| [] => []
trait Generator[T] {
self =>
def generate: T
def map[U](fn: T => U): Generator[U] = new Generator[U]{
def generate = fn(self.generate)
}
def flatMap[U](fn: T => Generator[U]): Generator[U] = fn(self.generate)
import React, { Component } from 'react'
import { View, Image, StyleSheet, ScrollView, Text, Animated, StatusBar } from 'react-native'
import Icon from 'react-native-vector-icons/MaterialIcons'
const IMG_SRC = { uri: "https://pulsations.files.wordpress.com/2010/05/randomdog.jpg" }
const IMG_HEIGHT = 200
const NAVBAR_HEIGHT = 64
class Twitter extends Component {
constructor(props) {
@notgiorgi
notgiorgi / rn_usefull_snippets.json
Created October 9, 2017 08:16
VS Code react-native useful snippets
{
"import stylesheet": {
"prefix": "istyle",
"body": [
"import { StyleSheet } from 'react-native'",
"",
"export default StyleSheet.create({})",
""
],
"description": "import stylesheet"
@notgiorgi
notgiorgi / index.html
Created August 4, 2017 13:59
Pure JS image zoom
<figure
id="figure"
>
<img
id="img"
src=""
/>
</figure>
Magnification level: <input id="input" type="number" value="200" />
function optimizeEvent(type, obj = window) {
let running = false
obj.addEventListener(type, () => {
if (running) { return; }
running = true;
requestAnimationFrame(() => {
obj.dispatchEvent(new CustomEvent(`optimized-${type}`))
running = false;
})
interface PaymentPattern<T> {
CreditCard: (card: CreditCardPayment) => T;
Cash: (cash: CashPayment) => T;
}
interface PaymentMatcher {
match<T>(p: PaymentPattern<T>): T;
}
abstract class Payment implements PaymentMatcher {
import React from 'react'
import curry from 'lodash.curry'
function withErrorHandler(errorCallback, FallbackComponent, Component) {
return class extends React.Component {
constructor() {
super()
this.state = {
hasError: false,