|
|
|
export const modalSizes = {
|
|
|
|
xs: {
|
|
|
|
width: 'min(calc(100vw - 32px), 448px)',
|
|
|
|
height: 'min(90vh, 448px)',
|
|
|
|
},
|
|
|
|
sm: {
|
|
|
|
width: 'min(calc(100vw - 32px), 640px)',
|
|
|
|
height: 'min(90vh, 424px)',
|
|
|
|
},
|
|
|
|
md: {
|
|
|
|
width: 'min(80vw, 900px)',
|
|
|
|
height: 'min(90vh, 540px)',
|
|
|
|
},
|
|
|
|
lg: {
|
|
|
|
width: 'min(80vw, 1280px)',
|
|
|
|
height: 'min(90vh, 864px)',
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Creates a promise that resolves after a specified delay.
|
|
|
|
*
|
|
|
|
* @param ms - The delay in milliseconds.
|
|
|
|
* @returns A promise that resolves after the specified delay.
|
|
|
|
*
|
|
|
|
* @example
|
|
|
|
* ```ts
|
|
|
|
* // Wait for 2 seconds
|
|
|
|
* await delay(2000);
|
|
|
|
* console.log('2 seconds have passed');
|
|
|
|
* ```
|
|
|
|
*/
|
|
|
|
export const ncDelay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms))
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Generates an array of a given length with content generated by the provided callback function.
|
|
|
|
*
|
|
|
|
* @param length - The length of the array to be created.
|
|
|
|
* @param contentCallback - Optional function to generate content for each index. Defaults to using the index as content.
|
|
|
|
* @returns The generated array with content.
|
|
|
|
*
|
|
|
|
* @example
|
|
|
|
* // Generate an array of length 5 with default content
|
|
|
|
* const array = ncArrayFrom(5);
|
|
|
|
* console.log(array); // ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5']
|
|
|
|
*
|
|
|
|
* @example
|
|
|
|
* // Generate an array of length 3 with custom content
|
|
|
|
* const customArray = ncArrayFrom(3, (i) => `Custom Content ${i}`);
|
|
|
|
* console.log(customArray); // ['Custom Content 0', 'Custom Content 1', 'Custom Content 2']
|
|
|
|
*/
|
|
|
|
export const ncArrayFrom = <T>(
|
|
|
|
length: number,
|
|
|
|
contentCallback: (i: number) => T = (i) => `Item ${i + 1}` as unknown as T,
|
|
|
|
): T[] => {
|
|
|
|
return Array.from({ length }, (_, i) => contentCallback(i))
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Checks if a string contains Unicode emojis.
|
|
|
|
*
|
|
|
|
* @param emoji - The string to check.
|
|
|
|
* @returns A boolean indicating if the string contains Unicode emojis.
|
|
|
|
*
|
|
|
|
* @example
|
|
|
|
* ```ts
|
|
|
|
* const hasEmoji = isUnicodeEmoji('Hello World 😊');
|
|
|
|
* console.log(hasEmoji); // Output: true
|
|
|
|
* ```
|
|
|
|
*/
|
|
|
|
export const isUnicodeEmoji = (emoji: string) => {
|
|
|
|
return !!emoji?.match(/(\p{Emoji}|\p{Extended_Pictographic})/gu)
|
|
|
|
}
|