Skip to content

Instantly share code, notes, and snippets.

View dmjcomdem's full-sized avatar
🎯
Focusing

Dimonskiy dmjcomdem

🎯
Focusing
View GitHub Profile
<template>
<div v-if="url">
<template v-if="isAvailableExtension">
<PButton
variant="text"
color="primary"
class="preview-button"
:title="fileName"
data-testid="preview-button"
@click="openPreviewModal"
<template>
<teleport to="#modals">
<transition name="modal">
<div v-if="isOpen" class="modal-backdrop" :style="styleBackdrop" @click.stop.self="closeOnBackdrop">
<focus-trap v-model:active="isActiveFocusTrap" :escape-deactivates="false">
<div v-loading="loading" class="modal" :style="styleModal">
<PButton
v-if="visibleCloseButton"
variant="text"
class="modal-close"
<template>
<component
v-bind="attrs"
:is="componentTag"
:class="[
'button',
{
[`button--${variant}`]: variant,
[`button--${resolveColor}`]: resolveColor,
'button--small': small,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Unique page title - My Site</title>
<link rel="stylesheet" href="/assets/css/styles.css">
<link rel="stylesheet" href="/assets/css/print.css" media="print">
@dmjcomdem
dmjcomdem / scrollRenderItems.vue
Created May 26, 2022 10:59
Небольшой пример отрисовки данных при прокручивании блока/таблицы
data: () => ({
placements: [],
placementsData: [],
limit: 10,
step: 0,
isRenderAllItems: false,
isScroll: false
}),
methods: {
@dmjcomdem
dmjcomdem / grades.md
Last active July 16, 2024 05:40
Грейды для frontend-разработчиков

Level 1

  • Базовые знание диалекта Typescript, основных встроенных примитивов (Array, Object, Function, String, Date) и методов работы с ними, понимание контекста (this) и способов управления им
  • Базовые знания фреймворка React
  • Знание наиболее часто используемых Web API: fetch/XHR, Storage, PostMessage, DOM
  • Умение писать простейшие алгоритмы (поиск, сортировка, сравнение объектов) без требований к их оптимальности.
  • Навыки кроссбраузерной адаптивной верстки по макету с использованием существующего кода, знание CSS и препроцессора SCSS
  • Навыки отладки разметки в браузерах Chrome/Safari
  • Знание принципов работы HTTP, отличий между различными методами, принципов работы Cookies
  • Практическое владение лучшими практиками структурирования кода: SOLID/DRY/KISS и т.д.
  • Базовые знания git, понимание git flow
@dmjcomdem
dmjcomdem / updateVersionStyle.js
Created April 22, 2021 07:41
Для генерации шаблона и обновлении ссылки на стили, для сброса закешированных css файлов.
'<link rel="stylesheet" href="style.css?%VERSION_STYLE%">'
.replace(/.css?(%VERSION_STYLE%|\d+)/, '?' + Date.now())
@dmjcomdem
dmjcomdem / addserver-observer.js
Last active March 26, 2021 08:20
MutationObserver for addserver-tag
// prettier-ignore
(function() {
function mutationObserver(
node,
callback,
options = {
childList: true,
subtree: true,
attributes: true,
attributeOldValue: false,
@dmjcomdem
dmjcomdem / scoped-slots.vue
Created November 22, 2020 21:59
Расширение для компонента библиотеки
<template>
<q-select
v-on="$listeners"
v-bind="Object.assign($attrs, $props, { dense: true, outlined: true })"
value=""
>
<template v-for="(_, slot) of $scopedSlots" v-slot:[slot]="scope">
<slot :name="slot" v-bind="scope"></slot>
</template>
</q-select>
@dmjcomdem
dmjcomdem / conversion.js
Created November 2, 2020 19:50
Преобразование в иерархическую структуру
const source = [
{ id: 1 },
{ id: 3, parentId: 1 },
{ id: 4, parentId: 3 },
{ id: 5, parentId: 3 },
{ id: 6, parentId: 1 },
{ id: 7, parentId: 6 },
{ id: 8, parentId: 7 },
{ id: 9, parentId: null }
];