previews
Description
Optional. Defines how previews are generated for a fileUsage
previews?: (
file: IParsedEntity | { type: "search" | "multiple" | "none" },
width: number,
height: number
) => string | null;
Parameters
The property is a function that takes the following parameters:
file- (required) an object representing the entity for which the preview is generated. It can be:IParsedEntity- a file or folder object with the next parameters:id– (required) unique identifier of the file or foldertype- (optional) it can be "file" | "folder"` that indicates whether the entity is a file or foldersize– (optional) the size of the file in bytes (folders may omit this)lazy– (optional) iftrue, children are loaded on demanddate– (optional) last modification or creation dateparent– (required) ID of the parent foldername– (required) the name of the file or folderext– (required) file extension; empty string for foldersopen– (optional) whether the folder is expanded in the UIdata– (optional) nested children (if any), each with the same structure asfile[key: string]: any– additional metadata fields provided by the backend Or
type- preview state that can be "search" | "multiple" | "none"
width- (required) the width of the generated preview in pixelsheight- (required) the height of the generated preview in pixels
The previews function should return a string, which is the URL of the generated preview image.
Example
You can specify a function that returns a path to the preview according to the passed parameters. Do not forget to define the previews property inside the Filemanager tag. About the icon property see here: icons
<script>
import { Filemanager } from "@svar-ui/svelte-filemanager";
const server = ""https://some-backend-url";
function previewURL(file, width, height) {
if (file.type != "image") return iconsURL(file, "big");
return (
server +
`/preview?width=${width}&height=${height}&id=${encodeURIComponent(
file.id
)}`
);
}
</script>
<Filemanager
data={rawData}
previews={previewURL}
/>