Browse Source

modernize

- update react
- get rid of componentWillReceiveProps
- add service worker and fix pwa issues
dev
xmcp 6 years ago
parent
commit
18b44fbe21
  1. 17513
      package-lock.json
  2. 20
      package.json
  3. 2
      public/index.html
  4. 4
      public/static/manifest.json
  5. 8
      src/Flows.js
  6. 10
      src/Sidebar.js
  7. 4
      src/index.js

17513
package-lock.json generated

File diff suppressed because it is too large Load Diff

20
package.json

@ -6,10 +6,10 @@
"copy-to-clipboard": "^3.0.8", "copy-to-clipboard": "^3.0.8",
"load-script": "^1.0.0", "load-script": "^1.0.0",
"pressure": "^2.1.2", "pressure": "^2.1.2",
"react": "^16.4.2", "react": "^16.9.0",
"react-dom": "^16.4.2", "react-dom": "^16.9.0",
"react-lazyload": "latest", "react-lazyload": "latest",
"react-scripts": "1.1.4", "react-scripts": "^3.1.1",
"react-timeago": "^4.1.9" "react-timeago": "^4.1.9"
}, },
"scripts": { "scripts": {
@ -18,5 +18,17 @@
"test": "react-scripts test --env=jsdom", "test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject" "eject": "react-scripts eject"
}, },
"homepage": "." "homepage": ".",
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
} }

2
public/index.html

@ -11,6 +11,7 @@
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
<link rel="shortcut icon" href="%PUBLIC_URL%/static/favicon/256.png"> <link rel="shortcut icon" href="%PUBLIC_URL%/static/favicon/256.png">
<link rel="manifest" href="%PUBLIC_URL%/static/manifest.json"> <link rel="manifest" href="%PUBLIC_URL%/static/manifest.json">
<meta name="theme-color" content="#333333"/>
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes">
<link rel="apple-touch-icon" sizes="180x180" href="%PUBLIC_URL%/static/favicon/180.png" /> <link rel="apple-touch-icon" sizes="180x180" href="%PUBLIC_URL%/static/favicon/180.png" />
@ -21,6 +22,7 @@
<link rel="apple-touch-startup-image" href="%PUBLIC_URL%/static/splash/1242x2208.png" media="(device-width: 414px) and (-webkit-device-pixel-ratio: 3)"/> <link rel="apple-touch-startup-image" href="%PUBLIC_URL%/static/splash/1242x2208.png" media="(device-width: 414px) and (-webkit-device-pixel-ratio: 3)"/>
<link rel="apple-touch-startup-image" href="%PUBLIC_URL%/static/splash/1668x2388.png" media="(device-width: 834px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"/> <link rel="apple-touch-startup-image" href="%PUBLIC_URL%/static/splash/1668x2388.png" media="(device-width: 834px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"/>
<link rel="apple-touch-startup-image" href="%PUBLIC_URL%/static/splash/2388x1668.png" media="(device-width: 834px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"/> <link rel="apple-touch-startup-image" href="%PUBLIC_URL%/static/splash/2388x1668.png" media="(device-width: 834px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"/>
<title>P大树洞</title> <title>P大树洞</title>
</head> </head>
<body> <body>

4
public/static/manifest.json

@ -15,6 +15,6 @@
], ],
"start_url": "../", "start_url": "../",
"display": "standalone", "display": "standalone",
"theme_color": "#112244", "theme_color": "#333333",
"background_color": "#112244" "background_color": "#333333"
} }

8
src/Flows.js

@ -44,7 +44,7 @@ function load_single_meta(show_sidebar,token,parents) {
let [single,replies]=res; let [single,replies]=res;
show_sidebar( show_sidebar(
title_elem, title_elem,
<FlowSidebar <FlowSidebar key={single.data.pid}
info={single.data} replies={replies.data} attention={replies.attention} info={single.data} replies={replies.data} attention={replies.attention}
token={token} show_sidebar={show_sidebar} color_picker={color_picker} token={token} show_sidebar={show_sidebar} color_picker={color_picker}
deletion_detect={localStorage['DELETION_DETECT']==='on'} parents={parents} deletion_detect={localStorage['DELETION_DETECT']==='on'} parents={parents}
@ -195,7 +195,7 @@ class FlowSidebar extends PureComponent {
this.reply_ref=React.createRef(); this.reply_ref=React.createRef();
} }
componentWillReceiveProps(nextProps) { /*componentWillReceiveProps(nextProps) {
this.setState({ this.setState({
attention: nextProps.attention, attention: nextProps.attention,
info: nextProps.info, info: nextProps.info,
@ -204,7 +204,7 @@ class FlowSidebar extends PureComponent {
}); });
this.color_picker=nextProps.color_picker; this.color_picker=nextProps.color_picker;
this.syncState=nextProps.sync_state||(()=>{}); this.syncState=nextProps.sync_state||(()=>{});
} }*/ // refactored to use key instead
set_variant(cid,variant) { set_variant(cid,variant) {
this.setState((prev)=>{ this.setState((prev)=>{
@ -459,7 +459,7 @@ class FlowItemRow extends PureComponent {
show_sidebar() { show_sidebar() {
this.props.show_sidebar( this.props.show_sidebar(
<FlowSidebarTitle pid={this.state.info.pid} parents={[]} show_sidebar={this.props.show_sidebar} token={this.props.token} />, <FlowSidebarTitle pid={this.state.info.pid} parents={[]} show_sidebar={this.props.show_sidebar} token={this.props.token} />,
<FlowSidebar <FlowSidebar key={this.state.info.pid}
info={this.state.info} replies={this.state.replies} attention={this.state.attention} sync_state={this.setState.bind(this)} info={this.state.info} replies={this.state.replies} attention={this.state.attention} sync_state={this.setState.bind(this)}
token={this.props.token} show_sidebar={this.props.show_sidebar} color_picker={this.color_picker} token={this.props.token} show_sidebar={this.props.show_sidebar} color_picker={this.color_picker}
deletion_detect={this.props.deletion_detect} parents={[]} deletion_detect={this.props.deletion_detect} parents={[]}

10
src/Sidebar.js

@ -7,10 +7,12 @@ export class Sidebar extends PureComponent {
this.sidebar_ref=React.createRef(); this.sidebar_ref=React.createRef();
} }
componentWillReceiveProps(nextProps) { componentDidUpdate(nextProps) {
//console.log('sidebar top'); if(this.props.content!==nextProps.content) {
if(this.sidebar_ref.current) //console.log('sidebar top');
this.sidebar_ref.current.scrollTop=0; if(this.sidebar_ref.current)
this.sidebar_ref.current.scrollTop=0;
}
} }
render() { render() {

4
src/index.js

@ -3,9 +3,9 @@ import ReactDOM from 'react-dom';
import './index.css'; import './index.css';
import App from './App'; import App from './App';
//import {elevate} from './infrastructure/elevator'; //import {elevate} from './infrastructure/elevator';
//import registerServiceWorker from './registerServiceWorker'; import registerServiceWorker from './registerServiceWorker';
//elevate(); //elevate();
ReactDOM.render(<App />, document.getElementById('root')); ReactDOM.render(<App />, document.getElementById('root'));
//registerServiceWorker(); registerServiceWorker();

Loading…
Cancel
Save