File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ export type SignerLike = {
2626export 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
116137export const getFileSigners = ( file : FileLike ) : SignerLike [ ] => {
117138 if ( Array . isArray ( file . signers ) && file . signers . length > 0 ) {
You can’t perform that action at this time.
0 commit comments