11import { Effect } from "effect" ;
2+ import { LoroDoc } from "loro-crdt" ;
23import { ApiClient } from "../api-client" ;
34import { Dexie } from "../dexie" ;
45import type { WorkspaceTable } from "../schema" ;
56import { TempWorkspace } from "./temp-workspace" ;
67import { WorkspaceManager } from "./workspace-manager" ;
7- import { LoroDoc } from "loro-crdt" ;
88
99export class Sync extends Effect . Service < Sync > ( ) ( "Sync" , {
1010 dependencies : [
@@ -23,8 +23,10 @@ export class Sync extends Effect.Service<Sync>()("Sync", {
2323 push : ( {
2424 snapshot,
2525 workspace,
26+ snapshotId,
2627 } : {
2728 workspace : WorkspaceTable ;
29+ snapshotId : string ;
2830 snapshot : globalThis . Uint8Array ;
2931 } ) =>
3032 Effect . gen ( function * ( ) {
@@ -38,7 +40,7 @@ export class Sync extends Effect.Service<Sync>()("Sync", {
3840 path : {
3941 workspaceId : workspace . workspaceId ,
4042 } ,
41- payload : { clientId, snapshot } ,
43+ payload : { clientId, snapshot, snapshotId } ,
4244 } )
4345 . pipe (
4446 Effect . map ( ( response ) => ( {
@@ -53,6 +55,7 @@ export class Sync extends Effect.Service<Sync>()("Sync", {
5355 payload : {
5456 clientId,
5557 snapshot,
58+ snapshotId,
5659 workspaceId : workspace . workspaceId ,
5760 } ,
5861 } )
0 commit comments