From ec3399ca33d8b2a547dbc3b35ead2035fcbabff6 Mon Sep 17 00:00:00 2001 From: Brian Hicks Date: Sun, 24 May 2020 05:52:07 -0500 Subject: [PATCH] only sync periodically --- src/Main.elm | 19 +++++++++++++------ src/index.js | 4 ++-- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/Main.elm b/src/Main.elm index 4ec7cae..4e728a0 100644 --- a/src/Main.elm +++ b/src/Main.elm @@ -85,7 +85,7 @@ init flags url key = ( model , Batch [ routingEffects - , Batch (List.map StartSyncing settings.syncs) + , Batch (List.map SyncOnce settings.syncs) ] ) @@ -121,6 +121,7 @@ type Msg | GotCurrentTime Posix | PouchDBPutSuccessfully Value | TimerTriggeredSave + | TimerTriggeredSyncAll | FocusedOnEditor | UserClickedNewNote | UserEditedNode String @@ -155,7 +156,7 @@ type Effect | ReplaceUrl Route | Put Value | FocusOnEditor - | StartSyncing Sync + | SyncOnce Sync type UpdatedRevision @@ -234,6 +235,11 @@ update msg model = , Batch (List.map (Put << Database.encode) rows) ) + TimerTriggeredSyncAll -> + ( model + , Batch (List.map SyncOnce model.settings.syncs) + ) + FocusedOnEditor -> ( model, NoEffect ) @@ -549,7 +555,7 @@ update msg model = ( { model | draftSync = Nothing, settings = newSettings } , Batch [ Put (Settings.encode newSettings) - , StartSyncing draftSync + , SyncOnce draftSync ] ) @@ -618,10 +624,10 @@ perform model effect = (\_ -> FocusedOnEditor) (Dom.focus "editor") - StartSyncing sync -> + SyncOnce sync -> case Sync.toUrl sync of Just url -> - startSyncing url + syncOnce url Nothing -> Cmd.none @@ -630,7 +636,7 @@ perform model effect = port put : Value -> Cmd msg -port startSyncing : String -> Cmd msg +port syncOnce : String -> Cmd msg port putSuccessfully : (Value -> msg) -> Sub msg @@ -641,6 +647,7 @@ subscriptions model = Sub.batch [ putSuccessfully PouchDBPutSuccessfully , Time.every 1000 (\_ -> TimerTriggeredSave) + , Time.every 10000 (\_ -> TimerTriggeredSyncAll) -- Using a 1-second resolution is more than enough for most UI -- concerns. If it needs to be more precise, crank this down! But diff --git a/src/index.js b/src/index.js index 4d20168..d33cf0b 100644 --- a/src/index.js +++ b/src/index.js @@ -63,9 +63,9 @@ var db = new PouchDB("notes"); }); // syncing - app.ports.startSyncing.subscribe((url) => { + app.ports.syncOnce.subscribe((url) => { db.replicate.from(url).on("complete", (info) => { - db.sync(url, { live: true, retry: true }) + db.sync(url, { retry: true }) .on("change", (info) => console.log("change", info)) .on("paused", (err) => console.log("paused", err)) .on("active", () => console.log("active"))