{"version":3,"sources":["/src/utils/userAgent.ts"],"sourcesContent":["import { useDebounceFn, useMount } from 'ahooks';\nimport { debounce, isNil } from 'lodash-es';\nimport { useEffect, useLayoutEffect, useMemo } from 'react';\nimport uaParser from 'ua-parser-js';\nimport { create } from 'zustand';\n\nimport type { FormLayout } from 'antd/es/form/Form.d.ts';\nimport { persist } from 'zustand/middleware';\n\ninterface UserAgentType {\n\tuserAgent?: uaParser.IResult;\n\tsetUserAgent: (input: uaParser.IResult) => void;\n\tsize: [number, number];\n\tsetSize: (input: [number, number]) => void;\n}\nconst useUserAgentStore = create(\n\tpersist(\n\t\t(set) => ({\n\t\t\tuserAgent: undefined,\n\t\t\tsetUserAgent: (input) => set(() => ({ userAgent: input })),\n\t\t\tsize: [0, 0],\n\t\t\tsetSize: (input) => set(() => ({ size: input })),\n\t\t}),\n\t\t{\n\t\t\tname: 'userAgent-storage', // name of the item in the storage (must be unique)\n\t\t},\n\t),\n);\n\nexport const useUpdateGlobalUserAgent = () => {\n\tconst setUserAgent = useUserAgentStore((state) => state.setUserAgent);\n\tconst setSize = useUserAgentStore((state) => state.setSize);\n\tuseMount(() => {\n\t\tsetUserAgent(uaParser(navigator.userAgent));\n\t});\n\n\tuseEffect(() => {\n\t\tconst updateSize = debounce(() => {\n\t\t\tsetSize([window.innerWidth, window.innerHeight]);\n\t\t\t// console.log(window.innerWidth, window.innerHeight)\n\t\t}, 500);\n\n\t\twindow.addEventListener('resize', updateSize);\n\t\tupdateSize();\n\t\treturn () => window.removeEventListener('resize', updateSize);\n\t}, [setSize]);\n};\n\nexport const useUserAgent = () => {\n\tconst userAgent = useUserAgentStore((state) => state.userAgent);\n\tconst size = useUserAgentStore((state) => state.size);\n\tconst isMacOS = 'Mac OS' === userAgent?.os.name;\n\tconst isWindow = userAgent?.os.name?.includes('Windows');\n\tconst isMobile = size[0] < 900;\n\tconst isPC = !isMobile;\n\n\tconst formLayout: FormLayout = isPC ? 'inline' : 'vertical';\n\n\treturn {\n\t\tformLayout,\n\t\tisMobile,\n\t\tisPC,\n\t\tisMacOS,\n\t};\n};\n"],"names":[],"mappings":"+YAeM,CAAA,CAAoB,CAAA,CAAA,MAAA,CACzB,CAAA,CAAA,OAAA,CACC,CAAC,CAAA,CAAS,CAAA,CACT,SAAA,CAAW,IAAA,CAAA,CAAA,CACX,YAAA,CAAc,CAAC,CAAA,CAAU,CAAA,CAAI,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,SAAA,CAAW,CAAM,CAAA,CAAA,CAAA,CACvD,IAAA,CAAM,CAAC,CAAA,CAAG,CAAA,CAAE,CACZ,OAAA,CAAS,CAAC,CAAA,CAAU,CAAA,CAAI,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,IAAA,CAAM,CAAM,CAAA,CAAA,CAC9C,CAAA,CAAA,CACA,CACC,IAAA,CAAM,CAAA,SAAA,CAAA,OAAA,CACP,CAAA,CAAA,CAAA,CAIW,CAAA,CAA2B,CAAA,CAAA,CAAA,CAAA,CACvC,GAAA,CAAM,CAAA,CAAe,CAAA,CAAkB,CAAC,CAAA,CAAU,CAAA,CAAM,YAAY,CAAA,CAC9D,CAAA,CAAU,CAAA,CAAkB,CAAC,CAAA,CAAU,CAAA,CAAM,OAAO,CAAA,CAC1D,CAAA,CAAA,QAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CACR,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,SAAA,CAAU,SAAS,CAAA,CAAA,CAC1C,CAAA,CAAA,CAEA,CAAA,CAAA,SAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CACT,GAAA,CAAM,CAAA,CAAa,CAAA,CAAA,QAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAC3B,CAAA,CAAQ,CAAC,MAAA,CAAO,UAAU,CAAE,MAAA,CAAO,WAAW,CAAC,CAAA,CAEhD,CAAA,CAAG,GAAA,CAAA,CAIH,MAAA,CAFA,MAAA,CAAO,gBAAgB,CAAC,CAAA,MAAA,CAAA,CAAU,CAAA,CAAA,CAClC,CAAA,CAAA,CAAA,CACO,CAAA,CAAA,CAAA,CAAM,MAAA,CAAO,mBAAmB,CAAC,CAAA,MAAA,CAAA,CAAU,CAAA,CAAA,CACnD,CAAA,CAAG,CAAC,CAAA,CAAQ,CAAA,CACb,CAAA,CAEa,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAC3B,GAAA,CAGiB,CAAA,CAHX,CAAA,CAAY,CAAA,CAAkB,CAAC,CAAA,CAAU,CAAA,CAAM,SAAS,CAAA,CACxD,CAAA,CAAO,CAAA,CAAkB,CAAC,CAAA,CAAU,CAAA,CAAM,IAAI,CAAA,CAC9C,CAAA,CAAU,CAAA,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAa,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAC,IAAI,CAAA,CAAA,IAAA,CAAA,CAC9B,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAC,IAAI,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAlB,CAAA,CAAA,CAAA,CAAA,CAAoB,QAAQ,CAAC,CAAA,OAAA,CAAA,CAAA,CAC9C,GAAA,CAAM,CAAA,CAAW,CAAI,CAAC,CAAA,CAAE,CAAG,GAAA,CACrB,CAAA,CAAO,CAAC,CAAA,CAId,MAAO,CACN,UAAA,CAH8B,CAAA,CAAO,CAAA,MAAA,CAAA,CAAW,CAAA,QAAA,CAAA,CAIhD,QAAA,CAAA,CAAA,CACA,IAAA,CAAA,CAAA,CACA,OAAA,CAAA,CACD,CAAA,CACD,CAAA,CAAA"}