@topwrite/reader 1.0.33-alpha.3 → 1.0.33-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{267-58e681.js → 267-b5c5b0.js} +1 -1
- package/dist/363-7802c0.js +2 -0
- package/dist/363-7802c0.js.map +1 -0
- package/dist/{7-774184.js → 7-7d6f45.js} +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/types/components/article.d.ts +1 -2
- package/types/components/menu.d.ts +1 -1
- package/types/typings.d.ts +3 -2
- package/dist/363-58daf3.js +0 -2
- package/dist/363-58daf3.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@topwrite/reader",
|
|
3
|
-
"version": "1.0.33-alpha.
|
|
3
|
+
"version": "1.0.33-alpha.4+f6042a4",
|
|
4
4
|
"author": "yunwuxin <tzzhangyajun@qq.com> (https://github.com/yunwuxin)",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"types": "types/index.d.ts",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"build": "webpack --progress",
|
|
15
15
|
"build:dev": "yarn run build --env dev",
|
|
16
16
|
"serve": "webpack serve --env dev",
|
|
17
|
-
"extract": "formatjs extract src/**/*.ts
|
|
17
|
+
"extract": "formatjs extract src/**/*.{ts,tsx} --out-file src/lang/zh-CN.json --ignore src/global.d.ts --id-interpolation-pattern [sha512:contenthash:base64:6] --format simple",
|
|
18
18
|
"prepack": "yarn run build"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@babel/runtime": "^7.11.2",
|
|
31
|
-
"@formatjs/cli": "^
|
|
31
|
+
"@formatjs/cli": "^5.0.2",
|
|
32
32
|
"@topthink/webpack-config-plugin": "^1.0.0",
|
|
33
33
|
"crypto-browserify": "^3.12.0",
|
|
34
34
|
"path-browserify": "^1.0.1",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"optional": true
|
|
54
54
|
}
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "f6042a477678301ba49d1b422e0ff915ea9c907f"
|
|
57
57
|
}
|
|
@@ -2,7 +2,6 @@ import Markdown from './markdown';
|
|
|
2
2
|
import { ComponentProps } from 'react';
|
|
3
3
|
interface ArticleProps extends Omit<ComponentProps<typeof Markdown>, 'children' | 'as'> {
|
|
4
4
|
className?: string;
|
|
5
|
-
menu?: boolean;
|
|
6
5
|
}
|
|
7
|
-
export default function Article({ className, header, footer,
|
|
6
|
+
export default function Article({ className, header, footer, ...props }: ArticleProps): JSX.Element;
|
|
8
7
|
export {};
|
package/types/typings.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Actions, AnyAction, ComponentDescriptorType, States } from '@topwrite/c
|
|
|
2
2
|
import * as models from './models';
|
|
3
3
|
import { ComponentProps } from 'react';
|
|
4
4
|
import Markdown from './components/markdown';
|
|
5
|
-
import { MenuItemProps } from './components/menu';
|
|
5
|
+
import { MenuItemProps, MenuProps } from './components/menu';
|
|
6
6
|
declare type Models = typeof models;
|
|
7
7
|
declare module '@topwrite/common' {
|
|
8
8
|
function useSelector<T extends keyof Models>(model: T): States<T, Models>[T];
|
|
@@ -20,10 +20,11 @@ declare module '@topwrite/common' {
|
|
|
20
20
|
}
|
|
21
21
|
interface ComponentsMap {
|
|
22
22
|
'page': ComponentDescriptorType;
|
|
23
|
+
'page:menu': ComponentDescriptorType<MenuProps>;
|
|
24
|
+
'page:menu:item': ComponentDescriptorType<MenuItemProps>;
|
|
23
25
|
'page:article:before': ComponentDescriptorType;
|
|
24
26
|
'page:article:after': ComponentDescriptorType;
|
|
25
27
|
'page:article:markdown': ComponentDescriptorType<ComponentProps<typeof Markdown>>;
|
|
26
|
-
'page:article:menu': ComponentDescriptorType<MenuItemProps>;
|
|
27
28
|
'page:asset': ComponentDescriptorType;
|
|
28
29
|
}
|
|
29
30
|
interface OptionsStateType {
|
package/dist/363-58daf3.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_topwrite_reader=self.webpackChunk_topwrite_reader||[]).push([[363],{4363:(e,t,n)=>{n.r(t),n.d(t,{default:()=>m});var o=n(4246),l=n(131),r=n(7363);const c="undefined"==typeof window?null:window,s=()=>void 0!==c.scrollY?c.scrollY:void 0===c.pageYOffset?0:c.pageYOffset,i=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:30;const[t,n]=(0,r.useState)((()=>s())),o=(0,l.fB)((()=>{n(s())}),e);return(0,l.zX)(c,"scroll",o),t};var a;function u(){return u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},u.apply(this,arguments)}var p=function(e){return r.createElement("svg",u({className:"gotop_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},e),a||(a=r.createElement("path",{d:"M484.539 297.401 78.509 703.407c-11.785 11.813-11.785 30.912 0 42.724 11.816 11.815 30.94 11.815 42.757 0L507.477 359.95l379.83 379.806c11.455 11.483 30.04 11.483 41.493 0 11.51-11.454 11.51-30.039 0-41.516L534.373 303.777c-1.544-1.54-3.418-2.297-5.2-3.413-.693-.935-1.056-2.086-1.934-2.963-11.784-11.784-30.912-11.784-42.695 0h-.005zm0 0"})))};var d=n(4378),f=n(9958);const h=function(e){let{tooltip:t,children:n,onClick:l}=e;const r=(0,o.jsx)("a",{onClick:l,children:n});if(t){const e={placement:"left",getTooltipContainer:e=>e.parentElement||document.body};let n;return n="object"==typeof t&&t.hasOwnProperty("overlay")?t:{overlay:t},(0,o.jsx)(d.Z,{...e,...n,children:r})}return r};function m(e){let{className:t}=e;return"mobile"===(0,f.Z)()?null:(0,o.jsxs)("menu",{className:t,children:[(0,o.jsx)(w,{}),(0,o.jsx)(l.IA,{role:"page:article:menu",component:h})]})}const w=function(){const e=(0,r.useCallback)((()=>{const t=document.documentElement;let n=t.scrollTop-(t.clientTop||0);n>0&&(window.scrollTo(0,n-30),setTimeout(e,2))}),[]);return i()>500?(0,o.jsx)(h,{tooltip:"回到顶部",onClick:e,children:(0,o.jsx)(p,{})}):null}}}]);
|
|
2
|
-
//# sourceMappingURL=363-58daf3.js.map
|
package/dist/363-58daf3.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"363-58daf3.js","mappings":"kLAGA,MAAMA,EAAwB,oBAAXC,OAAyB,KAAOA,OAC7CC,EAAa,SACa,IAA3BF,EAAeG,QACTH,EAAeG,aACgB,IAA/BH,EAAeI,YACZ,EACCJ,EAAeI,YAa9B,EAX+B,WAAqB,IAApBC,EAAoB,uDAAd,GAElC,MAAOC,EAAWC,IAAgB,IAAAC,WAAS,IAAMN,MAE3CO,GAAkB,SAAY,KAChCF,EAAaL,OACdG,GAEH,OADA,QAASL,EAAK,SAAUS,GACjBH,GCnBX,IAAII,EAEJ,SAASC,IAA2Q,OAA9PA,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAAkBH,EAASY,MAAMC,KAAMR,WAIhT,IAAIS,EAAW,SAAkBC,GAC/B,OAAoB,gBAAoB,MAAOf,EAAS,CACtDgB,UAAW,kBACXC,QAAS,gBACTC,MAAO,6BACPC,MAAO,IACPC,OAAQ,KACPL,GAAQhB,IAAUA,EAAqB,gBAAoB,OAAQ,CACpEsB,EAAG,0V,wBCEP,MAAMC,EAAW,YAAsD,IAA7C,QAAEC,EAAF,SAAWC,EAAX,QAAqBC,GAAwB,EACnE,MAAMC,GAAO,cAAGD,QAASA,EAAO,SAAGD,IAEnC,GAAID,EAAS,CACT,MAAMI,EAAe,CACjBC,UAAW,OACXC,oBAAsBC,GACXA,EAAIC,eAAiBC,SAASC,MAI7C,IAAIlB,EASJ,OAPIA,EADmB,iBAAZQ,GAAwBA,EAAQb,eAAe,WAC9Ca,EAEA,CACJW,QAASX,IAIV,SAAC,IAAO,IACPI,KACAZ,EAAK,SAERW,IAIT,OAAOA,GAQG,SAAUS,EAAV,GAAuC,IAAxB,UAAEnB,GAAsB,EAIjD,MAAa,YAFA,SAGF,MAGJ,kBAAMA,UAAWA,EAAS,WAC7B,SAACoB,EAAS,KACV,SAAC,KAAoB,CAACC,KAAM,oBAAqBC,UAAWhB,OAIpE,MAAMc,EAAY,WAEd,MAAMG,GAAW,IAAAC,cAAY,KACzB,MAAMC,EAAQT,SAASU,gBACvB,IAAIC,EAAUF,EAAM9C,WAAa8C,EAAMG,WAAa,GAEhDD,EAAU,IACVrD,OAAOuD,SAAS,EAAGF,EAAU,IAC7BG,WAAWP,EAAU,MAE1B,IAIH,OAFkB,IAEF,KACL,SAACjB,EAAQ,CAACC,QAAS,OAAQE,QAASc,EAAQ,UAAE,SAAC,EAAS,MAE5D","sources":["webpack://@topwrite/reader/./src/lib/use-window-scroll.ts","webpack://@topwrite/reader/./src/images/gotop.svg","webpack://@topwrite/reader/./src/components/menu.tsx"],"sourcesContent":["import { useThrottle, useEvent } from '@topwrite/common';\r\nimport { useState } from 'react';\r\n\r\nconst win = typeof window === 'undefined' ? null : window;\r\nconst getScrollY = (): number =>\r\n (win as Window).scrollY !== void 0\r\n ? (win as Window).scrollY\r\n : (win as Window).pageYOffset === void 0\r\n ? 0\r\n : (win as Window).pageYOffset;\r\n\r\nexport const useWindowScroll = (fps = 30): number => {\r\n\r\n const [scrollTop, setScrollTop] = useState(() => getScrollY());\r\n\r\n const updateScrollTop = useThrottle(() => {\r\n setScrollTop(getScrollY());\r\n }, fps);\r\n useEvent(win, 'scroll', updateScrollTop);\r\n return scrollTop;\r\n};\r\n\r\nexport default useWindowScroll;\r\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nvar SvgGotop = function SvgGotop(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: \"gotop_svg__icon\",\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 200,\n height: 200\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M484.539 297.401 78.509 703.407c-11.785 11.813-11.785 30.912 0 42.724 11.816 11.815 30.94 11.815 42.757 0L507.477 359.95l379.83 379.806c11.455 11.483 30.04 11.483 41.493 0 11.51-11.454 11.51-30.039 0-41.516L534.373 303.777c-1.544-1.54-3.418-2.297-5.2-3.413-.693-.935-1.056-2.086-1.934-2.963-11.784-11.784-30.912-11.784-42.695 0h-.005zm0 0\"\n })));\n};\n\nexport { SvgGotop as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB0PSIxNjU2NTc2OTMwMTg2IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjIzOTMiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48cGF0aCBkPSJNNDg0LjUzODU1NSAyOTcuNDAxNDM0IDc4LjUwODA1MiA3MDMuNDA3Mzc4Yy0xMS43ODQzOTQgMTEuODEzMDQ3LTExLjc4NDM5NCAzMC45MTIwMzQgMCA0Mi43MjQwNTcgMTEuODE3MTQgMTEuODE0MDcgMzAuOTQxNzEgMTEuODE0MDcgNDIuNzU3ODI2IDBsMzg2LjIxMTEwOS0zODYuMTgxNDMzIDM3OS44MzA3OTUgMzc5LjgwNjIzNWMxMS40NTM4NjYgMTEuNDgyNTE5IDMwLjAzOTE1MyAxMS40ODI1MTkgNDEuNDkxOTk2IDAgMTEuNTExMTcxLTExLjQ1Mzg2NiAxMS41MTExNzEtMzAuMDM5MTUzIDAtNDEuNTE2NTU2TDUzNC4zNzI1NDMgMzAzLjc3NjYzMWMtMS41NDMxNDYtMS41MzkwNTMtMy40MTc4NDMtMi4yOTYyOTktNS4yMDA0NDItMy40MTI3MjYtMC42OTE3NTUtMC45MzUzMDItMS4wNTUwMjktMi4wODU0OTgtMS45MzMwMjUtMi45NjI0NzEtMTEuNzg0Mzk0LTExLjc4NDM5NC0zMC45MTIwMzQtMTEuNzg0Mzk0LTQyLjY5NTQwNSAwTDQ4NC41Mzg1NTUgMjk3LjQwMTQzNHpNNDg0LjUzODU1NSAyOTcuNDAxNDM0IiBwLWlkPSIyMzk0Ij48L3BhdGg+PC9zdmc+DQo=\";","import { InjectedComponentSet } from '@topwrite/common';\r\nimport { ComponentProps, ReactNode, useCallback } from 'react';\r\nimport useWindowScroll from '@/lib/use-window-scroll';\r\nimport { ReactComponent as GotopIcon } from '@/images/gotop.svg';\r\nimport Tooltip from 'rc-tooltip';\r\nimport 'rc-tooltip/assets/bootstrap.css';\r\nimport useWindowSize from '@/lib/use-window-size';\r\n\r\ntype TooltipProps = ComponentProps<typeof Tooltip>;\r\n\r\nexport interface MenuItemProps {\r\n tooltip?: TooltipProps['overlay'] | TooltipProps;\r\n children: ReactNode;\r\n onClick?: () => void;\r\n}\r\n\r\nconst MenuItem = function({ tooltip, children, onClick }: MenuItemProps) {\r\n const item = <a onClick={onClick}>{children}</a>;\r\n\r\n if (tooltip) {\r\n const defaultProps = {\r\n placement: 'left',\r\n getTooltipContainer: (dom) => {\r\n return dom.parentElement || document.body;\r\n }\r\n };\r\n\r\n let props: TooltipProps;\r\n if (typeof tooltip === 'object' && tooltip.hasOwnProperty('overlay')) {\r\n props = tooltip as TooltipProps;\r\n } else {\r\n props = {\r\n overlay: tooltip\r\n };\r\n }\r\n\r\n return <Tooltip\r\n {...defaultProps}\r\n {...props}\r\n >\r\n {item}\r\n </Tooltip>;\r\n }\r\n\r\n return item;\r\n};\r\n\r\n\r\ninterface MenuProps {\r\n className?: string;\r\n}\r\n\r\nexport default function Menu({ className }: MenuProps) {\r\n\r\n const size = useWindowSize();\r\n\r\n if (size === 'mobile') {\r\n return null;\r\n }\r\n\r\n return <menu className={className}>\r\n <GotopItem />\r\n <InjectedComponentSet role={'page:article:menu'} component={MenuItem} />\r\n </menu>;\r\n}\r\n\r\nconst GotopItem = function() {\r\n\r\n const scrollUp = useCallback(() => {\r\n const frame = document.documentElement;\r\n let pageTop = frame.scrollTop - (frame.clientTop || 0);\r\n\r\n if (pageTop > 0) {\r\n window.scrollTo(0, pageTop - 30);\r\n setTimeout(scrollUp, 2);\r\n }\r\n }, []);\r\n\r\n const scrollTop = useWindowScroll();\r\n\r\n if (scrollTop > 500) {\r\n return <MenuItem tooltip={'回到顶部'} onClick={scrollUp}><GotopIcon /></MenuItem>;\r\n }\r\n return null;\r\n};\r\n"],"names":["win","window","getScrollY","scrollY","pageYOffset","fps","scrollTop","setScrollTop","useState","updateScrollTop","_path","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","SvgGotop","props","className","viewBox","xmlns","width","height","d","MenuItem","tooltip","children","onClick","item","defaultProps","placement","getTooltipContainer","dom","parentElement","document","body","overlay","Menu","GotopItem","role","component","scrollUp","useCallback","frame","documentElement","pageTop","clientTop","scrollTo","setTimeout"],"sourceRoot":""}
|