1"use strict";(self.webpackChunkasyncredux_com=self.webpackChunkasyncredux_com||[]).push([[7826],{1214:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>j,frontMatter:()=>s,metadata:()=>l,toc:()=>x});const l=JSON.parse('{"id":"advanced-actions/action-mixins","title":"Action mixins","description":"You can add mixins to your actions to handle common tasks.","source":"@site/flutter/advanced-actions/action-mixins.md","sourceDirName":"advanced-actions","slug":"/advanced-actions/action-mixins","permalink":"/flutter/advanced-actions/action-mixins","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"sidebar_position":4},"sidebar":"tutorialSidebar","previous":{"title":"Errors thrown by actions","permalink":"/flutter/advanced-actions/errors-thrown-by-actions"},"next":{"title":"Internet mixins","permalink":"/flutter/advanced-actions/internet-mixins"}}');var i=n(4848),r=n(8453);const s={sidebar_position:4},c="Action mixins",d={},x=[{value:"All available mixins",id:"all-available-mixins",level:2},{value:"Compatibility matrix",id:"compatibility-matrix",level:2},{value:"\u2705 Compatible (can be combined)",id:"-compatible-can-be-combined",level:4},{value:"\u274c Incompatible (cannot be combined)",id:"-incompatible-cannot-be-combined",level:4},{value:"\u26a0\ufe0f Can be combined, but read the caveat in the mixin page",id:"\ufe0f-can-be-combined-but-read-the-caveat-in-the-mixin-page",level:4},{value:"\u27a1\ufe0f Requires (must be used together)",id:"\ufe0f-requires-must-be-used-together",level:4}];function h(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"action-mixins",children:"Action mixins"})}),"\n",(0,i.jsxs)(t.p,{children:["You can add ",(0,i.jsx)(t.strong,{children:"mixins"})," to your actions to handle common tasks.\nFor example, instead of writing:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-dart",children:"class LoadText extends AppAction { ...\n"})}),"\n",(0,i.jsxs)(t.p,{children:["You can add ",(0,i.jsx)(t.code,{children:"with CheckInternet"})," to check for internet connectivity:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-dart",children:"class LoadText extends AppAction with CheckInternet { ...\n"})}),"\n",(0,i.jsx)(t.p,{children:"Or even combine multiple mixins:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-dart",children:"class LoadText extends AppAction with CheckInternet, NonReentrant, Retry { ...\n"})}),"\n",(0,i.jsx)(t.h2,{id:"all-available-mixins",children:"All available mixins"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Mixin"}),(0,i.jsx)(t.th,{children:"Purpose"}),(0,i.jsx)(t.th,{children:"Overrides"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./internet-mixins",children:"CheckInternet"})}),(0,i.jsx)(t.td,{children:"Checks internet before action; shows dialog if no connection"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"before"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./internet-mixins",children:"NoDialog"})}),(0,i.jsxs)(t.td,{children:["Modifier for ",(0,i.jsx)(t.code,{children:"CheckInternet"})," to suppress dialog"]}),(0,i.jsxs)(t.td,{children:["(requires ",(0,i.jsx)(t.code,{children:"CheckInternet"}),")"]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./internet-mixins",children:"AbortWhenNoInternet"})}),(0,i.jsx)(t.td,{children:"Checks internet before action; aborts silently if no connection"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"before"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./control-mixins",children:"NonReentrant"})}),(0,i.jsx)(t.td,{children:"Aborts if the same action is already running"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"abortDispatch"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./control-mixins",children:"Retry"})}),(0,i.jsx)(t.td,{children:"Retries the action on error with exponential backoff"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"wrapReduce"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./control-mixins",children:"UnlimitedRetries"})}),(0,i.jsxs)(t.td,{children:["Modifier for ",(0,i.jsx)(t.code,{children:"Retry"})," to retry indefinitely"]}),(0,i.jsxs)(t.td,{children:["(requires ",(0,i.jsx)(t.code,{children:"Retry"}),")"]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./internet-mixins",children:"UnlimitedRetryCheckInternet"})}),(0,i.jsx)(t.td,{children:"Combines internet check + unlimited retry + non-reentrant"}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:"abortDispatch"}),", ",(0,i.jsx)(t.code,{children:"wrapReduce"})]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./control-mixins",children:"Throttle"})}),(0,i.jsx)(t.td,{children:"Limits action execution to at most once per throttle period"}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:"abortDispatch"}),", ",(0,i.jsx)(t.code,{children:"after"})]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./control-mixins",children:"Debounce"})}),(0,i.jsx)(t.td,{children:"Delays execution until after a period of inactivity"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"wrapReduce"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./control-mixins",children:"Fresh"})}),(0,i.jsx)(t.td,{children:"Skips action if data is still fresh (not stale)"}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:"abortDispatch"}),", ",(0,i.jsx)(t.code,{children:"after"})]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./control-mixins",children:"Polling"})}),(0,i.jsx)(t.td,{children:"Adds periodic polling to any action"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"wrapReduce"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./control-mixins",children:"Sequential"})}),(0,i.jsx)(t.td,{children:"Runs actions one at a time, in the order they were dispatched"}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:"before"}),", ",(0,i.jsx)(t.code,{children:"after"})]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./optimistic-mixins",children:"OptimisticCommand"})}),(0,i.jsx)(t.td,{children:"Applies state changes optimistically, rolls back on error"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"reduce"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./optimistic-mixins",children:"OptimisticSync"})}),(0,i.jsx)(t.td,{children:"Optimistic updates with coalescing; merges rapid dispatches into one sync"}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"reduce"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./optimistic-mixins",children:"OptimisticSyncWithPush"})}),(0,i.jsxs)(t.td,{children:["Like ",(0,i.jsx)(t.code,{children:"OptimisticSync"})," but with revision tracking for server pushes"]}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"reduce"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"./optimistic-mixins",children:"ServerPush"})}),(0,i.jsxs)(t.td,{children:["Handles server-pushed updates for ",(0,i.jsx)(t.code,{children:"OptimisticSyncWithPush"})]}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"reduce"})})]})]})]}),"\n",(0,i.jsx)(t.h2,{id:"compatibility-matrix",children:"Compatibility matrix"}),"\n",(0,i.jsx)(t.p,{children:"Not all mixins can be combined.\nAsyncRedux throws an exception if you try to use incompatible mixins together,\nand in some cases it will warn
1you at compile time."}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{}),(0,i.jsxs)(t.th,{style:{textAlign:"center"},children:["Check",(0,i.jsx)("br",{}),"Internet"]}),(0,i.jsxs)(t.th,{style:{textAlign:"center"},children:["No",(0,i.jsx)("br",{}),"Dialog"]}),(0,i.jsxs)(t.th,{style:{textAlign:"center"},children:["Abort",(0,i.jsx)("br",{}),"When",(0,i.jsx)("br",{}),"No",(0,i.jsx)("br",{}),"Internet"]}),(0,i.jsxs)(t.th,{style:{textAlign:"center"},children:["Non",(0,i.jsx)("br",{}),"Reentrant"]}),(0,i.jsx)(t.th,{style:{textAlign:"center"},children:"Retry"}),(0,i.jsxs)(t.th,{style:{textAlign:"center"},children:["Unlimited",(0,i.jsx)("br",{}),"Retries"]}),(0,i.jsxs)(t.th,{style:{textAlign:"center"},children:["Unlimited",(0,i.jsx)("br",{}),"Retry",(0,i.jsx)("br",{}),"Check",(0,i.jsx)("br",{}),"Internet"]}),(0,i.jsx)(t.th,{style:{textAlign:"center"},children:"Throttle"}),(0,i.jsx)(t.th,{style:{textAlign:"center"},children:"Debounce"}),(0,i.jsx)(t.th,{style:{textAlign:"center"},children:"Fresh"}),(0,i.jsxs)(t.th,{style:{textAlign:"center"},children:["Optimistic",(0,i.jsx)("br",{}),"Command"]}),(0,i.jsxs)(t.th,{style:{textAlign:"center"},children:["Optimistic",(0,i.jsx)("br",{}),"Sync"]}),(0,i.jsxs)(t.th,{style:{textAlign:"center"},children:["Optimistic",(0,i.jsx)("br",{}),"Sync",(0,i.jsx)("br",{}),"WithPush"]}),(0,i.jsxs)(t.th,{style:{textAlign:"center"},children:["Server",(0,i.jsx)("br",{}),"Push"]}),(0,i.jsx)(t.th,{style:{textAlign:"center"},children:"Polling"}),(0,i.jsx)(t.th,{style:{textAlign:"center"},children:"Sequential"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"CheckInternet"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u26a0\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"NoDialog"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u27a1\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"AbortWhenNoInternet"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u26a0\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"NonReentrant"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u26a0\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"Retry"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"UnlimitedRetries"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u27a1\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"UnlimitedRetryCheckInternet"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"Throttle"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u26a0\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"Debounce"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"Fresh"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u26a0\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"OptimisticCommand"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"OptimisticSync"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"OptimisticSyncWithPush"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"ServerPush"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.js
1x)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"Polling"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u26a0\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u26a0\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u26a0\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u26a0\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u26a0\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u26a0\ufe0f"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"Sequential"})}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2705"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u274c"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u26a0\ufe0f"}),(0,i.jsx)(t.td,{style:{textAlign:"center"},children:"\u2014"})]})]})]}),"\n",(0,i.jsx)(t.h4,{id:"-compatible-can-be-combined",children:"\u2705 Compatible (can be combined)"}),"\n",(0,i.jsx)(t.h4,{id:"-incompatible-cannot-be-combined",children:"\u274c Incompatible (cannot be combined)"}),"\n",(0,i.jsx)(t.h4,{id:"\ufe0f-can-be-combined-but-read-the-caveat-in-the-mixin-page",children:"\u26a0\ufe0f Can be combined, but read the caveat in the mixin page"}),"\n",(0,i.jsx)(t.h4,{id:"\ufe0f-requires-must-be-used-together",children:"\u27a1\ufe0f Requires (must be used together)"}),"\n",(0,i.jsx)("hr",{}),"\n",(0,i.jsx)(t.p,{children:"All mixins will be explained in detail in the following pages:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"./internet-mixins",children:"Internet mixins"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"./control-mixins",children:"Control mixins"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"./optimistic-mixins",children:"Optimistic mixins"})}),"\n"]})]})}function j(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>c});
1var l=n(6540);const i={},r=l.createContext(i);function s(e){const t=l.useContext(r);return l.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),l.createElement(r.Provider,{value:t},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.