{"version":3,"file":"like-button-block/view.js","mappings":"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","sources":["webpack://ncmaz-fse-core/external module \"@wordpress/interactivity\"","webpack://ncmaz-fse-core/webpack/bootstrap","webpack://ncmaz-fse-core/webpack/runtime/make namespace object","webpack://ncmaz-fse-core/./src/like-button-block/view.ts"],"sourcesContent":["module.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * WordPress dependencies\n */\nimport { store, getContext } from \"@wordpress/interactivity\";\n\n// view.js\ninterface TContext {\n\tpostId: number;\n\tcontextIsLiked: boolean;\n\tcontextLikeCount: number;\n}\n\ninterface TState {\n\tajaxUrl: string;\n\tuserId: number;\n\tisLiked: boolean;\n\tlikeCount: number;\n\tisLoading: boolean;\n\tlikeData: {\n\t\t[postID: number]:\n\t\t\t| {\n\t\t\t\t\tlikeCount: number;\n\t\t\t\t\tisLiked: boolean;\n\t\t\t }\n\t\t\t| undefined;\n\t};\n\tloadingList: number[];\n}\n\nconst { state } = store(\"ncmazfse-core/like-button\", {\n\tstate: {\n\t\tget isLiked() {\n\t\t\tconst { contextIsLiked, postId } = getContext();\n\t\t\treturn state.likeData?.[postId]\n\t\t\t\t? state.likeData[postId].isLiked\n\t\t\t\t: contextIsLiked;\n\t\t},\n\t\tget likeCount() {\n\t\t\tconst { contextLikeCount, postId } = getContext();\n\t\t\treturn state.likeData?.[postId]\n\t\t\t\t? state.likeData[postId].likeCount\n\t\t\t\t: contextLikeCount;\n\t\t},\n\t\tget isLoading() {\n\t\t\tconst { postId } = getContext();\n\t\t\treturn state.loadingList.includes(postId);\n\t\t},\n\t} as TState,\n\tactions: {\n\t\thandleLike: () => {\n\t\t\tconst context = getContext();\n\t\t\tconst { postId } = context;\n\n\t\t\ttry {\n\t\t\t\t// Update the state\n\t\t\t\tstate.loadingList.push(postId);\n\n\t\t\t\t// Get the nonce\n\t\t\t\tconst noneFormData = new FormData();\n\t\t\t\tnoneFormData.append(\"action\", \"get_like_save_view_block_nonce\");\n\t\t\t\tnoneFormData.append(\"block_type\", \"like_button\");\n\n\t\t\t\t// Send the data to the server\n\t\t\t\tconst formData = new FormData();\n\t\t\t\tformData.append(\"action\", \"handle_like\");\n\t\t\t\tformData.append(\"post_id\", postId.toString());\n\t\t\t\tformData.append(\"user_id\", state.userId.toString());\n\t\t\t\tformData.append(\"handle\", state.isLiked ? \"remove\" : \"add\");\n\n\t\t\t\tfetch(state.ajaxUrl, {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\tbody: noneFormData,\n\t\t\t\t})\n\t\t\t\t\t.then((res1) => res1.json())\n\t\t\t\t\t.then((nonceData) => {\n\t\t\t\t\t\tif (!nonceData?.success) {\n\t\t\t\t\t\t\tthrow new Error(\"Server error\");\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// add the nonce to the form data\n\t\t\t\t\t\tformData.append(\"_ajax_nonce\", nonceData?.data?.nonce);\n\n\t\t\t\t\t\tfetch(state.ajaxUrl, {\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tbody: formData,\n\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.then((res2) => res2.json())\n\t\t\t\t\t\t\t.then(({ data, success }) => {\n\t\t\t\t\t\t\t\tif (!success) {\n\t\t\t\t\t\t\t\t\tthrow new Error(\"Server error\");\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst isLiked = Boolean(data.is_liked);\n\t\t\t\t\t\t\t\tlet likeCount = data.like_count;\n\n\t\t\t\t\t\t\t\t// Update the local-context\n\t\t\t\t\t\t\t\tcontext.contextLikeCount = likeCount;\n\t\t\t\t\t\t\t\tcontext.contextIsLiked = isLiked;\n\n\t\t\t\t\t\t\t\tstate.likeData = {\n\t\t\t\t\t\t\t\t\t...state.likeData,\n\t\t\t\t\t\t\t\t\t[postId]: {\n\t\t\t\t\t\t\t\t\t\tlikeCount,\n\t\t\t\t\t\t\t\t\t\tisLiked,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\t\t\tstate.loadingList = state.loadingList.filter(\n\t\t\t\t\t\t\t\t\t(id) => id !== postId,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\tconsole.log(\"Error Server data!\", e);\n\t\t\t\t\t\tstate.loadingList = state.loadingList.filter((id) => id !== postId);\n\t\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\t// Something went wrong!\n\t\t\t\tconsole.log(\"Error Server data!\", e);\n\t\t\t\tstate.loadingList = state.loadingList.filter((id) => id !== postId);\n\t\t\t}\n\t\t},\n\t},\n\tcallbacks: {\n\t\tlogHandleLikeInit: () => {},\n\t},\n});\n"],"names":["store","getContext","state","isLiked","contextIsLiked","postId","likeData","likeCount","contextLikeCount","isLoading","loadingList","includes","actions","handleLike","context","push","noneFormData","FormData","append","formData","toString","userId","fetch","ajaxUrl","method","body","then","res1","json","nonceData","success","Error","data","nonce","res2","Boolean","is_liked","like_count","finally","filter","id","catch","e","console","log","callbacks","logHandleLikeInit"],"sourceRoot":""}