Skip to content

Instantly share code, notes, and snippets.

View anatooly's full-sized avatar

Anatolii B anatooly

View GitHub Profile
@anatooly
anatooly / useEventListener.js
Created October 13, 2020 06:22
useEventListener
import { useState, useRef, useEffect, useCallback } from "react";
// использование
function App() {
// состояние для хранения координат курсора
const [coords, setCoords] = useState({ x: 0, y: 0 });
// обработчик событий обернут в useCallback,
// поэтому ссылка никогда не изменится
const handler = useCallback(
@anatooly
anatooly / useLocalStorage.js
Created October 13, 2020 06:19
useLocalStorage
import { useState } from "react";
// использование
function App() {
// аналогично useState, но первым аргументом является ключ значения, хранящегося в локальном хранилище
const [name, setName] = useLocalStorage("name", "Igor");
return (
<div>
<input
@anatooly
anatooly / settings.json
Created March 23, 2020 18:47
VS Code italic font
{
"files.autoSave": "onFocusChange",
"explorer.confirmDelete": false,
"editor.fontFamily": "Victor Mono",
"editor.fontWeight": "600",
"editor.fontSize": 15,
"editor.fontLigatures": true,
"editor.lineHeight": 16,
"editor.tokenColorCustomizations": {
"textMateRules": [
@anatooly
anatooly / es5-genarator.js
Last active August 19, 2019 14:58
ES5 generator like ES6 yeald & *foo
function foo() {
function nextState(v) {
switch (state) {
case 0:
state++;
return 42; // yield
case 1:
state++;
x = v; // yield ended
console.log(x);
@anatooly
anatooly / es6-iterators.js
Last active August 19, 2019 08:40
es6 iterator cycle
var arr = [1, 2, 3];
var greeting = "hello world";
var m = new Map();
m.set("foo", 42);
m.set({cool: true}, "hello world");
var it = arr[Symbol.iterator]();
it.next();
it.next();
it.next();
:root {
--background-color: #ccc;
}
html, body {
heigth: 100%;
weight: 100%;
padding: 0;
margin: 0;
background: var(--background-color);
[hidden] {
display: none;
}
.visually-hidden {
position: absolute !important;
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
clip: rect(1px, 1px, 1px, 1px);
padding:0 !important;
border:0 !important;
(function (window) {
var app = {
defaults: {
layout: '#layout'
},
init: function (opts) {
new TabsView();
new SearchView();
@anatooly
anatooly / composer.json
Created January 30, 2017 20:09
CodeIgniter on vendor
{
"name": "ProjectName",
"description": "Site packages list",
"require": {
"codeigniter": "3.1.3",
"mdl": "1.1.3",
"react": "15",
"react-dom": "15",
"jquery": "1.12.0",
"underscorejs": "1.8.3",
@anatooly
anatooly / .ctags
Last active January 25, 2016 11:26
.ctags
-f tags
--recurse=yes
--tag-relative=yes
--exclude=.git
--exclude=*.min.js
--langmap=php:.engine.inc.module.theme.install.php --PHP-kinds=+cf-v
--langdef=less
--langmap=less:.less
--regex-less=/^[ \t&]*#([A-Za-z0-9_-]+)/\1/i,id,ids/
--regex-less=/^[ \t&]*\.([A-Za-z0-9_-]+)/\1/c,class,classes/