123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- export const copyToCommand = (
- value: string,
- classSelector?: string,
- cb?: () => void
- ) => {
- const element = classSelector
- ? document.querySelector(`.${classSelector}`)
- : document.body;
- const input = document.createElement('textarea');
- input.value = value;
- element?.appendChild(input);
- input.select();
- if (document.execCommand('copy')) {
- document.execCommand('copy');
- cb && cb();
- }
- element?.removeChild(input);
- };
- export const generateId = (prefix = 'id') =>
- `${prefix}_${Math.random().toString(36).substr(2, 16)}`;
- export const formatNumber = (number: number): string => {
- return new Intl.NumberFormat().format(number);
- };
- /**
- * Only use in dev env
- * Parent component props is optional but required in child component. Need throw some error
- * @param text
- */
- export const throwErrorForDev = (text: string) => {
- throw new Error(text);
- };
- /**
- *
- * @param obj key value pair Array
- * @param key the target you want to find.
- * @returns undefined | string
- */
- export const findKeyValue = (
- obj: { key: string; value: string }[],
- key: string
- ) => obj.find(v => v.key === key)?.value;
- export const generateHashCode = (source: string) => {
- let hash = 0,
- i,
- chr;
- if (source.length === 0) return hash;
- for (i = 0; i < source.length; i++) {
- chr = source.charCodeAt(i);
- hash = (hash << 5) - hash + chr;
- hash |= 0; // Convert to 32bit integer
- }
- return hash.toString();
- };
- export const generateIdByHash = (salt?: string) => {
- return generateHashCode(`${new Date().getTime().toString()}-${salt}`);
- };
|