ui.components.communities: deprecate componentWillReceiveProps
This commit is contained in:
parent
5aa2a682ff
commit
195bf022bb
1 changed files with 16 additions and 21 deletions
37
ui/src/components/communities.tsx
vendored
37
ui/src/components/communities.tsx
vendored
|
@ -13,7 +13,7 @@ import {
|
|||
GetSiteResponse,
|
||||
} from '../interfaces';
|
||||
import { WebSocketService } from '../services';
|
||||
import { wsJsonToRes, toast } from '../utils';
|
||||
import { wsJsonToRes, toast, getPageFromProps } from '../utils';
|
||||
import { CommunityLink } from './community-link';
|
||||
import { i18n } from '../i18next';
|
||||
|
||||
|
@ -32,7 +32,7 @@ export class Communities extends Component<any, CommunitiesState> {
|
|||
private emptyState: CommunitiesState = {
|
||||
communities: [],
|
||||
loading: true,
|
||||
page: this.getPageFromProps(this.props),
|
||||
page: getPageFromProps(this.props),
|
||||
};
|
||||
|
||||
constructor(props: any, context: any) {
|
||||
|
@ -50,19 +50,19 @@ export class Communities extends Component<any, CommunitiesState> {
|
|||
WebSocketService.Instance.getSite();
|
||||
}
|
||||
|
||||
getPageFromProps(props: any): number {
|
||||
return props.match.params.page ? Number(props.match.params.page) : 1;
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
this.subscription.unsubscribe();
|
||||
}
|
||||
|
||||
// Necessary for back button for some reason
|
||||
componentWillReceiveProps(nextProps: any) {
|
||||
if (nextProps.history.action == 'POP') {
|
||||
this.state = this.emptyState;
|
||||
this.state.page = this.getPageFromProps(nextProps);
|
||||
static getDerivedStateFromProps(props) {
|
||||
return {
|
||||
page: getPageFromProps(props),
|
||||
};
|
||||
}
|
||||
|
||||
componentDidUpdate(_, lastState) {
|
||||
if (lastState.page !== this.state.page) {
|
||||
this.setState({ loading: true });
|
||||
this.refetch();
|
||||
}
|
||||
}
|
||||
|
@ -172,22 +172,17 @@ export class Communities extends Component<any, CommunitiesState> {
|
|||
);
|
||||
}
|
||||
|
||||
updateUrl() {
|
||||
this.props.history.push(`/communities/page/${this.state.page}`);
|
||||
updateUrl(paramUpdates: { page: number }) {
|
||||
const page = paramUpdates.page || this.state.page;
|
||||
this.props.history.push(`/communities/page/${page}`);
|
||||
}
|
||||
|
||||
nextPage(i: Communities) {
|
||||
i.state.page++;
|
||||
i.setState(i.state);
|
||||
i.updateUrl();
|
||||
i.refetch();
|
||||
i.updateUrl({ page: i.state.page + 1 });
|
||||
}
|
||||
|
||||
prevPage(i: Communities) {
|
||||
i.state.page--;
|
||||
i.setState(i.state);
|
||||
i.updateUrl();
|
||||
i.refetch();
|
||||
i.updateUrl({ page: i.state.page - 1 });
|
||||
}
|
||||
|
||||
handleUnsubscribe(communityId: number) {
|
||||
|
|
Loading…
Reference in a new issue