mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-30 07:05:24 +00:00
fix: wake other clients after a sync push (Plugin-Sync#1)
This commit is contained in:
1 parent
7493c0aa17
commit
691896db2d
3 files changed
+9
-2
No files matched your search
@@ -161,7 +161,7 @@ async function reconcileListeners(): Promise<void> {
|
||||
}
|
||||
}
|
||||
|
||||
function notifyListeners(userId: string): void {
|
||||
export function notifyListeners(userId: string): void {
|
||||
const set = listeners.get(userId);
|
||||
if (!set) return;
|
||||
for (const res of set) {
|
||||
|
||||
@@ -25,7 +25,7 @@ import {
|
||||
} from "../store.js";
|
||||
import { allocateSeq, getRecord, putRecord, recordKey } from "../records.js";
|
||||
import { orderSelfReferences } from "../wire.js";
|
||||
import { reconcileUser } from "./feed.js";
|
||||
import { markChanged, notifyListeners, reconcileUser } from "./feed.js";
|
||||
|
||||
export interface PushOp {
|
||||
entityType: string;
|
||||
@@ -278,6 +278,12 @@ export async function applyPush(
|
||||
|
||||
// Refresh the snapshot so the next pull serves what was just written.
|
||||
await reconcileUser(userId, { force: true });
|
||||
// The reconcile finds nothing new, since the push wrote the records itself,
|
||||
// so tell this user's other clients, and other users who may share a row.
|
||||
if ([...results.values()].some((result) => result.status === "ok")) {
|
||||
notifyListeners(userId);
|
||||
markChanged();
|
||||
}
|
||||
return ops.map(
|
||||
(op) =>
|
||||
results.get(recordKey(op.entityType, op.syncId)) ?? {
|
||||
|
||||
Reference in new issue
Block a user