feat: consolidate local-first mnote web runtime
This commit is contained in:
@@ -418,11 +418,32 @@ export const createSidebarTreeLiveApplyRuntime = (dependencies = {}) => {
|
||||
|
||||
function applyLocalFolderWatchBatch(payload) {
|
||||
var batch = payload && (payload.payload || payload);
|
||||
if (batch && (batch.fallbackResync === true || batch.requiresResync === true)) {
|
||||
document.documentElement.setAttribute('data-mnote-local-folder-watch-batch-fallback', String(batch.revision || 'resync'));
|
||||
void refreshLocalFolderSidebarSnapshot();
|
||||
return true;
|
||||
}
|
||||
var affectedParents = Array.isArray(batch && batch.affectedParents)
|
||||
? batch.affectedParents
|
||||
: Array.isArray(batch && batch.affected_parents)
|
||||
? batch.affected_parents
|
||||
: [];
|
||||
if (!affectedParents.length) {
|
||||
var changedPaths = Array.isArray(batch && batch.changedPaths)
|
||||
? batch.changedPaths
|
||||
: Array.isArray(batch && batch.changed_paths)
|
||||
? batch.changed_paths
|
||||
: [];
|
||||
affectedParents = changedPaths.map(function(item) {
|
||||
var relativePath = String(item && (item.relativePath || item.relative_path) || '').trim();
|
||||
return { relativePath: parentRelativePathForPath(relativePath), reason: 'derived-from-changed-path' };
|
||||
}).filter(function(parent, index, list) {
|
||||
return index === list.findIndex(function(candidate) { return candidate.relativePath === parent.relativePath; });
|
||||
});
|
||||
if (affectedParents.length) {
|
||||
document.documentElement.setAttribute('data-mnote-local-folder-watch-batch-derived-parents', String(affectedParents.length));
|
||||
}
|
||||
}
|
||||
if (!affectedParents.length) {
|
||||
setTreeLiveApplyError('local_folder_watch_batch_missing_affected_parents');
|
||||
return false;
|
||||
@@ -663,7 +684,7 @@ export const createSidebarTreeLiveApplyRuntime = (dependencies = {}) => {
|
||||
return {
|
||||
userId: currentActorStorageId(),
|
||||
workspaceId: String(currentWorkspaceId() || '').trim() || (rootUri ? 'local:' + rootUri.replace(/^file:\/\//, '').replace(/[^A-Za-z0-9]+/g, '_') : 'default'),
|
||||
sourceKind: String(currentSourceKind() || 'convex_workspace').trim() || 'convex_workspace',
|
||||
sourceKind: String(currentSourceKind() || 'local_folder').trim() || 'local_folder',
|
||||
treeKind: normalizedTreeKind,
|
||||
rootUri: rootUri,
|
||||
scope: scope
|
||||
@@ -685,7 +706,7 @@ export const createSidebarTreeLiveApplyRuntime = (dependencies = {}) => {
|
||||
return SIDEBAR_TREE_VIEW_STATE_KEY
|
||||
.replace('{userId}', encodeURIComponent(scope.userId || 'anonymous'))
|
||||
.replace('{workspaceId}', encodeURIComponent(scope.workspaceId || 'default'))
|
||||
.replace('{sourceKind}', encodeURIComponent(scope.sourceKind || 'convex_workspace'))
|
||||
.replace('{sourceKind}', encodeURIComponent(scope.sourceKind || 'local_folder'))
|
||||
.replace('{treeKind}', encodeURIComponent(scope.treeKind || 'filetree'))
|
||||
.replace('{rootUriHash}', stableTreeViewStateHash(scope.rootUri || ''))
|
||||
.replace('{scopeHash}', stableTreeViewStateHash(scope.scope || 'root'));
|
||||
|
||||
Reference in New Issue
Block a user