added docker stuff and updated next.js to ^7.0.0
This commit is contained in:
@@ -27,20 +27,34 @@ export default ComposedComponent => {
|
||||
id: null,
|
||||
doc: {},
|
||||
}
|
||||
|
||||
static async getInitialProps({ query, req }) {
|
||||
return await getDoc(query.id, req)
|
||||
}
|
||||
static getDerivedStateFromProps(nextProps, state) {
|
||||
|
||||
static getDerivedStateFromProps(nextProps, prevState) {
|
||||
const { found, id, doc } = nextProps
|
||||
if (state.found !== found) return { found, id, doc }
|
||||
if (prevState.found !== found && !prevState.didInit) {
|
||||
return { found, id, doc, didInit: true }
|
||||
}
|
||||
return null
|
||||
}
|
||||
async componentDidUpdate(prevProps) {
|
||||
|
||||
updateDoc = async id => {
|
||||
this.setState(await getDoc(id))
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.updateDoc(this.props.id)
|
||||
}
|
||||
|
||||
componentDidUpdate(prevProps) {
|
||||
const { user, found, id } = this.props
|
||||
if (prevProps.user.email === user.email || found) return
|
||||
if (!user.email) return
|
||||
this.setState(await getDoc(id))
|
||||
this.updateDoc(id)
|
||||
}
|
||||
|
||||
render() {
|
||||
return <ComposedComponent {...this.state} />
|
||||
}
|
||||
|
||||
@@ -26,10 +26,13 @@ const initState = {
|
||||
pending: false,
|
||||
}
|
||||
|
||||
export default class MngDoc extends Component {
|
||||
class MngDoc extends Component {
|
||||
state = initState
|
||||
|
||||
updVal = updStateFromId.bind(this)
|
||||
|
||||
updMd = md => this.setState({ md })
|
||||
|
||||
submit = async () => {
|
||||
let { name, md, dir, editMode } = this.state
|
||||
let data = {
|
||||
@@ -95,16 +98,20 @@ export default class MngDoc extends Component {
|
||||
}
|
||||
doErr(data.message)
|
||||
}
|
||||
|
||||
static getDerivedStateFromProps(nextProps, prevState) {
|
||||
const { doc } = nextProps
|
||||
if (doc) {
|
||||
if (doc && !prevState.didInit) {
|
||||
const { name, dir, md } = doc
|
||||
return { name, md, dir, editMode: true }
|
||||
} else if (prevState.id) {
|
||||
return initState
|
||||
return { name, md, dir, editMode: true, didInit: true }
|
||||
} else if (!prevState.didInit && prevState.id) {
|
||||
return { ...initState, didInit: true }
|
||||
} else if (!prevState.didInit) {
|
||||
return { didInit: true }
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
render() {
|
||||
const { md, dir, name, error, pending } = this.state
|
||||
const rowStyle = { paddingTop: 10 }
|
||||
@@ -168,3 +175,5 @@ export default class MngDoc extends Component {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default MngDoc
|
||||
|
||||
@@ -11,13 +11,12 @@ const Page = ({ user, children }) => {
|
||||
<div>
|
||||
<Header />
|
||||
<KeyShortcuts />
|
||||
{user.email ? (
|
||||
<div className="container content">{children}</div>
|
||||
) : user.setup ? (
|
||||
<Setup />
|
||||
) : (
|
||||
<Login {...{ user }} />
|
||||
)}
|
||||
{(() => {
|
||||
if (user.email) {
|
||||
return <div className="container content">{children}</div>
|
||||
}
|
||||
return user.setup ? <Setup /> : <Login {...{ user }} />
|
||||
})()}
|
||||
<Footer />
|
||||
</div>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user