You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
3.3 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. <script lang="ts">
  2. import { Router, Link, Route } from "svelte-routing";
  3. import { onMount } from "svelte";
  4. import authStore from "./stores/auth";
  5. import Boi from "./components/Boi.svelte";
  6. import { signOut } from "./clients/amplify";
  7. import FrontPage from "./pages/FrontPage.svelte";
  8. import ProjectPage from "./pages/ProjectPage.svelte";
  9. import LogsPage from "./pages/LogsPage.svelte";
  10. import GroupPage from "./pages/GroupPage.svelte";
  11. import GoalPage from "./pages/GoalPage.svelte";
  12. import QlPage from "./pages/QLPage.svelte";
  13. import GroupForm from "./forms/GroupForm.svelte";
  14. import GoalForm from "./forms/GoalForm.svelte";
  15. import LogForm from "./forms/LogForm.svelte";
  16. import ProjectForm from "./forms/ProjectForm.svelte";
  17. import ItemForm from "./forms/ItemForm.svelte";
  18. import TaskForm from "./forms/TaskForm.svelte";
  19. import TaskLinkForm from "./forms/TaskLinkForm.svelte";
  20. import LoginForm from "./forms/LoginForm.svelte";
  21. import ModalRoute from "./components/ModalRoute.svelte";
  22. import FocusHandler from "./components/FocusHandler.svelte";
  23. import Menu from "./components/Menu.svelte";
  24. async function logout() {
  25. await signOut();
  26. await authStore.check();
  27. }
  28. onMount(() => {
  29. authStore.check()
  30. });
  31. </script>
  32. {#if $authStore.checked}
  33. {#if $authStore.loggedIn}
  34. <FocusHandler />
  35. <Router>
  36. <Menu />
  37. <main>
  38. <Route path="/" component={FrontPage} />
  39. <Route path="/goals/" component={GoalPage} />
  40. <Route path="/projects/" component={ProjectPage} />
  41. <Route path="/questlog/" component={QlPage} />
  42. <Route path="/logs/" component={LogsPage} />
  43. <Route path="/items/" component={GroupPage} />
  44. <footer>
  45. <Boi compact tiny on:click={logout}>Sign out</Boi>
  46. </footer>
  47. </main>
  48. </Router>
  49. <ModalRoute name="log.add"> <LogForm creation /></ModalRoute>
  50. <ModalRoute name="log.edit"> <LogForm /></ModalRoute>
  51. <ModalRoute name="log.delete"> <LogForm deletion /></ModalRoute>
  52. <ModalRoute name="task.add"> <TaskForm creation /></ModalRoute>
  53. <ModalRoute name="task.edit"> <TaskForm /></ModalRoute>
  54. <ModalRoute name="task.delete"> <TaskForm deletion /></ModalRoute>
  55. <ModalRoute name="project.add"> <ProjectForm creation /></ModalRoute>
  56. <ModalRoute name="project.edit"> <ProjectForm /></ModalRoute>
  57. <ModalRoute name="project.delete"> <ProjectForm deletion /></ModalRoute>
  58. <ModalRoute name="item.add"> <ItemForm creation /></ModalRoute>
  59. <ModalRoute name="item.edit"> <ItemForm /></ModalRoute>
  60. <ModalRoute name="item.delete"> <ItemForm deletion /></ModalRoute>
  61. <ModalRoute name="group.add"> <GroupForm creation /></ModalRoute>
  62. <ModalRoute name="group.edit"> <GroupForm /></ModalRoute>
  63. <ModalRoute name="group.delete"> <GroupForm deletion /></ModalRoute>
  64. <ModalRoute name="goal.add"> <GoalForm creation /></ModalRoute>
  65. <ModalRoute name="goal.edit"> <GoalForm /></ModalRoute>
  66. <ModalRoute name="goal.delete"> <GoalForm deletion /></ModalRoute>
  67. <ModalRoute name="tasklink.add"> <TaskLinkForm creation /></ModalRoute>
  68. <ModalRoute name="tasklink.delete"> <TaskLinkForm deletion /></ModalRoute>
  69. {:else}
  70. <LoginForm />
  71. {/if}
  72. {/if}
  73. <style>
  74. main {
  75. text-align: left;
  76. max-width: 99.5%;
  77. margin: 1em auto;
  78. }
  79. footer {
  80. text-align: left;
  81. width: 920px;
  82. max-width: 99.5%;
  83. margin: 1em auto;
  84. padding-bottom: 4em;
  85. text-align: center;
  86. }
  87. </style>