This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const queryString = (params) => { | |
const qs = String(new URLSearchParams(params)); | |
return qs ? `?${qs}` : ""; | |
}; | |
const joinBase = (url, baseUrl) => | |
`${baseUrl.replace(/\/$/, "")}/${url.replace(/^\/|\/$/, "")}/`; | |
const contentTypeJson = { "Content-Type": "application/json" }; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Сам компонент модалки при этом будет выглядеть примерно так: | |
// ... | |
const onSubmit = () => { | |
closeModal(); | |
saveNameAction(); | |
}; | |
// Component |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { | |
notEmpty, | |
booleanType, | |
numberType, | |
numberMin, | |
numberMax, | |
numberGt, | |
numberLt, | |
numberBetween, | |
integerType, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use strict'; | |
const queryString = (params) => { | |
const qs = String(new URLSearchParams(params)); | |
return qs ? `?${qs}` : ""; | |
}; | |
const joinBase = (url, baseUrl) => | |
`${baseUrl.replace(/\/$/, "")}/${url.replace(/^\/|\/$/, "")}/`; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const round = (number: number, fractionDigits = 0): number => { | |
const digits = 10 ** fractionDigits; | |
const value = number * digits * (1 + Number.EPSILON); | |
return Math.round(value) / digits; | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const cached = (fn) => { | |
const cache = new Map(); | |
return function cachedFn(...args) { | |
const input = JSON.stringify(args); | |
if (cache.has(input)) { | |
return cache.get(input); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type ReadableConfig = { | |
separator?: string; | |
unit?: string; | |
formatFn?: (value: number) => string; | |
fractional?: boolean; | |
}; | |
// Sorted from big to small | |
// See: https://www.bipm.org/en/measurement-units | |
const si = [ |
OlderNewer