Skip to content

Instantly share code, notes, and snippets.

View tenphi's full-sized avatar
💭
Try Numl.Design

Andrey Yamanov tenphi

💭
Try Numl.Design
View GitHub Profile
// You can access React utilities as props of React object.
// For example: `React.useRef()`
interface CheckboxProps {
value?: boolean;
defaultValue?: boolean;
onChange?: (newValue: boolean) => void;
}
function Checkbox({ value, defaultValue, onChange }: CheckboxProps) {
@tenphi
tenphi / color-magic.md
Last active July 3, 2023 11:47
Материалы к докладу "Магия Цвета" / Materials for the talk "Magic of color"

Материалы к докладу "Магия цвета" / Materials for the talk "Magic of color"

Об авторе / About author

Яманов Андрей / Yamanov Andrey, @tenphi

Лидер команды фронтенд инфраструктуры / Frontend Infrustracture Team Lead @ Cube Dev

Видео / Video

@tenphi
tenphi / moscowjs-44.md
Created February 21, 2019 08:26
MoscowJS 44 Instructions

MoscowJS 44

Информация о событии Название: MoscowJS 44 Дата и время: 21 февраля 2019 с 19:00 до 21:30 Место проведения: Avito, БЦ "Белые Сады", вход со стороны Лесной улицы. Далее на 15 этаж.

Пожалуйста захватите свой ПАСПОРТ. Он потребуется для входа.

Как до нас добраться

@tenphi
tenphi / transliteration.js
Created January 29, 2019 08:35
Transliteration
TRANSLITE_DICT = {"Ё":"YO","Й":"I","Ц":"TS","У":"U","К":"K","Е":"E","Н":"N","Г":"G","Ш":"SH","Щ":"SCH","З":"Z","Х":"H","Ъ":"","ё":"yo","й":"i","ц":"ts","у":"u","к":"k","е":"e","н":"n","г":"g","ш":"sh","щ":"sch","з":"z","х":"h","ъ":"","Ф":"F","Ы":"I","В":"V","А":"a","П":"P","Р":"R","О":"O","Л":"L","Д":"D","Ж":"ZH","Э":"E","ф":"f","ы":"i","в":"v","а":"a","п":"p","р":"r","о":"o","л":"l","д":"d","ж":"zh","э":"e","Я":"Ya","Ч":"CH","С":"S","М":"M","И":"I","Т":"T","Ь":"","Б":"B","Ю":"YU","я":"ya","ч":"ch","с":"s","м":"m","и":"i","т":"t","ь":"","б":"b","ю":"yu"};
transliterate = function(word){
return word.split('').map(function(char){
return typeof TRANSLITE_DICT[char] !== 'undefined' ? TRANSLITE_DICT[char] : char;
}).join("").replace(/\s/g, '-').toLowerCase().replace(/[^\w^-]/gi, '');
};
@tenphi
tenphi / meetup-checklist.md
Created April 3, 2018 08:23
Meetup checklist
  • Контакт ответственного человека
  • Адрес площадки
  • Кол-во мест на площадке (желательно фото)
  • Предполагается ли какой-то кейтеринг
  • Какое оборудование на площадке
  • Организуется ли запись докладов, видеотрансляцию, фотографа
  • Система пропусков
  • Технические детали подключения к проектору. Пропорции экрана проектора. Было бы здорово, чтобы докладчик мог легко подключить свой ноут, независимо от ОС.
  • Подключение докладчика. Какие микрофоны, есть ли монитор для докладчика, есть ли стойка для ноута и т.п.
  • Условия компании: свой докладчик, своя мини-презентация компании, экскурсии и другое
@tenphi
tenphi / bemnames.js
Created September 2, 2017 11:25
BEM-class Generator for React
import classNames from 'classnames';
// modName -> mod_name
function toKebabCase(str) {
return str ? str.replace(/[A-Z]/g, function(s) {return '-' + s.toLowerCase() }).replace(/$\-/, '') : '';
}
function BEM(blockName) {
blockName = blockName || '';
@tenphi
tenphi / dynamic-component.ts
Created March 16, 2017 13:05
dynamic-component.ts
import { Component, ViewContainerRef, ComponentRef, ComponentFactoryResolver, ViewChild, Type, Input, Compiler } from '@angular/core';
// Helper component to add dynamic components
@Component({
selector: 'tnp-component-injector',
template: `<div></div>`
})
export class ComponentInjector {
@Input() component: Type<Component>;
@Input() props: Object = {};
@tenphi
tenphi / angular-dynamic-components.txt
Last active March 16, 2017 17:25
Angular Dynamic Components Link
Presentation - *скоро появится*
*ngComponentOutlet Example - http://plnkr.co/edit/yscxeoYZ0Cfnzzk6Hgu7?p=preview
ComponentInjector Module - https://gist.github.com/tenphi/94b8732d894ce7cec088738c7201e79e
Полезные доклады про Angular:
The Angular 2 Compiler Tobias Bosch - https://youtu.be/kW9cJsvcsGo
Netanel Basal ViewContainerRef - https://netbasal.com/angular-2-understanding-viewcontainerref-acc183f3b682#.t9ip215zn
(function(ng) {
'use strict';
if (typeof module !== "undefined" && typeof exports !== "undefined" && module.exports === exports){
module.exports = 'tenphi.eventscope';
}
ng.module('tenphi.eventscope', [])
.factory('EventScope', () => {
let listeners = {};