in frontend/src/js/components/workspace/WorkspacesSidebar.tsx [33:64]
UNSAFE_componentWillReceiveProps(props: Props) {
if (props.workspacesMetadata !== this.props.workspacesMetadata) {
const workspacesMetadata = props.workspacesMetadata || [];
const currentUser = props.currentUser;
if (!currentUser) {
return;
}
const selectedWorkspaceId = localStorage.getItem('selectedWorkspaceId');
const selectedWorkspaceExists = props.workspacesMetadata && !!props.workspacesMetadata.find(workspace => workspace.id === selectedWorkspaceId);
const urlHasWorkspaceId = !!this.props.match.params.id;
// We want to redirect to workspace stored in localStorage if the workspace stored in there exists
// and if the url we accessing does not already contain a workspace id
if (selectedWorkspaceId && selectedWorkspaceExists && !urlHasWorkspaceId) {
this.props.history.push(`/workspaces/${selectedWorkspaceId}`)
}
if (selectedWorkspaceId && !selectedWorkspaceExists) {
localStorage.removeItem('selectedWorkspaceId');
}
this.setState({
myWorkspaces: sortBy(workspacesMetadata.filter(w =>
!w.isPublic && w.owner.username === currentUser.username
), w => w.name.toLowerCase()),
sharedWorkspaces: sortBy(workspacesMetadata.filter(w =>
!w.isPublic && w.owner.username !== currentUser.username
), w => w.name.toLowerCase()),
publicWorkspaces: sortBy(workspacesMetadata.filter(w => w.isPublic), w => w.name.toLowerCase()),
});
}
}