mirror of
https://github.com/immich-app/immich.git
synced 2025-12-19 01:11:07 +03:00
feat: upload backups
This commit is contained in:
@@ -43,19 +43,23 @@ export const addDummyItems = () => {
|
||||
|
||||
export const uploadExecutionQueue = new ExecutorQueue({ concurrency: 2 });
|
||||
|
||||
type FilePickerParam = { multiple?: boolean; extensions?: string[] };
|
||||
type FileUploadParam = { multiple?: boolean; albumId?: string };
|
||||
|
||||
export const openFileUploadDialog = async (options: FileUploadParam = {}) => {
|
||||
const { albumId, multiple = true } = options;
|
||||
const extensions = uploadManager.getExtensions();
|
||||
export const openFilePicker = async (options: FilePickerParam = {}) => {
|
||||
const { multiple = true, extensions } = options;
|
||||
|
||||
return new Promise<string[]>((resolve, reject) => {
|
||||
return new Promise<File[]>((resolve, reject) => {
|
||||
try {
|
||||
const fileSelector = document.createElement('input');
|
||||
|
||||
fileSelector.type = 'file';
|
||||
fileSelector.multiple = multiple;
|
||||
fileSelector.accept = extensions.join(',');
|
||||
|
||||
if (extensions) {
|
||||
fileSelector.accept = extensions.join(',');
|
||||
}
|
||||
|
||||
fileSelector.addEventListener(
|
||||
'change',
|
||||
(e: Event) => {
|
||||
@@ -63,9 +67,9 @@ export const openFileUploadDialog = async (options: FileUploadParam = {}) => {
|
||||
if (!target.files) {
|
||||
return;
|
||||
}
|
||||
const files = Array.from(target.files);
|
||||
|
||||
resolve(fileUploadHandler({ files, albumId }));
|
||||
const files = Array.from(target.files);
|
||||
resolve(files);
|
||||
},
|
||||
{ passive: true },
|
||||
);
|
||||
@@ -78,6 +82,17 @@ export const openFileUploadDialog = async (options: FileUploadParam = {}) => {
|
||||
});
|
||||
};
|
||||
|
||||
export const openFileUploadDialog = async (options: FileUploadParam = {}) => {
|
||||
const { albumId, multiple = true } = options;
|
||||
const extensions = uploadManager.getExtensions();
|
||||
const files = await openFilePicker({
|
||||
multiple,
|
||||
extensions,
|
||||
});
|
||||
|
||||
return fileUploadHandler({ files, albumId });
|
||||
};
|
||||
|
||||
type FileUploadHandlerParams = Omit<FileUploaderParams, 'deviceAssetId' | 'assetFile'> & {
|
||||
files: File[];
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user