Guest User

Untitled

a guest
Nov 16th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. import React, { useContext } from "react";
  2.  
  3. //styles
  4. import * as S from "./styles";
  5. import * as A from "styles/shared-components";
  6.  
  7. //components
  8. import Header from "components/Header";
  9. import { AuthContext } from "components/Auth";
  10. import SpinnerComponent from "components/Spinner";
  11.  
  12. import { getAllUnlockedModules, getAllUserModules } from "utils/get-courses";
  13.  
  14. function DoMe({ user }) {
  15. const coursesForUser = getAllUserModules(user);
  16. const unlockedModules = getAllUnlockedModules(user);
  17. const noCourses = coursesForUser.length === 0;
  18.  
  19. if (noCourses) {
  20. return <div>No courses available, please try again in a second.</div>;
  21. } else {
  22. return (
  23. <S.List>
  24. {coursesForUser.map(course => {
  25. let disabled = !unlockedModules.includes(course.title);
  26. return (
  27. <S.Item
  28. key={course}
  29. disabled={disabled}
  30. to={disabled ? "" : `/lab/${course}.slug`}
  31. >
  32. {course.title}
  33. </S.Item>
  34. );
  35. })}
  36. </S.List>
  37. );
  38. }
  39. }
  40.  
  41. function UserContent({ user }) {
  42. if (!(user && user.createdAt)) {
  43. return <SpinnerComponent />;
  44. } else if (!user.enabled) {
  45. return (
  46. <div>Your account is not enabled yet, please take a break 🍵️😎️</div>
  47. );
  48. } else {
  49. return <DoMe user={user} />;
  50. }
  51. }
  52.  
  53. function Home() {
  54. const { user } = useContext(AuthContext);
  55.  
  56. return (
  57. <S.Home>
  58. <Header />
  59. <S.Content>
  60. <UserContent user={user} />
  61. </S.Content>
  62. </S.Home>
  63. );
  64. }
  65.  
  66. export default Home;
Add Comment
Please, Sign In to add comment