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.

108 lines
3.8 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 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 ProjectGroupForm from "./forms/ProjectGroupForm.svelte";
  18. import ItemForm from "./forms/ItemForm.svelte";
  19. import TaskForm from "./forms/TaskForm.svelte";
  20. import TaskLinkForm from "./forms/TaskLinkForm.svelte";
  21. import LoginForm from "./forms/LoginForm.svelte";
  22. import ModalRoute from "./components/ModalRoute.svelte";
  23. import FocusHandler from "./components/FocusHandler.svelte";
  24. import Menu from "./components/Menu.svelte";
  25. import markStale from "./stores/markStale";
  26. async function logout() {
  27. await signOut();
  28. await authStore.check();
  29. markStale("*");
  30. }
  31. onMount(() => {
  32. authStore.check()
  33. });
  34. </script>
  35. {#if $authStore.checked}
  36. {#if $authStore.loggedIn}
  37. <FocusHandler />
  38. <Router>
  39. <Menu />
  40. <main>
  41. <Route path="/" component={FrontPage} />
  42. <Route path="/goals/" component={GoalPage} />
  43. <Route path="/projects/" component={ProjectPage} />
  44. <Route path="/questlog/:gid/:pid" let:params >
  45. <QlPage groupId={params.gid} projectId={params.pid} />
  46. </Route>
  47. <Route path="/questlog/:gid" let:params >
  48. <QlPage groupId={params.gid} />
  49. </Route>
  50. <Route path="/questlog/" component={QlPage} />
  51. <Route path="/logs/" component={LogsPage} />
  52. <Route path="/items/" component={GroupPage} />
  53. <footer>
  54. <Boi compact tiny on:click={logout}>Sign out</Boi>
  55. </footer>
  56. </main>
  57. </Router>
  58. <ModalRoute name="log.add"> <LogForm creation /></ModalRoute>
  59. <ModalRoute name="log.edit"> <LogForm /></ModalRoute>
  60. <ModalRoute name="log.delete"> <LogForm deletion /></ModalRoute>
  61. <ModalRoute name="task.add"> <TaskForm creation /></ModalRoute>
  62. <ModalRoute name="task.edit"> <TaskForm /></ModalRoute>
  63. <ModalRoute name="task.delete"> <TaskForm deletion /></ModalRoute>
  64. <ModalRoute name="project.add"> <ProjectForm creation /></ModalRoute>
  65. <ModalRoute name="project.edit"> <ProjectForm /></ModalRoute>
  66. <ModalRoute name="project.delete"> <ProjectForm deletion /></ModalRoute>
  67. <ModalRoute name="projectgroup.add"> <ProjectGroupForm creation /></ModalRoute>
  68. <ModalRoute name="projectgroup.edit"> <ProjectGroupForm /></ModalRoute>
  69. <ModalRoute name="projectgroup.delete"> <ProjectGroupForm deletion /></ModalRoute>
  70. <ModalRoute name="item.add"> <ItemForm creation /></ModalRoute>
  71. <ModalRoute name="item.edit"> <ItemForm /></ModalRoute>
  72. <ModalRoute name="item.delete"> <ItemForm deletion /></ModalRoute>
  73. <ModalRoute name="group.add"> <GroupForm creation /></ModalRoute>
  74. <ModalRoute name="group.edit"> <GroupForm /></ModalRoute>
  75. <ModalRoute name="group.delete"> <GroupForm deletion /></ModalRoute>
  76. <ModalRoute name="goal.add"> <GoalForm creation /></ModalRoute>
  77. <ModalRoute name="goal.edit"> <GoalForm /></ModalRoute>
  78. <ModalRoute name="goal.delete"> <GoalForm deletion /></ModalRoute>
  79. <ModalRoute name="tasklink.add"> <TaskLinkForm creation /></ModalRoute>
  80. <ModalRoute name="tasklink.delete"> <TaskLinkForm deletion /></ModalRoute>
  81. {:else}
  82. <LoginForm />
  83. {/if}
  84. {/if}
  85. <style>
  86. main {
  87. text-align: left;
  88. max-width: 99.5%;
  89. margin: 1em auto;
  90. }
  91. footer {
  92. text-align: left;
  93. width: 920px;
  94. max-width: 99.5%;
  95. margin: 1em auto;
  96. padding-bottom: 4em;
  97. text-align: center;
  98. }
  99. </style>