Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .changeset/25921-readerless-presence-sync-helpers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
'@object-ui/collaboration': patch
'@object-ui/mobile': patch
---

refactor(collaboration,mobile): delete the module-local `createPresenceUpdater` and `requestBackgroundSync` helpers that nothing reads

Clause-②: no
Metadata-protocol: none

Neither name is exported from its package entry (the single `.` export), so no host can import them; the compiled `usePresence.js` and `serviceWorkerSource.js` simply stop carrying the two dead function bodies. Behaviour of every exported name is unchanged.
38 changes: 0 additions & 38 deletions ui/packages/collaboration/src/usePresence.ts
Original file line number Diff line number Diff line change
Expand Up @@ -205,41 +205,3 @@ export function usePresence(
currentUser,
};
}

/**
* Update remote user presence. Call this when receiving presence data
* from other users via the realtime channel.
*
* @returns A function to update or remove a remote user from the presence set.
*/
export function createPresenceUpdater(): {
updateUser: (user: PresenceUser) => void;
removeUser: (userId: string) => void;
getUsers: () => PresenceUser[];
onUsersChange: (callback: (users: Map<string, PresenceUser>) => void) => () => void;
} {
const users = new Map<string, PresenceUser>();
const listeners = new Set<(users: Map<string, PresenceUser>) => void>();

const notify = () => {
listeners.forEach(cb => cb(new Map(users)));
};

return {
updateUser(user: PresenceUser) {
users.set(user.userId, user);
notify();
},
removeUser(userId: string) {
users.delete(userId);
notify();
},
getUsers() {
return Array.from(users.values());
},
onUsersChange(callback: (users: Map<string, PresenceUser>) => void) {
listeners.add(callback);
return () => { listeners.delete(callback); };
},
};
}
12 changes: 0 additions & 12 deletions ui/packages/mobile/src/serviceWorkerSource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,15 +95,3 @@ self.addEventListener('sync', (event) => {
});
`;
}

/**
* Request a one-shot background sync. The page should call this after
* enqueuing offline work so the browser will wake the SW when the
* connection returns. Returns false if Background Sync is unsupported.
*/
export async function requestBackgroundSync(tag = 'objectui-offline-queue'): Promise<boolean> {
if (typeof navigator === 'undefined') return false;
const reg: any = await (navigator as any).serviceWorker?.ready;
if (!reg || !reg.sync) return false;
try { await reg.sync.register(tag); return true; } catch { return false; }
}
Loading