added docker stuff and updated next.js to ^7.0.0

This commit is contained in:
JJ Kasper
2018-09-21 15:17:55 -05:00
parent 2230f72160
commit 56f9ee318f
62 changed files with 16686 additions and 11907 deletions

View File

@@ -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} />
}

View File

@@ -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

View File

@@ -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>
)