{"version":3,"sources":["/src/modules/note/pc/hooks/useNoteCursor.ts","/src/modules/note/pc/consts.tsx","/src/modules/note/pc/NoteContext.tsx"],"sourcesContent":["import { useState } from 'react';\n\nexport function useNoteCursor() {\n\tconst [cursor, setCursor] = useState(0);\n\n\treturn { cursor, setCursor };\n}\n","export const sessionKey = {\n\tdetailId: 'note-detail-id',\n\tlistSearch: 'note-list-search',\n};\n\nexport const noteModeKey = 'note-mode';\n\nexport enum modesType {\n\tcreate = 'create',\n\tpreview = 'preview',\n\teditAndPreview = 'editAndPreview',\n}\n\nexport const initEntity = {\n\ttitle: '',\n\ttype: 0,\n\tcontent: '',\n\tversion: 0,\n\t_id: '',\n\n\tcreateTime: '',\n\tuserId: '',\n\ttagIds: [],\n};\n\nexport const notePageUrl = '/pc/note';\n\nexport const mobileNoteUrl = '/mobile/note';\n\nexport const tabs = [\n\t{\n\t\ttitle: '创建',\n\t\taction: modesType.create,\n\t},\n\t{\n\t\ttitle: '列表',\n\t\taction: modesType.preview,\n\t},\n\t{\n\t\ttitle: '详情',\n\t\taction: modesType.editAndPreview,\n\t},\n] as const;\n\nexport const KEYS_CONST_NAME = 'key';\n","import { modesType } from '../../../modules/note/pc/consts';\nimport { TrpcBase } from '../../../utils/trpc';\nimport { useMount } from 'ahooks';\nimport { isNil } from 'lodash-es';\nimport { createContext, useContext, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useSearchParams } from 'react-router-dom';\nimport { useNoteCursor } from './hooks/useNoteCursor';\nimport { useUserAgent } from '../../../utils/userAgent';\n\nexport const NoteContext = createContext<\n\tReturnType\n>({} as ReturnType);\n\nexport const noteListFetchDefaultParams = {\n\tdefaultValues: {\n\t\tkey: '',\n\t\ttagId: [],\n\t\tpage: 0,\n\t},\n};\n\nexport const noteIdQueryConstantName = 'uuid';\nexport const searchKeyWordQueryConstantName = 'q';\n\nexport function useCreateNoteContext() {\n\tconst { isMobile, isPC } = useUserAgent();\n\tconst [searchParams, setSearchParams] = useSearchParams();\n\tconst q = searchParams.get(searchKeyWordQueryConstantName);\n\n\t/** 列表请求 */\n\tconst uuid = searchParams.get(noteIdQueryConstantName) as string;\n\n\tconst action =\n\t\t(searchParams.get('action') as modesType[number]) ??\n\t\t(isPC || !isNil(uuid) ? modesType.preview : modesType.create);\n\n\tif (!isNil(q)) {\n\t\tnoteListFetchDefaultParams.defaultValues.key = q;\n\t}\n\t/** 每次用来搜索用的表单 */\n\tconst formHook = useForm(noteListFetchDefaultParams);\n\n\tconst watchAllFields = formHook.getValues();\n\n\tconst listHook = TrpcBase.note.list.useQuery(\n\t\t{\n\t\t\tkey: watchAllFields.key ? watchAllFields.key : '',\n\t\t\tpage: watchAllFields.page,\n\t\t},\n\t\t{},\n\t);\n\n\tconst noteDetail = TrpcBase.note.detail.useQuery(uuid ?? '', {\n\t\tinitialData: {},\n\t\tenabled: uuid !== '' && uuid !== 'null' && uuid !== null,\n\t});\n\n\t/** 笔记表单 */\n\tconst writeForm = useForm();\n\tconst noteCursor = useNoteCursor();\n\tconst [modalVisible, setModalVisible] = useState(false);\n\n\t/** 不依赖渲染时,值的更新,因为form不知道值改变成不同的时机。在应该更新的地方进行触发。\n\t * 这里只有两个地方:\n\t * 1. 页面进入\n\t * 2. 关键 key 更新\n\t */\n\tuseMount(() => {\n\t\tlistHook.refetch();\n\t});\n\n\treturn {\n\t\t...noteCursor,\n\t\taction,\n\t\tformHook,\n\t\twriteForm,\n\t\tmodalVisible,\n\t\tsetModalVisible,\n\t\tid: uuid,\n\t\tnoteDetail,\n\t\tlistHook,\n\t};\n}\n\nexport function useNoteContext() {\n\treturn useContext(NoteContext);\n}\n\nexport const NoteContextComponent = ({\n\tchildren,\n}: {\n\tchildren: React.ReactNode;\n}) => {\n\tconst context = useCreateNoteContext();\n\n\treturn (\n\t\t\n\t\t\t{/* */}\n\n\t\t\t{children}\n\t\t\n\t);\n};\n"],"names":[],"mappings":"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"}