[{"data":1,"prerenderedAt":309},["ShallowReactive",2],{"navigation_docs":3,"-api-use-optimistic-action":91,"-api-use-optimistic-action-surround":306},[4,18,67],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Getting Started","/getting-started","1.getting-started",[9,13],{"title":10,"path":11,"stem":12},"Installation","/getting-started/installation","1.getting-started/1.installation",{"title":14,"path":15,"stem":16},"Usage","/getting-started/usage","1.getting-started/2.usage",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Guide","/guide","2.guide",[23,27,31,35,39,43,47,51,55,59,63],{"title":24,"path":25,"stem":26},"Action Client","/guide/action-client","2.guide/1.action-client",{"title":28,"path":29,"stem":30},"Queries","/guide/queries","2.guide/10.queries",{"title":32,"path":33,"stem":34},"Comparison","/guide/comparison","2.guide/11.comparison",{"title":36,"path":37,"stem":38},"Defining Actions","/guide/defining-actions","2.guide/2.defining-actions",{"title":40,"path":41,"stem":42},"useAction","/guide/use-action","2.guide/3.use-action",{"title":44,"path":45,"stem":46},"Middleware","/guide/middleware","2.guide/4.middleware",{"title":48,"path":49,"stem":50},"Error Handling","/guide/error-handling","2.guide/5.error-handling",{"title":52,"path":53,"stem":54},"Validation","/guide/validation","2.guide/6.validation",{"title":56,"path":57,"stem":58},"Forms","/guide/forms","2.guide/7.forms",{"title":60,"path":61,"stem":62},"Authentication","/guide/authentication","2.guide/8.authentication",{"title":64,"path":65,"stem":66},"Optimistic Updates","/guide/optimistic-updates","2.guide/9.optimistic-updates",{"title":68,"path":69,"stem":70,"children":71,"page":17},"Api","/api","3.api",[72,76,80,83,87],{"title":73,"path":74,"stem":75},"createSafeActionClient","/api/create-safe-action-client","3.api/1.create-safe-action-client",{"title":77,"path":78,"stem":79},"Builder Chain","/api/builder-chain","3.api/2.builder-chain",{"title":40,"path":81,"stem":82},"/api/use-action","3.api/3.use-action",{"title":84,"path":85,"stem":86},"useFormAction","/api/use-form-action","3.api/4.use-form-action",{"title":88,"path":89,"stem":90},"useOptimisticAction","/api/use-optimistic-action","3.api/5.use-optimistic-action",{"id":92,"title":88,"body":93,"description":299,"extension":300,"links":301,"meta":302,"navigation":303,"path":89,"seo":304,"stem":90,"__hash__":305},"docs/3.api/5.use-optimistic-action.md",{"type":94,"value":95,"toc":297},"minimark",[96,100,181,234,254,257,278,293],[97,98,88],"h1",{"id":99},"useoptimisticaction",[101,102,107],"pre",{"className":103,"code":104,"language":105,"meta":106,"style":106},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const action = useOptimisticAction(typedReference, {\n  currentData,\n  updateFn, // your immutable (input, current) => newValue function\n  ...actionOptions,\n})\n","ts","",[108,109,110,140,149,161,172],"code",{"__ignoreMap":106},[111,112,115,119,123,127,131,134,137],"span",{"class":113,"line":114},"line",1,[111,116,118],{"class":117},"spNyl","const",[111,120,122],{"class":121},"sTEyZ"," action ",[111,124,126],{"class":125},"sMK4o","=",[111,128,130],{"class":129},"s2Zo4"," useOptimisticAction",[111,132,133],{"class":121},"(typedReference",[111,135,136],{"class":125},",",[111,138,139],{"class":125}," {\n",[111,141,143,146],{"class":113,"line":142},2,[111,144,145],{"class":121},"  currentData",[111,147,148],{"class":125},",\n",[111,150,152,155,157],{"class":113,"line":151},3,[111,153,154],{"class":121},"  updateFn",[111,156,136],{"class":125},[111,158,160],{"class":159},"sHwdD"," // your immutable (input, current) => newValue function\n",[111,162,164,167,170],{"class":113,"line":163},4,[111,165,166],{"class":125},"  ...",[111,168,169],{"class":121},"actionOptions",[111,171,148],{"class":125},[111,173,175,178],{"class":113,"line":174},5,[111,176,177],{"class":125},"}",[111,179,180],{"class":121},")\n",[182,183,184,200],"table",{},[185,186,187],"thead",{},[188,189,190,194,197],"tr",{},[191,192,193],"th",{},"Additional option",[191,195,196],{},"Type",[191,198,199],{},"Behavior",[201,202,203,219],"tbody",{},[188,204,205,211,216],{},[206,207,208],"td",{},[108,209,210],{},"currentData",[206,212,213],{},[108,214,215],{},"Ref\u003CTData>",[206,217,218],{},"Writable authoritative/optimistic state",[188,220,221,226,231],{},[206,222,223],{},[108,224,225],{},"updateFn",[206,227,228],{},[108,229,230],{},"(input: TInput, current: TData) => TData",[206,232,233],{},"Return a new value; do not mutate baseline",[235,236,237,238,241,242,245,246,249,250,253],"p",{},"It returns the ",[239,240,40],"a",{"href":81}," members plus readonly ",[108,243,244],{},"optimisticData",". ",[108,247,248],{},"execute","/",[108,251,252],{},"executeAsync"," apply the optimistic update before the request. Only one optimistic operation is owned; newer execution replaces older pending work.",[235,255,256],{},"Failure, cancellation, or reset restores the baseline only while the ref still contains the installed optimistic value. External ref replacement is preserved. In-place mutations cannot be detected by the identity guard.",[235,258,259,260,263,264,245,267,249,270,273,274,277],{},"Success retains optimistic state until your application merges or refreshes authoritative output. ",[108,261,262],{},"TOutput"," is never assumed to equal ",[108,265,266],{},"TData",[108,268,269],{},"cancel",[108,271,272],{},"reset"," release owned optimism; server-side mutations already underway can still complete. ",[239,275,276],{"href":65},"Example and reconciliation guidance",".",[235,279,280,281,283,284,286,287,289,290,292],{},"If ",[108,282,225],{}," throws, no request starts; ",[108,285,252],{}," rejects and ",[108,288,248],{}," logs the failure. Keep ",[108,291,225],{}," pure and immutable.",[294,295,296],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":106,"searchDepth":142,"depth":142,"links":298},[],"Immutable optimistic update, guarded rollback, and concurrency reference.","md",null,{},true,{"title":88,"description":299},"41pYimIeOFhZAmW_Op2vVpjLmalk77Ra_c4tTBHR_WA",[307,301],{"title":84,"path":85,"stem":86,"description":308,"children":-1},"Typed form values, submission snapshots, reset, and field/root errors reference.",1791798656068]