fix: separate resource previews from downloads
This commit is contained in:
28
src/App.tsx
28
src/App.tsx
@@ -308,7 +308,7 @@ export function OneNoteApplication({
|
||||
}
|
||||
};
|
||||
|
||||
const loadSelectedResource = useCallback(
|
||||
const previewSelectedResource = useCallback(
|
||||
async (resourceId: string): Promise<OneNoteResourcePayloadDto> => {
|
||||
const client = activeClient.current;
|
||||
if (!client || state.phase !== 'loaded') {
|
||||
@@ -317,7 +317,7 @@ export function OneNoteApplication({
|
||||
'The local parser session is no longer available.'
|
||||
);
|
||||
}
|
||||
const response = await client.getResource(
|
||||
const response = await client.getResourcePreview(
|
||||
state.source.sessionId,
|
||||
resourceId,
|
||||
state.source.kind === 'onepkg' ? selectedSectionId : undefined
|
||||
@@ -335,7 +335,25 @@ export function OneNoteApplication({
|
||||
|
||||
const downloadSelectedResource = useCallback(
|
||||
async (resourceId: string, suggestedName?: string): Promise<void> => {
|
||||
const resource = await loadSelectedResource(resourceId);
|
||||
const client = activeClient.current;
|
||||
if (!client || state.phase !== 'loaded') {
|
||||
throw new WorkerClientError(
|
||||
'session-not-available',
|
||||
'The local parser session is no longer available.'
|
||||
);
|
||||
}
|
||||
const response = await client.getResourceDownload(
|
||||
state.source.sessionId,
|
||||
resourceId,
|
||||
state.source.kind === 'onepkg' ? selectedSectionId : undefined
|
||||
);
|
||||
if (response.type === 'failure') {
|
||||
throw new WorkerClientError(
|
||||
response.error.code,
|
||||
response.error.message
|
||||
);
|
||||
}
|
||||
const resource = response.resource;
|
||||
const filename = safeDownloadFilename(
|
||||
resource.filename ??
|
||||
suggestedName ??
|
||||
@@ -343,7 +361,7 @@ export function OneNoteApplication({
|
||||
);
|
||||
downloadBrowserFile(resource.bytes, resource.mediaType, filename);
|
||||
},
|
||||
[loadSelectedResource]
|
||||
[selectedSectionId, state]
|
||||
);
|
||||
|
||||
const exportLoadedSource = useCallback(
|
||||
@@ -464,7 +482,7 @@ export function OneNoteApplication({
|
||||
error={
|
||||
pageState.phase === 'error' ? pageState.message : undefined
|
||||
}
|
||||
loadResource={loadSelectedResource}
|
||||
previewResource={previewSelectedResource}
|
||||
downloadResource={downloadSelectedResource}
|
||||
/>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user