Skip to content

Instantly share code, notes, and snippets.

View domosedov's full-sized avatar
🏠
Working from home

Aleksandr Grigorii domosedov

🏠
Working from home
View GitHub Profile
@domosedov
domosedov / wp-route.php
Created July 3, 2020 14:39
Template for wordpress rest api controller
<?php
namespace Your\Namespace;
use WP_REST_Server;
class Todos extends \WP_REST_Controller
{
public function __construct()
@domosedov
domosedov / wp-register-object-meta.php
Last active July 3, 2020 21:28
Wordpress register array type meta example
register_meta(
'user',
'user_friends_list',
[
'object_subtype' => 'user',
'type' => 'array',
'description' => 'Friends Ids',
'single' => true,
'sanitize_callback' => null,
'auth_callback' => 'null',
@domosedov
domosedov / full-width.css
Created April 21, 2021 14:55
Full Width Containers in Limited Width Parents
/* https://css-tricks.com/full-width-containers-limited-width-parents/ */
.full-width {
width: 100vw;
position: relative;
left: 50%;
right: 50%;
margin-left: -50vw;
margin-right: -50vw;
}
@domosedov
domosedov / fix-jumping-scrollbar.css
Created April 21, 2021 14:58
Fix jumping scrollbar
html {
width: 100vw;
overflow-x: hidden;
}
@domosedov
domosedov / flex-gap-polyfill.css
Created June 23, 2021 06:50
Flex Gap polyfill
.emulated-flex-gap {
--gap: 12px;
display: inline-flex;
flex-wrap: wrap;
margin: calc(-1 * var(--gap)) 0 0 calc(-1 * var(--gap));
width: calc(100% + var(--gap));
}
.emulated-flex-gap > * {
margin: var(--gap) 0 0 var(--gap);
@domosedov
domosedov / react-typescript-merge-refs.ts
Last active December 13, 2021 17:17
React Typescript merge refs util
import type { LegacyRef, MutableRefObject, RefCallback } from 'react'
/**
* @example <div ref={mergeRefs(ref, innerRef)} />
*/
export default function mergeRefs<T = any>(
refs: Array<MutableRefObject<T> | LegacyRef<T>>,
): RefCallback<T> {
return value => {
refs.forEach(ref => {
@domosedov
domosedov / box.tsx
Last active November 10, 2021 12:59
React TailwindCSS component example
import type { FC, HTMLAttributes } from "react";
type BoxProps = {
as?: keyof JSX.IntrinsicElements;
} & HTMLAttributes<HTMLOrSVGElement>;
export const Box: FC<BoxProps> = ({ as: Component = "div", ...props }) => {
return <Component {...props} />;
};
@domosedov
domosedov / js_roadmap.md
Created August 15, 2021 14:54
JavaScript Roadmap

JavaScript Roadmap by Domosedov

1. Основы

  • Основные типы и структуры данных

    • number, string, boolean, undefined
    • object, array, null
    • symbol, bigint, ...
  • типы переменных

@domosedov
domosedov / effector_snippets.js
Created August 17, 2021 17:34
Effector.js Snippets
// get data from clock & source
guard({
source: sample(
$source,
clock,
(source, clock) => ({ source, clock })
),
})
@domosedov
domosedov / nextjs_use_effector_scope.ts
Last active February 7, 2022 06:44
Effector Snippets
import * as React from "react";
import type { Scope } from "effector";
import { fork, serialize } from "effector";
let clientScope: Scope;
const initializeScope = (initialData: Record<string, unknown>) => {
let scope = fork({
values: {
...(clientScope ? serialize(clientScope) : {}),