Skip to content

Instantly share code, notes, and snippets.

View chrisryana's full-sized avatar
🐢
медленно но верно иду к цели

Chris Ryana chrisryana

🐢
медленно но верно иду к цели
  • Kashira, Moscow region
View GitHub Profile
@chrisryana
chrisryana / promiseInLoop.js
Created August 17, 2020 15:58
Реализация запросов на сервер внутри цикла
const getData = async (pagesCount, params) => {
const pagesData = [];
const promises = [];
const { limit } = params;
for (let i = 1; i <= pagesCount; i++) {
const promise = api.method({
params: { ...params, offset: (i - 1) * limit },
});
// сначала собираем промисы в одном массиве, не дожидаемся ответа
@chrisryana
chrisryana / mixins.scss
Last active July 20, 2020 08:23
Миксины для разработки
// Миксин реализует грид систему внутри flex-контейнера
// $cols - количество блоков в одном ряду
// $margin - отступ между блоками в %
@mixin grid-element($cols, $margin) {
margin-bottom: $margin;
// Если больше 5 блоков в ряду, то растягивать на всю ширину
@if($cols >= 5) {
width: 100%;
margin-right: 0;
@chrisryana
chrisryana / fav-repos.md
Last active July 24, 2020 16:39
Список интересных git-репозиториев

Git-репозитории достойные внимания

  • 30 seconds of code – коллекция коротких фрагментов кода JavaScript
  • ru-test-assignments – тестовые задания для самостоятельного выполнения от разных it компаний
  • github-readme-stats – статистика профиля GitHub для Readme
@chrisryana
chrisryana / hocTemplate.jsx
Last active June 8, 2020 10:27
Шаблон HOC для запроса данных на сервер
import React from 'react';
import Spinner from '../components/Spinner';
import ErrorMessage from '../components/ErrorMessage';
import DataService from '../services/DataService';
export default function(WrappedComponent) {
class withDataForComponent extends React.Component {
constructor(props) {
super(props);
this.dataService = new DataService(props.id);
@chrisryana
chrisryana / extensions.md
Last active March 10, 2022 13:32
Инструменты которые нужно первыми установить для качественной разработки ⚠️

На случай если ноутбуку придет каюк *ттт* 🙊

Chrome Extensions

  • WebDeveloper – для тестирования сайта
  • CSS Feature Toggles – отключает/включает поддержку css фич типа flexbox, grid и тп
  • JSON View – форматирует json в браузере
  • ColorPick Eyedropper – скопировать цвет с сайта
  • BrowserStack – эмуляция поведения сайта в разных версиях браузеров
  • Font Finder – скопировать шрифт с сайта
@chrisryana
chrisryana / pureHTML.html
Last active October 11, 2020 17:53
Красивые штуки на чистом html
<!--
Ползунок https://developer.mozilla.org/ru/docs/Web/HTML/Element/Input/range
Кастомизация HTML5 progress element https://habr.com/ru/post/266895/
-->
<p>Audio settings:</p>
<div>
<input type="range" id="volume" name="volume"
min="0" max="11">
<label for="volume">Volume</label>
@chrisryana
chrisryana / libs.md
Last active May 27, 2020 18:15
Список библиотек для разработки

Разработка без боли

  • nanoid — генерирует уникальные id, запрещено использовать в keys react (уточнить чем лучше Symbol)
import React, { Component } from 'react';
import nanoid from 'nanoid'

class InputWithLabel extends Component {
 constructor(props){
@chrisryana
chrisryana / countDate.js
Created April 28, 2020 21:32
Трансформер для даты с использованием библиотеки dayjs
// раскладывает полученную дату на запчасти и возвращает ее в виде объекта с доп данными
export const destructDate = masterDate => {
const now = dayjs();
const dayNames = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота']; // тк в dayjs 0 это воскресенье
const dayNamesShort = ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'];
const monthsNames = [
'Январь',
'Февраль',
'Март',
'Апрель',
@chrisryana
chrisryana / simpleExamples.js
Last active June 16, 2020 10:45
Простые но полезные функции на js
// Принимает целое число и массив склонений, выдает правильное числительное = (N, ['час', 'часа', 'часов'])
function declOfNum(n, titles) {
return titles[
n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2
];
}
// Делит целое число на разряды пробелом
function numberWithSpaces(x) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");
@chrisryana
chrisryana / csshacks.css
Last active January 31, 2025 19:54
Несколько полезных фишечек в CSS
/* С помощью css блок текста ограничивается указанным количеством строк */
/* Остальное скрывается троеточиями */
.text {
display: -webkit-box;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}