- {:else if viewer_type === "abuse"}
-
- {:else if viewer_type === "image"}
-
- {:else if viewer_type === "video"}
-
- {:else if viewer_type === "audio"}
-
- {:else if viewer_type === "pdf"}
-
- {:else if viewer_type === "text"}
-
- {:else if viewer_type === "file"}
-
- {/if}
-
-
-
diff --git a/svelte/src/file_viewer/FileStats.svelte b/svelte/src/file_viewer/FileStats.svelte
index ca38b24..130e16b 100644
--- a/svelte/src/file_viewer/FileStats.svelte
+++ b/svelte/src/file_viewer/FileStats.svelte
@@ -16,7 +16,7 @@ let socket = null
let error_msg = ""
$: update_stats(file.id)
-let update_stats = (id) => {
+let update_stats = async id => {
if (id === "" || id == "demo") {
return
}
diff --git a/svelte/src/file_viewer/FileViewer.svelte b/svelte/src/file_viewer/FileViewer.svelte
index 3f69363..0e9c23a 100644
--- a/svelte/src/file_viewer/FileViewer.svelte
+++ b/svelte/src/file_viewer/FileViewer.svelte
@@ -5,7 +5,7 @@ import { file_struct, list_struct, file_set_href } from "./FileUtilities.svelte"
import Modal from "../util/Modal.svelte";
import PixeldrainLogo from "../util/PixeldrainLogo.svelte";
import DetailsWindow from "./DetailsWindow.svelte";
-import FilePreview from "./FilePreview.svelte";
+import FilePreview from "./viewers/FilePreview.svelte";
import ListNavigator from "./ListNavigator.svelte";
import FileStats from "./FileStats.svelte";
import EditWindow from "./EditWindow.svelte";
@@ -29,6 +29,7 @@ let view = "" // file or gallery
let file = file_struct
let list = list_struct
let is_list = false
+let file_preview
let button_home
let list_navigator
@@ -167,9 +168,11 @@ const open_file_index = async index => {
if (view !== "file") {
view = "file"
- await tick() // Wait for the ListNavigator to render
+ await tick() // Wait for the file_preview and list_navigator to render
}
+ file_preview.set_file(file)
+
if (is_list) {
// Update the URL
location.replace("#item=" + index)
@@ -449,7 +452,7 @@ const keyboard_event = evt => {
{#if view === "file"}
{ if (list_navigator) { list_navigator.prev() }}}
on:next={() => { if (list_navigator) { list_navigator.next() }}}>
diff --git a/svelte/src/file_viewer/ListNavigator.svelte b/svelte/src/file_viewer/ListNavigator.svelte
index 2ebb3b6..b9c1871 100644
--- a/svelte/src/file_viewer/ListNavigator.svelte
+++ b/svelte/src/file_viewer/ListNavigator.svelte
@@ -4,6 +4,7 @@ import { createEventDispatcher } from "svelte";
let dispatch = createEventDispatcher()
export let files = []
+export let shuffle = false
let file_list_div
let selected_file_index = 0
@@ -24,14 +25,19 @@ export const rand_item = () => {
// Avoid viewing the same file multiple times
let rand
do {
- rand = Math.round(Math.random() * files.length)
+ rand = Math.floor(Math.random() * files.length)
console.log("rand is " + rand)
} while(history.indexOf(rand) > -1)
- set_item(rand)
+ select_item_event(rand)
}
-export let shuffle = false
+// select_item_event signals to the FileViewer that the file needs to be
+// changed. The FileViewer then calls set_item if the change has been approved.
+// ListNavigator cannot call set_item itself because it will cause a loop.
+const select_item_event = idx => {
+ dispatch("set_file", idx)
+}
export const set_item = idx => {
// Remove the class from the previous selected file
@@ -68,13 +74,6 @@ export const set_item = idx => {
}
animateScroll(start, 0)
}
-
-// select_item signals to the FileViewer that the file needs to be changed. The
-// FileViewer then calls set_item if the change has been approved. ListNavigator
-// cannot call set_item itself because it will cause a loop.
-const select_item_event = idx => {
- dispatch("set_file", idx)
-}
+
+ Your download speed is currently limited to 4 MiB/s. Downloading this
+ file for free will take at least
+ {formatDuration((file.size/4194304)*1000)} (under ideal conditions).
+ You can
+
+ upgrade to Pro
+
+ to download at the fastest speed available.
+