{"version":3,"file":"useMemo-B5vagCrQ.js","sources":["../../../app/javascript/entrypoints/hooks/useMemo.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { Memo } from '../output/models';\nimport type {\n DeleteMemoRequest,\n PatchMemoOperationRequest,\n PostMemoOperationRequest,\n} from '../output/apis/MemosApi';\n\nimport { token } from '../utils';\nimport { config } from '../config';\nimport { MemosApi } from '../output/apis/MemosApi';\n\nexport const useMemo = (\n memos: Memo[] | undefined,\n setMemos: (memos: Memo[]) => void,\n stockId = 0,\n) => {\n const memoInitial: Memo = {\n id: 0,\n stock_id: stockId,\n date: '',\n content: '',\n url: '',\n };\n const [memo, setMemo] = useState(memoInitial);\n\n const createMemo = () => {\n const req: PostMemoOperationRequest = {\n xCSRFToken: token(),\n postMemoRequest: {\n stock_id: memo.stock_id,\n content: memo.content,\n url: memo.url,\n },\n };\n\n new MemosApi(config)\n .postMemo(req)\n .then((res) => {\n setMemos([res.data!, ...memos!]);\n setMemo(memoInitial);\n })\n .catch((e) => {\n console.log(e);\n });\n };\n\n const updateMemo = () => {\n const req: PatchMemoOperationRequest = {\n xCSRFToken: token(),\n id: String(memo.id),\n patchMemoRequest: {\n content: memo.content,\n url: memo.url,\n },\n };\n\n new MemosApi(config)\n .patchMemo(req)\n .then(() => {\n const newMemos = [...memos!];\n const index = newMemos.findIndex((newMemo) => newMemo.id === memo.id);\n newMemos.splice(index, 1, memo);\n\n setMemos(newMemos);\n setMemo(memoInitial);\n })\n .catch((e) => {\n console.log(e);\n });\n };\n\n const deleteMemo = (memo: Memo) => {\n const req: DeleteMemoRequest = {\n xCSRFToken: token(),\n id: String(memo.id),\n };\n\n new MemosApi(config)\n .deleteMemo(req)\n .then(() => {\n setMemos(memos!.filter((memoTab) => memoTab.id !== memo.id));\n })\n .catch((e) => {\n console.log(e);\n });\n };\n\n return { memoInitial, memo, setMemo, createMemo, updateMemo, deleteMemo };\n};\n"],"names":["useMemo","memos","setMemos","stockId","memoInitial","memo","setMemo","useState","req","token","MemosApi","config","res","e","newMemos","index","newMemo","memoTab"],"mappings":"ybAaO,MAAMA,EAAU,CACrBC,EACAC,EACAC,EAAU,IACP,CACH,MAAMC,EAAoB,CACxB,GAAI,EACJ,SAAUD,EACV,KAAM,GACN,QAAS,GACT,IAAK,EAAA,EAED,CAACE,EAAMC,CAAO,EAAIC,WAAeH,CAAW,EAgElD,MAAO,CAAE,YAAAA,EAAa,KAAAC,EAAM,QAAAC,EAAS,WA9DlB,IAAM,CACvB,MAAME,EAAgC,CACpC,WAAYC,EAAM,EAClB,gBAAiB,CACf,SAAUJ,EAAK,SACf,QAASA,EAAK,QACd,IAAKA,EAAK,GACZ,CAAA,EAGE,IAAAK,EAASC,CAAM,EAChB,SAASH,CAAG,EACZ,KAAMI,GAAQ,CACbV,EAAS,CAACU,EAAI,KAAO,GAAGX,CAAM,CAAC,EAC/BK,EAAQF,CAAW,CAAA,CACpB,EACA,MAAOS,GAAM,CACZ,QAAQ,IAAIA,CAAC,CAAA,CACd,CAAA,EA4C4C,WAzC9B,IAAM,CACvB,MAAML,EAAiC,CACrC,WAAYC,EAAM,EAClB,GAAI,OAAOJ,EAAK,EAAE,EAClB,iBAAkB,CAChB,QAASA,EAAK,QACd,IAAKA,EAAK,GACZ,CAAA,EAGF,IAAIK,EAASC,CAAM,EAChB,UAAUH,CAAG,EACb,KAAK,IAAM,CACJ,MAAAM,EAAW,CAAC,GAAGb,CAAM,EACrBc,EAAQD,EAAS,UAAWE,GAAYA,EAAQ,KAAOX,EAAK,EAAE,EAC3DS,EAAA,OAAOC,EAAO,EAAGV,CAAI,EAE9BH,EAASY,CAAQ,EACjBR,EAAQF,CAAW,CAAA,CACpB,EACA,MAAOS,GAAM,CACZ,QAAQ,IAAIA,CAAC,CAAA,CACd,CAAA,EAmBwD,WAhBzCR,GAAe,CACjC,MAAMG,EAAyB,CAC7B,WAAYC,EAAM,EAClB,GAAI,OAAOJ,EAAK,EAAE,CAAA,EAGpB,IAAIK,EAASC,CAAM,EAChB,WAAWH,CAAG,EACd,KAAK,IAAM,CACDN,EAAAD,EAAO,OAAQgB,GAAYA,EAAQ,KAAOZ,EAAK,EAAE,CAAC,CAAA,CAC5D,EACA,MAAOQ,GAAM,CACZ,QAAQ,IAAIA,CAAC,CAAA,CACd,CAAA,EAIP"}