2025-08-04 15:01:36 +01:00
|
|
|
import { useCallback } from 'react';
|
2025-10-28 10:29:36 +00:00
|
|
|
import { useFileActions } from '@app/contexts/FileContext';
|
2025-11-12 14:54:01 +00:00
|
|
|
import type { StirlingFile } from '@app/types/fileContext';
|
2025-08-04 15:01:36 +01:00
|
|
|
|
|
|
|
|
export const useFileHandler = () => {
|
2025-08-21 17:30:26 +01:00
|
|
|
const { actions } = useFileActions();
|
2025-08-04 15:01:36 +01:00
|
|
|
|
2025-11-12 14:54:01 +00:00
|
|
|
const addFiles = useCallback(async (files: File[], options: { insertAfterPageId?: string; selectFiles?: boolean } = {}): Promise<StirlingFile[]> => {
|
2025-09-16 15:08:11 +01:00
|
|
|
// Merge default options with passed options - passed options take precedence
|
|
|
|
|
const mergedOptions = { selectFiles: true, ...options };
|
2025-08-21 17:30:26 +01:00
|
|
|
// Let FileContext handle deduplication with quickKey logic
|
2025-11-12 14:54:01 +00:00
|
|
|
const result = await actions.addFiles(files, mergedOptions);
|
|
|
|
|
return result;
|
2025-08-21 17:30:26 +01:00
|
|
|
}, [actions.addFiles]);
|
2025-08-04 15:01:36 +01:00
|
|
|
|
|
|
|
|
return {
|
2025-09-16 15:08:11 +01:00
|
|
|
addFiles,
|
2025-08-04 15:01:36 +01:00
|
|
|
};
|
2025-08-28 10:56:07 +01:00
|
|
|
};
|