Skip to content

Instantly share code, notes, and snippets.

View 3cL1p5e7's full-sized avatar

Roman Belov 3cL1p5e7

View GitHub Profile
\((?!\')(?:[^()]|\((?:[^()]|\((?:[^()]|\((?:[^()]|\((?:[^()]|\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\))*\))*\))*\))*\))*(?<!\')\)
import React from 'react';
import { cn } from '@bem-react/classname';
// Суть в том, что ListItem с дополнительной UI логикой типа disabled пригодится в будущем еще много где
// И в будущем ляжет в UIKIT
const cls = cn('list-item');
export interface ListItemProps<T extends keyof React.ReactHTML = 'li'>
extends Omit<React.HTMLAttributes<T>, 'onClick'> {
disabled?: boolean;
@3cL1p5e7
3cL1p5e7 / useUploader.tsx
Created March 23, 2022 17:53
IC certified assets uploader hook
import {ActorSubclass} from '@dfinity/agent';
import { useCallback, useEffect, useState } from 'react';
import cryptoJS from 'crypto-js';
import type { _SERVICE } from 'PATH_TO_SERTIFIED_ASSETS_TS_IDL';
export interface UseUploaderProps {
canister: ActorSubclass<_SERVICE>;
chunkSize?: number;
chunksPerOperation?: number;
progress?(stats: Stats): any;
import * as React from 'react';
import styled from 'styled-components';
export type AddComponentProps<Props, Component extends React.ElementType> = Props & {
component?: Component;
} & Omit<React.ComponentProps<Component>, 'component' | keyof Props>;
// example 1
const TestComponent = <C extends React.ElementType = 'button'>(
p: AddComponentProps<{ text: number }, C>
import styled from 'styled-components';
import { AddComponentProps } from '@midhub/components/dist/utils/AddComponentProps';
// example 1
const TestComponent = <C extends React.ElementType = 'button'>(
p: AddComponentProps<{ text: number }, C>
) => <span>{p.text}</span>;
const TestComponentStyled = styled(TestComponent)``;
#!/usr/bin/env sh
set -e
sed -i 's=\$HOSTNAME=https://'${HOSTNAME:-localhost}'=g' /usr/share/nginx/html/index.html /usr/share/nginx/html/*.js
exec nginx -g "daemon off;"
import {Component} from 'react';
import PropTypes from 'prop-types';
import block from 'bem-cn';
import './index.sass';
const b = block('');
export default class Component1 extends Component {
static propTypes = {
className: PropTypes.string,
import {
camelCasePropNamesFormatter
} from 'services/utils';
class GoogleApi {
static errorMessages = [
{
message: 'popup_closed_by_user',
isError: false
}
version: "3"
services:
web:
image: // image_name
command: ['npm', 'run', 'server']
restart: always
deploy:
restart_policy:
condition: any
{
"setupFiles": [
"./test/setup-jest.js"
],
"moduleNameMapper": {
"^services/GoogleApi(.*)$": "<rootDir>/test/mocks/GoogleApi",
"\\.(css|sass|jpe?g|svg|png)$": "identity-obj-proxy",
"^components(.*)$": "<rootDir>/app/components/$1",
"^modules(.*)$": "<rootDir>/app/modules/$1",
"^pages(.*)$": "<rootDir>/app/pages/$1",