Merge branch 'master' into v0.3.0

Conflicts:
	docs/objects.inv
	docs/searchindex.js
	fittrackee_api/poetry.lock
	fittrackee_api/pyproject.toml
	fittrackee_client/src/actions/index.js
	fittrackee_client/src/components/App.jsx
	fittrackee_client/src/utils/index.js
This commit is contained in:
Sam
2020-02-07 11:12:32 +01:00
55 changed files with 827 additions and 1091 deletions

View File

@ -7,7 +7,7 @@ import { getDateWithTZ } from '../../utils'
export default class ActivitiesList extends React.PureComponent {
render() {
const { activities, sports, t, user } = this.props
const { activities, loading, sports, t, user } = this.props
return (
<div className="card activity-card">
<div className="card-body">
@ -24,7 +24,8 @@ export default class ActivitiesList extends React.PureComponent {
</tr>
</thead>
<tbody>
{sports &&
{!loading &&
sports &&
activities.map((activity, idx) => (
// eslint-disable-next-line react/no-array-index-key
<tr key={idx}>
@ -61,6 +62,7 @@ export default class ActivitiesList extends React.PureComponent {
))}
</tbody>
</table>
{loading && <div className="loader" />}
</div>
</div>
)

View File

@ -38,6 +38,7 @@ class Activities extends React.Component {
render() {
const {
activities,
loading,
loadActivities,
loadMoreActivities,
message,
@ -71,6 +72,7 @@ class Activities extends React.Component {
<div className="col-md-9 activities-result">
<ActivitiesList
activities={activities}
loading={loading}
sports={sports}
t={t}
user={user}
@ -101,6 +103,7 @@ export default withTranslation()(
connect(
state => ({
activities: state.activities.data,
loading: state.loading,
message: state.message,
sports: state.sports.data,
user: state.user,

View File

@ -364,12 +364,12 @@ label {
.loader {
animation: spin 2s linear infinite;
border: 16px solid #f3f3f3;
border-top: 16px solid #3498db;
border: 8px solid #f3f3f3;
border-top: 8px solid #3498db;
border-radius: 50%;
height: 120px;
height: 60px;
margin-left: 41%;
width: 120px;
width: 60px;
}
@keyframes spin {

View File

@ -1,6 +1,6 @@
import React from 'react'
import { connect } from 'react-redux'
import { Redirect, Route, Switch } from 'react-router-dom'
import { Route, Switch } from 'react-router-dom'
import './App.css'
import Admin from './Admin'
@ -16,7 +16,6 @@ import ProfileEdit from './User/ProfileEdit'
import Statistics from './Statistics'
import UserForm from './User/UserForm'
import { getAppData } from '../actions/application'
import { isLoggedIn } from '../utils'
class App extends React.Component {
constructor(props) {
@ -32,59 +31,24 @@ class App extends React.Component {
<div className="App">
<NavBar />
<Switch>
<Route
exact
path="/"
render={() =>
isLoggedIn() ? <Dashboard /> : <Redirect to="/login" />
}
/>
<Route exact path="/" component={Dashboard} />
<Route
exact
path="/register"
render={() =>
isLoggedIn() ? (
<Redirect to="/" />
) : (
<UserForm formType={'register'} />
)
}
render={() => <UserForm formType={'register'} />}
/>
<Route
exact
path="/login"
render={() =>
isLoggedIn() ? (
<Redirect to="/" />
) : (
<UserForm formType={'login'} />
)
}
render={() => <UserForm formType={'login'} />}
/>
<Route exact path="/logout" component={Logout} />
<Route
exact
path="/profile/edit"
render={() =>
isLoggedIn() ? <ProfileEdit /> : <UserForm formType={'login'} />
}
/>
<Route
exact
path="/profile"
render={() =>
isLoggedIn() ? <Profile /> : <UserForm formType={'login'} />
}
/>
<Route exact path="/profile/edit" component={ProfileEdit} />
<Route exact path="/profile" component={Profile} />
<Route exact path="/activities/history" component={Activities} />
<Route exact path="/activities/statistics" component={Statistics} />
<Route path="/activities" component={Activity} />
<Route
path="/admin"
render={() =>
isLoggedIn() ? <Admin /> : <UserForm formType={'login'} />
}
/>
<Route path="/admin" component={Admin} />
<Route component={NotFound} />
</Switch>
<Footer />