overleaf-cep/services/web/frontend/js/features/file-tree/util/is-name-unique-in-folder.ts
David 2365d8c199 Merge pull request #22836 from overleaf/dp-filetree-typescript
Convert file-tree util files to typescript

GitOrigin-RevId: bdf8d0655a543a216f028bc8477c3ee47aba5566
2025-01-22 09:04:56 +00:00

42 lines
1.1 KiB
TypeScript

import { findInTreeOrThrow } from '../util/find-in-tree'
import { Folder } from '../../../../../types/folder'
import { Doc } from '../../../../../types/doc'
import { FileRef } from '../../../../../types/file-ref'
export function isNameUniqueInFolder(
tree: Folder,
parentFolderId: string,
name: string
): boolean {
return !(
findFileByNameInFolder(tree, parentFolderId, name) ||
findFolderByNameInFolder(tree, parentFolderId, name)
)
}
export function findFileByNameInFolder(
tree: Folder,
parentFolderId: string,
name: string
): Doc | FileRef | undefined {
if (tree._id !== parentFolderId) {
tree = findInTreeOrThrow(tree, parentFolderId).entity as Folder
}
return (
tree.docs.find(entity => entity.name === name) ||
tree.fileRefs.find(entity => entity.name === name)
)
}
export function findFolderByNameInFolder(
tree: Folder,
parentFolderId: string,
name: string
): Folder | undefined {
if (tree._id !== parentFolderId) {
tree = findInTreeOrThrow(tree, parentFolderId).entity as Folder
}
return tree.folders.find(entity => entity.name === name)
}