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 / 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 / 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 / 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 / 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 / fix-jumping-scrollbar.css
Created April 21, 2021 14:58
Fix jumping scrollbar
html {
width: 100vw;
overflow-x: hidden;
}
@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 / 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 / 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 / .htaccess
Created June 8, 2020 20:13
For React with WP API
<IfModule mod_rewrite.c>
RewriteRule ^(api)($|/) - [L]
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.html [L]
</IfModule>
@domosedov
domosedov / formdata-to-string.js
Created June 7, 2020 12:44
Convert FormData to Query String
function handleSubmit(event) {
event.preventDefault();
const formData = new FormData(event.target);
const data = [...formData.entries()];
const asString = data
.map(x => `${encodeURIComponent(x[0])}=${encodeURIComponent(x[1])}`)
.join('&');
console.log(asString);
}