|
@@ -765,6 +765,7 @@ export const useHandleLibrary = (
|
|
|
initDataPromise.resolve(
|
|
|
promiseTry(migrationAdapter.load)
|
|
|
.then(async (libraryData) => {
|
|
|
+ let restoredData: LibraryItems | null = null;
|
|
|
try {
|
|
|
// if no library data to migrate, assume no migration needed
|
|
|
// and skip persisting to new data store, as well as well
|
|
@@ -773,17 +774,16 @@ export const useHandleLibrary = (
|
|
|
return AdapterTransaction.getLibraryItems(adapter, "load");
|
|
|
}
|
|
|
|
|
|
+ restoredData = restoreLibraryItems(
|
|
|
+ libraryData.libraryItems || [],
|
|
|
+ "published",
|
|
|
+ );
|
|
|
+
|
|
|
// we don't queue this operation because it's running inside
|
|
|
// a promise that's running inside Library update queue itself
|
|
|
const nextItems = await persistLibraryUpdate(
|
|
|
adapter,
|
|
|
- createLibraryUpdate(
|
|
|
- [],
|
|
|
- restoreLibraryItems(
|
|
|
- libraryData.libraryItems || [],
|
|
|
- "published",
|
|
|
- ),
|
|
|
- ),
|
|
|
+ createLibraryUpdate([], restoredData),
|
|
|
);
|
|
|
try {
|
|
|
await migrationAdapter.clear();
|
|
@@ -798,8 +798,8 @@ export const useHandleLibrary = (
|
|
|
console.error(
|
|
|
`couldn't migrate legacy library data: ${error.message}`,
|
|
|
);
|
|
|
- // migration failed, load empty library
|
|
|
- return [];
|
|
|
+ // migration failed, load data from previous store, if any
|
|
|
+ return restoredData;
|
|
|
}
|
|
|
})
|
|
|
// errors caught during `migrationAdapter.load()`
|