Skip to content

Instantly share code, notes, and snippets.

View TimraWork's full-sized avatar
🤚
Hi) Му name is Elmira

Timra TimraWork

🤚
Hi) Му name is Elmira
View GitHub Profile
@TimraWork
TimraWork / .htaccess
Created November 1, 2021 05:02 — forked from nixta/.htaccess
.htaccess to add CORS to your website
# Add these three lines to CORSify your server for everyone.
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET,PUT,POST,DELETE"
Header set Access-Control-Allow-Headers "Content-Type, Authorization"
@TimraWork
TimraWork / Component.tsx
Last active July 2, 2021 07:21
React(typescript) - custom hook useRequest with axios + loading, error states
// using custom hook in functional component
const Component: React.FC = () => {
const { requestStatus, sendRequest, removeStatusData } = useRequest();
useEffect(() => {
if(props) sendRequest(getRecipientNameRequest(params)); // using sendRequest custom hook
}, [props]); // eslint-disable-line
useEffect(() => {
removeStatusData(); // remove status data if we need to clear data
@TimraWork
TimraWork / api.ts
Last active July 2, 2021 07:05
React(typescript) - custom hook useFetch with axios
export const instance = axios.create({ baseURL: "https://geolocation-db.com/json/f9902210-97f0-11eb-a459-b997d30983f1" });
export const getBannersRequest = () => instance.get(`background-image`);
@TimraWork
TimraWork / axios.tsx
Last active June 17, 2021 09:42
React axios request, useEffect
const [data, setData] = useState<IDepositCalcData[]>([]);
const [error, setError] = useState(" ");
const [alert, setAlert] = useState("");
const [isLoading, setIsLoading] = useState(false);
try {
const result = await depositCalcRequest(unFormatSum(amount), currentDeposit.id, currentDeposit.capitalization);
if(result.data){
setData(result.data.data);
@TimraWork
TimraWork / gist:f3da1097bd57239a827d6843586d894f
Created February 27, 2021 20:07
FullScreen - фулсткрин
interface FsDocument extends HTMLElement {
msRequestFullscreen?: () => void;
webkitRequestFullScreen?: () => void;
mozRequestFullScreen?: () => void;
}
export function BtnFullScreen() {
const FullscreenIconClickHandler = () => {
const target = document.querySelector<FsDocument>('.game');
if (target && target.requestFullscreen) target.requestFullscreen();
@TimraWork
TimraWork / audio.js
Created February 26, 2021 15:08
JS Audio
// for class coomponents
if (this.audio) {
this.audio.pause();
}
this.audio = new Audio('audio_url');
this.audio.play();
// for functional components
const audioUrl = xIsNext ? 'https://timra.ru/portfolio/audio/cross.mp3' : 'https://timra.ru/portfolio/audio/zero.mp3';
@TimraWork
TimraWork / tsRedux.js
Created February 1, 2021 09:15
Redux - add to project with simple settings
npm i -D redux react-redux @types/react-redux redux-localstorage-simple
// --- --- --- --- --- --- --- --- STORE.js BEGIN --- --- --- --- --- --- --- ---
import {createStore, compose, applyMiddleware} from 'redux';
import rootReducer from './reducers';
import {save} from 'redux-localstorage-simple';
// /* eslint-disable no-underscore-dangle */
const composeEnhancers =
process.env.NODE_ENV !== 'production' && typeof window === 'object' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
@TimraWork
TimraWork / api.ts
Last active January 31, 2021 15:36
Ts(TypeScript) - Fetch запрос async/await
interface HttpResponse<T> extends Response {
parsedBody?: T;
status: number;
redirect?: boolean;
}
interface IPost {
title?: string;
body?: string;
}
@TimraWork
TimraWork / react-redux-container-class.jsx
Created January 28, 2021 10:21
React - шаблон умного компонента контейнера (который имеет доступ к стору)
import React, { Component } from 'react';
import { connect } from 'react-redux';
import './TopicsScreen.css';
class TopicsScreen extends Component {
render() {
return (
<h2>Where are my topics?</h2>
);
}
// Файл "tsconfig.json":
// - устанавливает корневой каталог проекта TypeScript;
// - выполняет настройку параметров компиляции;
// - устанавливает файлы проекта.
// Присутствие файла "tsconfig.json" в папке указывает TypeScript, что это корневая папка проекта.
// Внутри "tsconfig.json" указываются настройки компилятора TypeScript и корневые файлы проекта.
// Программа компилятора "tsc" ищет файл "tsconfig.json" сначала в папке, где она расположена, затем поднимается выше и ищет в родительских папках согласно их вложенности друг в друга.
// Команда "tsc --project C:\path\to\my\project\folder" берет файл "tsconfig.json" из папки, расположенной по данному пути.
// Файл "tsconfig.json" может быть полностью пустым, тогда компилятор скомпилирует все файлы с настройками заданными по умолчанию.
// Опции компилятора, перечисленные в командной строке перезаписывают собой опции, заданные в файле "tsconfig.json".