Merge branch 'main' into separate-uploads

pull/253/head
Lorenzo Palaia 8 months ago committed by GitHub
commit c459ccac36
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -36,7 +36,7 @@
"@tanstack/react-query": "^5.55.2",
"autoprefixer": "^10.4.20",
"debug": "^4.3.6",
"express": "^4.19.2",
"express": "^5.0.0",
"ioredis": "^5.4.2",
"next": "^15.1.3",
"next-themes": "^0.4.4",

File diff suppressed because it is too large Load Diff

@ -38,7 +38,7 @@ async function generateShortSlugUntilUnique(
checkExists: (key: string) => Promise<boolean>,
): Promise<string> {
for (let i = 0; i < config.shortSlug.maxAttempts; i++) {
const slug = generateShortSlug()
const slug = await generateShortSlug()
const exists = await checkExists(getShortSlugKey(slug))
if (!exists) {
return slug

@ -53,7 +53,7 @@ export default function Uploader({
return (
<>
<div className="flex w-full items-center">
<div className="flex-none mr-4">
<div className="flex-none mr-4 bg-white p-2">
<QRCode value={shortURL ?? ''} size={QR_CODE_SIZE} />
</div>
<div className="flex-auto flex flex-col justify-center space-y-2">

@ -86,6 +86,7 @@ export function useDownloader(uploaderPeerID: string): {
break
case MessageType.Info:
setFilesInfo(message.files)
setIsPasswordRequired(false)
break
case MessageType.Chunk:
processChunk.current?.(message)

@ -25,12 +25,17 @@ function generateRandomWords(
}
const getRandomInt = (max: number): number => {
const buffer = new Uint32Array(1)
const limit = 4294967295 - (4294967295 % max) // uint32 max
let buffer = new Uint32Array(1)
do {
if (typeof window !== 'undefined' && window.crypto) {
window.crypto.getRandomValues(buffer)
} else {
crypto.randomFillSync(buffer)
}
} while (buffer[0] >= limit)
return buffer[0] % max
}
@ -44,15 +49,12 @@ function generateRandomWords(
})
}
export const generateShortSlug = (): string => {
let result = ''
for (let i = 0; i < config.shortSlug.numChars; i++) {
result +=
config.shortSlug.chars[
Math.floor(Math.random() * config.shortSlug.chars.length)
]
}
return result
export const generateShortSlug = async (): Promise<string> => {
const parts = await generateRandomWords(
config.shortSlug.chars.split(''),
config.shortSlug.numChars,
)
return parts.join('')
}
export const generateLongSlug = async (): Promise<string> => {

Loading…
Cancel
Save