Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Completed Mine Task #89

Merged
merged 13 commits into from Apr 10, 2021
2 changes: 2 additions & 0 deletions src/components/Layout/index.tsx
Expand Up @@ -34,6 +34,8 @@ const Layout: FC<Props> = ({ children }) => (
<div className={styles.header}>
{navBarContent('Tasks', '/')}
|
{navBarContent('Mine', '/mine')}
|
{navBarContent('DS', '/challenges')}
|
{navBarContent('Open PRs', '/openPRs')}
Expand Down
2 changes: 1 addition & 1 deletion src/pages/index.tsx
Expand Up @@ -52,7 +52,7 @@ const Index: FC = () => {
<Accordion open title={key} key={key}>
{renderCardList(filteredTask[key])}
</Accordion>
)) : 'No Tasks Found'
)) : (!error && 'No Tasks Found')
}
</>
)
Expand Down
55 changes: 49 additions & 6 deletions src/pages/mine.tsx
@@ -1,11 +1,54 @@
import { FC } from 'react';
import { FC, useState, useEffect } from 'react';
import Head from '@/components/head';
import Layout from '@/components/Layout';
import Card from '@/components/tasks/card';
import useFetch from '@/hooks/useFetch';
import classNames from '@/styles/tasks.module.scss';
import { task } from '@/components/constants/types';

const Mine: FC = () => (
<Layout>
<Head title="Mine" />
</Layout>
);
const TASKS_URL = `${process.env.NEXT_PUBLIC_BASE_URL}/task/self`;

function CardList(tasks: task[]) {
return tasks.map(
(item: task) => <Card content={item} key={item.id} />,
);
}

const Mine: FC = () => {
const [tasks, setTasks] = useState<task[]>([]);
const {
response,
error,
isLoading,
} = useFetch(TASKS_URL);

useEffect(() => {
if ('tasks' in response) { setTasks(response.tasks); }
}, [isLoading, response]);
return (
<Layout>
<Head title="Mine" />
<div className={classNames.container}>
{!!error && <p>Something went wrong, please contact admin!</p>}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

both the lines are shown...

Something went wrong, please contact admin!
No Tasks Found

Please show only error in case of error

{
isLoading
? (
<p>Loading...</p>
) : (
<>
{
tasks.length > 0
? (
<div>
{CardList(tasks)}
</div>
) : (!error && 'No Tasks Found')
}
</>
)
}
</div>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is an extreme amount of white spaces
You could reduce them to something like...

<div className={classNames.container}>
  {!!error && <p>Something went wrong, please contact admin!</p>}
  
  {isLoading ? (
    <p>Loading...</p>
  ) : (
    tasks.length > 0 ? <div>{CardList(tasks)}</div> : "No Tasks Found"
  )}
</div>

</Layout>
);
};
export default Mine;