diff --git a/components/FileListing.tsx b/components/FileListing.tsx index 4b9d582..7635353 100644 --- a/components/FileListing.tsx +++ b/components/FileListing.tsx @@ -5,7 +5,6 @@ import { useClipboard } from 'use-clipboard-copy' import { ParsedUrlQuery } from 'querystring' import { FC, MouseEventHandler, SetStateAction, useEffect, useRef, useState } from 'react' -import { ImageDecorator } from 'react-viewer/lib/ViewerProps' import { useRouter } from 'next/router' import dynamic from 'next/dynamic' @@ -38,9 +37,9 @@ import { DownloadBtnContainer, PreviewContainer } from './previews/Containers' import DownloadButtonGroup from './DownloadBtnGtoup' import type { OdFileObject, OdFolderObject } from '../types' +import Link from 'next/link' // Disabling SSR for some previews (image gallery view, and PDF view) -const ReactViewer = dynamic(() => import('react-viewer'), { ssr: false }) const EPUBPreview = dynamic(() => import('./previews/EPUBPreview'), { ssr: false, }) @@ -204,34 +203,11 @@ const FileListing: FC<{ query?: ParsedUrlQuery }> = ({ query }) => { const onlyOnePage = data && typeof data[0].next === 'undefined' if ('folder' in responses[0]) { - // Image preview rendering preparations - const imagesInFolder: ImageDecorator[] = [] - const imageIndexDict: { [key: string]: number } = {} - let imageIndex = 0 - - // README rendering preparations - let renderReadme = false - let readmeFile = {} - // Expand list of API returns into flattened file data const children = [].concat(...responses.map(r => r.folder.value)) as OdFolderObject['value'] - children.forEach(c => { - if (fileIsImage(c.name)) { - imagesInFolder.push({ - src: c['@microsoft.graph.downloadUrl'], - alt: c.name, - downloadUrl: c['@microsoft.graph.downloadUrl'], - }) - imageIndexDict[c.id] = imageIndex - imageIndex += 1 - } - - if (c.name.toLowerCase() === 'readme.md') { - renderReadme = true - readmeFile = c - } - }) + // Find README.md file to render + const readmeFile = children.find(c => c.name.toLowerCase() === 'readme.md') // Filtered file list helper const getFiles = () => children.filter(c => !c.folder && c.name !== '.password') @@ -337,6 +313,8 @@ const FileListing: FC<{ query?: ParsedUrlQuery }> = ({ query }) => { return ( <> + +
@@ -375,64 +353,14 @@ const FileListing: FC<{ query?: ParsedUrlQuery }> = ({ query }) => {
- - - {imagesInFolder.length !== 0 && ( - { - setImageViewerVisibility(false) - }} - customToolbar={toolbars => { - toolbars[0].render = - toolbars[1].render = - toolbars[2].render = - toolbars[3].render = - toolbars[4].render = - toolbars[9].render = - return toolbars.concat([ - { - key: 'copy', - render: , - onClick: i => { - clipboard.copy(i.alt ? `${getBaseUrl()}/api?path=${path + '/' + i.alt}&raw=true` : '') - toast('Copied image permanent link to clipboard.', { - icon: '👌', - }) - }, - }, - ]) - }} - /> - )} - {children.map(c => (
-
{ - e.preventDefault() + + + + + - if (!c.folder && fileIsImage(c.name)) { - setActiveImageIdx(imageIndexDict[c.id]) - setImageViewerVisibility(true) - } else { - router.push(`${path === '/' ? '' : path}/${encodeURIComponent(c.name)}`) - } - }} - > - -
{c.folder ? (
= ({ query }) => { > {isLoadingMore ? ( <> + Loading ...{' '} - - - - ) : isReachingEnd ? ( No more files @@ -543,7 +452,8 @@ const FileListing: FC<{ query?: ParsedUrlQuery }> = ({ query }) => {
)}
- {renderReadme && ( + + {readmeFile && (