diff --git a/components/Breadcrumb.tsx b/components/Breadcrumb.tsx index e8198b1..4eeee48 100644 --- a/components/Breadcrumb.tsx +++ b/components/Breadcrumb.tsx @@ -8,7 +8,7 @@ const Breadcrumb: FunctionComponent<{ query?: ParsedUrlQuery }> = ({ query }) => const { path } = query if (Array.isArray(path)) { return ( -
+
🚩 Home
@@ -26,7 +26,7 @@ const Breadcrumb: FunctionComponent<{ query?: ParsedUrlQuery }> = ({ query }) => } return ( -
+
🚩 Home
diff --git a/components/FileListing.tsx b/components/FileListing.tsx index b5d9ac8..d4e6a52 100644 --- a/components/FileListing.tsx +++ b/components/FileListing.tsx @@ -2,7 +2,7 @@ import axios from 'axios' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { ParsedUrlQuery } from 'querystring' -import { FunctionComponent, useState } from 'react' +import { FunctionComponent, useEffect, useState } from 'react' import { ImageDecorator } from 'react-viewer/lib/ViewerProps' import useSWR from 'swr' @@ -55,20 +55,20 @@ const FileListItem: FunctionComponent<{ }> = ({ fileContent: c }) => { return (
-
+
{/*
{c.file ? c.file.mimeType : 'folder'}
*/}
{c.name}
-
+
{new Date(c.lastModifiedDateTime).toLocaleString(undefined, { dateStyle: 'short', timeStyle: 'short', })}
-
{humanFileSize(c.size)}
+
{humanFileSize(c.size)}
) } @@ -80,7 +80,12 @@ const FileListing: FunctionComponent<{ query?: ParsedUrlQuery }> = ({ query }) = const router = useRouter() const path = queryToPath(query) - const { data, error } = useSWR(`/api?path=${path}`, fetcher) + + const { data, error } = useSWR(`/api?path=${path}`, fetcher, { + revalidateOnFocus: false, + revalidateOnReconnect: false, + }) + if (error) return
Failed to load
if (!data) { return ( @@ -134,9 +139,9 @@ const FileListing: FunctionComponent<{ query?: ParsedUrlQuery }> = ({ query }) = return (
-
Name
-
Last Modified
-
Size
+
Name
+
Last Modified
+
Size
{imagesInFolder.length !== 0 && ( diff --git a/components/previews/AudioPreview.tsx b/components/previews/AudioPreview.tsx index e07deab..d151344 100644 --- a/components/previews/AudioPreview.tsx +++ b/components/previews/AudioPreview.tsx @@ -1,17 +1,32 @@ import { FunctionComponent } from 'react' import ReactPlayer from 'react-player' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' export const AudioPreview: FunctionComponent<{ file: any }> = ({ file }) => { return (
-
{file.name}
- +
+
+ +
+
+
{file.name}
+
+ Last modified:{' '} + {new Date(file.lastModifiedDateTime).toLocaleString(undefined, { + dateStyle: 'short', + timeStyle: 'short', + })} +
+ +
+
) } diff --git a/package-lock.json b/package-lock.json index 418fef2..172927a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "@fortawesome/fontawesome-svg-core": "^1.2.35", "@fortawesome/free-brands-svg-icons": "^5.15.3", "@fortawesome/free-regular-svg-icons": "^5.15.3", + "@fortawesome/free-solid-svg-icons": "^5.15.3", "@fortawesome/react-fontawesome": "^0.1.14", "axios": "^0.21.1", "next": "11.0.0", @@ -177,6 +178,18 @@ "node": ">=6" } }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "5.15.3", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.3.tgz", + "integrity": "sha512-XPeeu1IlGYqz4VWGRAT5ukNMd4VHUEEJ7ysZ7pSSgaEtNvSo+FLurybGJVmiqkQdK50OkSja2bfZXOeyMGRD8Q==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.35" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@fortawesome/react-fontawesome": { "version": "0.1.14", "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.14.tgz", @@ -6107,6 +6120,14 @@ "@fortawesome/fontawesome-common-types": "^0.2.35" } }, + "@fortawesome/free-solid-svg-icons": { + "version": "5.15.3", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.3.tgz", + "integrity": "sha512-XPeeu1IlGYqz4VWGRAT5ukNMd4VHUEEJ7ysZ7pSSgaEtNvSo+FLurybGJVmiqkQdK50OkSja2bfZXOeyMGRD8Q==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.35" + } + }, "@fortawesome/react-fontawesome": { "version": "0.1.14", "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.14.tgz", diff --git a/package.json b/package.json index 14facbb..8af99af 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "@fortawesome/fontawesome-svg-core": "^1.2.35", "@fortawesome/free-brands-svg-icons": "^5.15.3", "@fortawesome/free-regular-svg-icons": "^5.15.3", + "@fortawesome/free-solid-svg-icons": "^5.15.3", "@fortawesome/react-fontawesome": "^0.1.14", "axios": "^0.21.1", "next": "11.0.0", diff --git a/pages/[...path].tsx b/pages/[...path].tsx index 974ce61..3919723 100644 --- a/pages/[...path].tsx +++ b/pages/[...path].tsx @@ -18,7 +18,7 @@ export default function Folders() {
-
+
diff --git a/pages/_app.tsx b/pages/_app.tsx index 7e5cf2f..136444e 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -13,8 +13,8 @@ import { faFileAlt, faFile, faFolder, - faCaretSquareDown, } from '@fortawesome/free-regular-svg-icons' +import { faMusic } from '@fortawesome/free-solid-svg-icons' import { faGithub, faMarkdown } from '@fortawesome/free-brands-svg-icons' import type { AppProps } from 'next/app' @@ -34,7 +34,7 @@ library.add( faFolder, faGithub, faMarkdown, - faCaretSquareDown + faMusic ) function MyApp({ Component, pageProps }: AppProps) { diff --git a/pages/index.tsx b/pages/index.tsx index adddec8..9ed9262 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -15,7 +15,7 @@ export default function Home() {
-
+