1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
next.js/examples/with-mobx-state-tree-typescript/components/SampleComponent.tsx
Don Alvarez af9214b302 mobx-state-tree examples should use _app (#5362)
The mobx-state-tree examples (with and without typescript) pre-dated the next _app class and needed to be updated to use _app for persisting state across client-side navigation transitions. Also removed unneeded custom server class to better keep with the "show one feature per example" style of the next examples folder
2018-10-14 10:04:58 +02:00

51 lines
1,011 B
TypeScript

import { inject, observer } from "mobx-react";
import Link from "next/link";
import React from "react";
import { IStore } from "../stores/store";
import { Clock } from "./Clock";
interface IOwnProps {
store?:IStore;
title:string;
linkTo:string;
}
@inject("store")
@observer
class SampleComponent extends React.Component<IOwnProps> {
public componentDidMount () {
if (!this.props.store) {
return;
}
this.props.store.start();
}
public componentWillUnmount () {
if (!this.props.store) {
return;
}
this.props.store.stop();
}
public render () {
if (!this.props.store) {
return (
<div>
Store not defined
</div>
);
}
return (
<div>
<h1>{this.props.title}</h1>
<Clock lastUpdate={this.props.store.lastUpdate} light={this.props.store.light} />
<nav>
<Link href={this.props.linkTo}><a>Navigate</a></Link>
</nav>
</div>
);
}
}
export { SampleComponent };