fix(metadata): fixed changing cover image in Readest apps, closes #2402 (#2410)

This commit is contained in:
Huang Xin
2025-11-06 03:43:42 +08:00
committed by GitHub
parent 5a3114de48
commit 04a3030b79
2 changed files with 19 additions and 14 deletions
@@ -151,9 +151,10 @@ const BookDetailEdit: React.FC<BookDetailEditProps> = ({
const selectedFile = result.files[0]!;
if (selectedFile.path && appService) {
const filePath = selectedFile.path;
const imageUrl = await appService.getCachedImageUrl(filePath);
onFieldChange('coverImageFile', filePath);
onFieldChange('coverImageUrl', await appService.getCachedImageUrl(filePath));
setNewCoverImageUrl(filePath);
onFieldChange('coverImageUrl', imageUrl);
setNewCoverImageUrl(imageUrl);
} else if (selectedFile.file) {
const coverImageBlobUrl = URL.createObjectURL(selectedFile.file);
onFieldChange('coverImageBlobUrl', coverImageBlobUrl);
@@ -57,24 +57,28 @@ export const useMetadataEdit = (metadata: BookMetadata | null) => {
return;
}
const newMeta = { ...editedMeta } as { [key: string]: unknown };
switch (field) {
case 'subject':
newMeta['subject'] = value ? value.split(/,|;||、/).map((s) => s.trim()) : [];
break;
default:
newMeta[field] = value;
}
setEditedMeta((prevMeta) => {
const newMeta = { ...prevMeta } as { [key: string]: unknown };
switch (field) {
case 'subject':
newMeta['subject'] = value ? value.split(/,|;||、/).map((s) => s.trim()) : [];
break;
default:
newMeta[field] = value;
}
return newMeta as BookMetadata;
});
setEditedMeta(newMeta as BookMetadata);
if (value !== undefined) {
handleFieldValidation(field, value);
}
if (fieldSources[field]) {
const newSources = { ...fieldSources };
delete newSources[field];
setFieldSources(newSources);
setFieldSources((prevSources) => {
const newSources = { ...prevSources };
delete newSources[field];
return newSources;
});
}
};