Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
let onClick = null
const usingNativeApp = isMobileApp()
const appInfo = NATIVE_APP_INFOS[slug]
if (usingNativeApp) {
if (nativeAppIsAvailable) {
// If we are on the native app and the other native app is available,
// we open the native app
onClick = AppLinker.openNativeFromNative.bind(this, props)
href = '#'
} else {
// If we are on a native app, but the other native app is not available
// we open the web link, this is done by the href prop. We still
// have to call the prop callback
onClick = AppLinker.openWeb.bind(this, props)
}
} else if (isMobile() && appInfo) {
// If we are on the "mobile web version", we try to open the native app
// if it exists with an universal links. If it fails, we redirect to the web
// version of the requested app
// Only on iOS ATM
if (isAndroid()) {
onClick = AppLinker.openNativeFromWeb.bind(this, props)
} else {
//Since generateUniversalLink can rise an error, let's catch it to not crash
//all the page.
try {
href = generateUniversalLink({ slug, nativePath, fallbackUrl: href })
} catch (err) {
console.error(err)
href = '#'
}
}
const currentFile = files[currentIndex]
const fileCount = files.length
const hasPrevious = currentIndex > 0
const hasNext = currentIndex < fileCount - 1
// this `expanded` property makes the next/previous controls cover the displayed image
const expanded = currentFile && currentFile.class === 'image'
return (
{this.renderViewer(currentFile)}
)
}
getViewerComponentName(file) {
switch (file.class) {
case 'image':
return ImageViewer
case 'audio':
return AudioViewer
case 'video':
return isMobile() ? NoViewer : VideoViewer
case 'pdf':
return PdfJsViewer
case 'text':
return isPlainText(file.mime, file.name) ? TextViewer : NoViewer
default:
return NoViewer
}
}
}
getViewerComponentName(file) {
switch (file.class) {
case 'image':
return ImageViewer
case 'audio':
return AudioViewer
case 'video':
return isMobile() ? NoViewer : VideoViewer
case 'pdf':
return PdfJsViewer
case 'text':
return isPlainText(file.mime, file.name) ? TextViewer : NoViewer
default:
return NoViewer
}
}
}