Files
outline/app/models/FileOperation.ts
T
Hemachandar 50759d40e8 feat: Option to export nested documents (#9679)
* add migration file

* documents.export API

* download dialog

* file ops list item

* export task

* download modal styling

* cleanup

* lint

* Restore individual download actions

---------

Co-authored-by: Tom Moor <tom@getoutline.com>
2026-01-10 21:19:33 -05:00

48 lines
894 B
TypeScript

import { computed, observable } from "mobx";
import type {
FileOperationFormat,
FileOperationState,
FileOperationType,
} from "@shared/types";
import { bytesToHumanReadable } from "@shared/utils/files";
import User from "./User";
import Model from "./base/Model";
import Relation from "./decorators/Relation";
class FileOperation extends Model {
static modelName = "FileOperation";
@observable
state: FileOperationState;
name: string;
error: string | null;
collectionId: string | null;
documentId: string | null;
@observable
size: number;
type: FileOperationType;
format: FileOperationFormat;
@Relation(() => User)
user: User;
@computed
get sizeInMB(): string {
return bytesToHumanReadable(this.size);
}
@computed
get downloadUrl(): string {
return `/api/fileOperations.redirect?id=${this.id}`;
}
}
export default FileOperation;