mirror of
https://github.com/outline/outline.git
synced 2026-06-13 11:25:03 +03:00
50759d40e8
* 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>
48 lines
894 B
TypeScript
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;
|