-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcomponent---src-pages-blog-tsx-3d930f6733b9bf92dd1d.js.map
1 lines (1 loc) · 4.35 KB
/
component---src-pages-blog-tsx-3d930f6733b9bf92dd1d.js.map
1
{"version":3,"sources":["webpack:///./src/pages/blog.tsx","webpack:///./src/hooks/useBlogViewMode.ts"],"names":["BottomLine","props","className","text","BlogCatalogPage","blogs","data","allMarkdownRemark","edges","map","n","node","filter","fields","type","NodeType","blog","frontmatter","draft","sort","x","y","Date","date","getTime","useBlogViewMode","viewMode","setViewMode","title","IS_DEV","onViewModeChange","BlogCatalogViewMode","normal","archive","renderView","query","cachedviewModel","hasWindow","window","localStorage","getItem","initViewMode","useState","useEffect","setItem"],"mappings":"6FAAA,kIAeMA,EAAmC,SAACC,GAAD,OACvC,yBAAKC,UAAU,eAAc,8BAAOD,EAAME,QAoC7BC,UAtB8B,SAACH,GAC5C,IAAMI,EAAQJ,EAAMK,KAAKC,kBAAkBC,MACxCC,KAAI,SAAAC,GAAC,OAAIA,EAAEC,QACXC,QAAO,SAAAD,GAAI,OAAIA,EAAKE,OAAOC,OAASC,IAASC,OAASL,EAAKM,YAAYC,SACvEC,MAAK,SAACC,EAAGC,GAAJ,OAAU,IAAIC,KAAKD,EAAER,OAAOU,MAAMC,UAAY,IAAIF,KAAKF,EAAEP,OAAOU,MAAMC,aAJxB,EAMpBC,cAA1BC,EAN8C,EAM9CA,SAAUC,EANoC,EAMpCA,YAElB,OACE,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAKC,MAAM,OACX,yBAAK1B,UAAU,2BACX2B,KACA,kBAAC,IAAD,CAASH,SAAUA,EAAUI,iBAAkBH,IAxBtC,SAACD,EAA+BrB,GACjD,OAAQqB,GACN,KAAKK,IAAoBC,OACvB,OAAO,kBAAC,IAAD,CAAuB3B,MAAOA,IACvC,KAAK0B,IAAoBE,QACvB,OAAO,kBAAC,IAAD,CAAwB5B,MAAOA,IACxC,QACE,OAAO,MAmBH6B,CAAWR,EAAUrB,GACvB,kBAACL,EAAD,CAAYG,KAAK,wBAQlB,IAAMgC,EAAQ,c,+IClDRV,EAAkB,WAC7B,IAAMW,EAAkBC,cACpBC,OAAOC,aAAaC,QAAQ,kBAC5B,KACEC,EAAeL,GAAmBL,IAAoBC,OAJzB,EAKHU,mBAA8BD,GAL3B,mBAK5Bf,EAL4B,KAKlBC,EALkB,KAenC,OARAgB,qBAAU,WACJjB,IAAaU,GACXC,eACFC,OAAOC,aAAaK,QAAQ,iBAAkBlB,KAGjD,CAACA,IAEG,CAAEA,WAAUC","file":"component---src-pages-blog-tsx-3d930f6733b9bf92dd1d.js","sourcesContent":["import React, { FC } from 'react'\nimport { graphql } from 'gatsby'\nimport {\n Layout,\n SEO,\n BlogCatelogNormalView,\n BlogCatelogArchiveView,\n Toolbar,\n BlogCatalogViewMode\n} from '../components'\nimport './blog.scss'\nimport { GatsbyDataProps, BlogNode, NodeType } from '../utils/interface'\nimport { useBlogViewMode } from 'hooks'\nimport { IS_DEV } from 'config'\n\nconst BottomLine: FC<{ text: string }> = (props) => (\n <div className='bottom-line'><span>{props.text}</span></div>\n)\n\nconst renderView = (viewMode: BlogCatalogViewMode, blogs: BlogNode[]) => {\n switch (viewMode) {\n case BlogCatalogViewMode.normal:\n return <BlogCatelogNormalView blogs={blogs} />\n case BlogCatalogViewMode.archive:\n return <BlogCatelogArchiveView blogs={blogs} />\n default:\n return null\n }\n}\n\nconst BlogCatalogPage: FC<GatsbyDataProps> = (props) => {\n const blogs = props.data.allMarkdownRemark.edges\n .map(n => n.node as BlogNode)\n .filter(node => node.fields.type === NodeType.blog && !node.frontmatter.draft)\n .sort((x, y) => new Date(y.fields.date).getTime() - new Date(x.fields.date).getTime())\n\n const { viewMode, setViewMode } = useBlogViewMode()\n\n return (\n <Layout>\n <SEO title='博客' />\n <div className='mf-content blog-catalog'>\n { IS_DEV &&\n <Toolbar viewMode={viewMode} onViewModeChange={setViewMode} />\n }\n { renderView(viewMode, blogs) }\n <BottomLine text='That will be all' />\n </div>\n </Layout>\n )\n}\n\nexport default BlogCatalogPage\n\nexport const query = graphql`\nquery {\n site {\n siteMetadata {\n title,\n keywords\n }\n }\n allMarkdownRemark {\n totalCount\n edges {\n node {\n id\n frontmatter {\n title\n description\n tags\n cover {\n publicURL\n }\n series\n draft\n original\n }\n fields {\n id\n slug\n type\n date\n }\n }\n }\n }\n}`\n","import { useState, useEffect } from 'react'\nimport { BlogCatalogViewMode } from '../components'\nimport { hasWindow } from 'utils'\n\nexport const useBlogViewMode = () => {\n const cachedviewModel = hasWindow()\n ? window.localStorage.getItem('blog-view-mode') as BlogCatalogViewMode\n : null\n const initViewMode = cachedviewModel || BlogCatalogViewMode.normal\n const [viewMode, setViewMode] = useState<BlogCatalogViewMode>(initViewMode)\n\n useEffect(() => {\n if (viewMode !== cachedviewModel) {\n if (hasWindow()) {\n window.localStorage.setItem('blog-view-mode', viewMode)\n }\n }\n }, [viewMode])\n\n return { viewMode, setViewMode }\n}\n"],"sourceRoot":""}