{"ast":null,"code":"var _jsxFileName = \"/root/.openclaw/workspace/projects/termosa-use-request/example/src/OptimisticExample.js\",\n  _s = $RefreshSig$();\nimport React from 'react';\nimport useRequest from 'use-request';\nimport api from './api';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst OptimisticExample = () => {\n  _s();\n  const {\n    value: status\n  } = useRequest(api.getLikeStatus, []);\n  const {\n    value,\n    pending,\n    execute\n  } = useRequest(liked => api.toggleLike(liked), {\n    optimisticPatch: _ref => {\n      var _ref2, _value$count;\n      let [liked] = _ref;\n      const count = (_ref2 = (_value$count = value === null || value === void 0 ? void 0 : value.count) !== null && _value$count !== void 0 ? _value$count : status === null || status === void 0 ? void 0 : status.count) !== null && _ref2 !== void 0 ? _ref2 : 0;\n      return {\n        liked,\n        count: count + (liked ? 1 : -1)\n      };\n    }\n  });\n  const current = value || status;\n  const liked = (current === null || current === void 0 ? void 0 : current.liked) || false;\n  const count = (current === null || current === void 0 ? void 0 : current.count) || 0;\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: [/*#__PURE__*/_jsxDEV(\"button\", {\n      className: \"like-btn\".concat(liked ? ' liked' : ''),\n      onClick: () => execute(!liked),\n      children: [/*#__PURE__*/_jsxDEV(\"span\", {\n        className: \"heart\",\n        children: liked ? '\\u2764\\uFE0F' : '\\uD83E\\uDD0D'\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 26,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n        children: count\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 27,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 22,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        marginTop: 12,\n        fontSize: '0.75rem',\n        color: 'var(--text-dim)'\n      },\n      children: pending ? 'Syncing...' : 'Click to toggle'\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 29,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 21,\n    columnNumber: 5\n  }, this);\n};\n_s(OptimisticExample, \"QR2U9j6OBz5uJv9OECeHgARZ/ks=\", false, function () {\n  return [useRequest, useRequest];\n});\n_c = OptimisticExample;\nexport default OptimisticExample;\nvar _c;\n$RefreshReg$(_c, \"OptimisticExample\");","map":{"version":3,"names":["React","useRequest","api","jsxDEV","_jsxDEV","OptimisticExample","_s","value","status","getLikeStatus","pending","execute","liked","toggleLike","optimisticPatch","_ref","_ref2","_value$count","count","current","children","className","concat","onClick","fileName","_jsxFileName","lineNumber","columnNumber","style","marginTop","fontSize","color","_c","$RefreshReg$"],"sources":["/root/.openclaw/workspace/projects/termosa-use-request/example/src/OptimisticExample.js"],"sourcesContent":["import React from 'react'\nimport useRequest from 'use-request'\nimport api from './api'\n\nconst OptimisticExample = () => {\n  const { value: status } = useRequest(api.getLikeStatus, [])\n\n  const { value, pending, execute } = useRequest(\n    (liked) => api.toggleLike(liked),\n    { optimisticPatch: ([liked]) => {\n      const count = value?.count ?? status?.count ?? 0\n      return { liked, count: count + (liked ? 1 : -1) }\n    } }\n  )\n\n  const current = value || status\n  const liked = current?.liked || false\n  const count = current?.count || 0\n\n  return (\n    <div>\n      <button\n        className={`like-btn${liked ? ' liked' : ''}`}\n        onClick={() => execute(!liked)}\n      >\n        <span className=\"heart\">{liked ? '\\u2764\\uFE0F' : '\\uD83E\\uDD0D'}</span>\n        <span>{count}</span>\n      </button>\n      <div style={{ marginTop: 12, fontSize: '0.75rem', color: 'var(--text-dim)' }}>\n        {pending ? 'Syncing...' : 'Click to toggle'}\n      </div>\n    </div>\n  )\n}\n\nexport default OptimisticExample\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,aAAa;AACpC,OAAOC,GAAG,MAAM,OAAO;AAAA,SAAAC,MAAA,IAAAC,OAAA;AAEvB,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EAAAC,EAAA;EAC9B,MAAM;IAAEC,KAAK,EAAEC;EAAO,CAAC,GAAGP,UAAU,CAACC,GAAG,CAACO,aAAa,EAAE,EAAE,CAAC;EAE3D,MAAM;IAAEF,KAAK;IAAEG,OAAO;IAAEC;EAAQ,CAAC,GAAGV,UAAU,CAC3CW,KAAK,IAAKV,GAAG,CAACW,UAAU,CAACD,KAAK,CAAC,EAChC;IAAEE,eAAe,EAAEC,IAAA,IAAa;MAAA,IAAAC,KAAA,EAAAC,YAAA;MAAA,IAAZ,CAACL,KAAK,CAAC,GAAAG,IAAA;MACzB,MAAMG,KAAK,IAAAF,KAAA,IAAAC,YAAA,GAAGV,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEW,KAAK,cAAAD,YAAA,cAAAA,YAAA,GAAIT,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEU,KAAK,cAAAF,KAAA,cAAAA,KAAA,GAAI,CAAC;MAChD,OAAO;QAAEJ,KAAK;QAAEM,KAAK,EAAEA,KAAK,IAAIN,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;MAAE,CAAC;IACnD;EAAE,CACJ,CAAC;EAED,MAAMO,OAAO,GAAGZ,KAAK,IAAIC,MAAM;EAC/B,MAAMI,KAAK,GAAG,CAAAO,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEP,KAAK,KAAI,KAAK;EACrC,MAAMM,KAAK,GAAG,CAAAC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAED,KAAK,KAAI,CAAC;EAEjC,oBACEd,OAAA;IAAAgB,QAAA,gBACEhB,OAAA;MACEiB,SAAS,aAAAC,MAAA,CAAaV,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAG;MAC9CW,OAAO,EAAEA,CAAA,KAAMZ,OAAO,CAAC,CAACC,KAAK,CAAE;MAAAQ,QAAA,gBAE/BhB,OAAA;QAAMiB,SAAS,EAAC,OAAO;QAAAD,QAAA,EAAER,KAAK,GAAG,cAAc,GAAG;MAAc;QAAAY,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAO,CAAC,eACxEvB,OAAA;QAAAgB,QAAA,EAAOF;MAAK;QAAAM,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAO,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACd,CAAC,eACTvB,OAAA;MAAKwB,KAAK,EAAE;QAAEC,SAAS,EAAE,EAAE;QAAEC,QAAQ,EAAE,SAAS;QAAEC,KAAK,EAAE;MAAkB,CAAE;MAAAX,QAAA,EAC1EV,OAAO,GAAG,YAAY,GAAG;IAAiB;MAAAc,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACxC,CAAC;EAAA;IAAAH,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OACH,CAAC;AAEV,CAAC;AAAArB,EAAA,CA7BKD,iBAAiB;EAAA,QACKJ,UAAU,EAEAA,UAAU;AAAA;AAAA+B,EAAA,GAH1C3B,iBAAiB;AA+BvB,eAAeA,iBAAiB;AAAA,IAAA2B,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}