Skip to content

Commit 8f7b809

Browse files
fix: resolve nested visible element pdf urls
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
1 parent 46e4bf7 commit 8f7b809

1 file changed

Lines changed: 27 additions & 6 deletions

File tree

src/services/visibleElementsService.ts

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export type SignerLike = {
2626
export type NestedFileLike = {
2727
id?: number | string
2828
name?: string
29+
url?: string | null
2930
file?: string | NestedFileLike | null
3031
metadata?: unknown
3132
visibleElements?: VisibleElementRecord[] | null
@@ -106,12 +107,32 @@ export const isCurrentUserSigner = (signer: SignerLike | null | undefined): sign
106107
&& 'me' in signer
107108
&& signer.me === true
108109

109-
export const getFileUrl = (file: FileLike | null | undefined): string | null =>
110-
typeof file?.file === 'string'
111-
? file.file
112-
: Array.isArray(file?.files) && typeof file.files[0]?.file === 'string'
113-
? file.files[0].file
114-
: null
110+
export const getFileUrl = (file: FileLike | null | undefined): string | null => {
111+
if (typeof file?.file === 'string') {
112+
return file.file
113+
}
114+
115+
if (file?.file && typeof file.file === 'object' && typeof file.file.url === 'string') {
116+
return file.file.url
117+
}
118+
119+
if (typeof file?.url === 'string') {
120+
return file.url
121+
}
122+
123+
if (!Array.isArray(file?.files)) {
124+
return null
125+
}
126+
127+
for (const nestedFile of file.files) {
128+
const nestedFileUrl = getFileUrl(nestedFile)
129+
if (nestedFileUrl) {
130+
return nestedFileUrl
131+
}
132+
}
133+
134+
return null
135+
}
115136

116137
export const getFileSigners = (file: FileLike): SignerLike[] => {
117138
if (Array.isArray(file.signers) && file.signers.length > 0) {

0 commit comments

Comments
 (0)