From 48ca360c3c30d6fd09d7aaf2f04ec8b04ba5df8e Mon Sep 17 00:00:00 2001 From: srijitcoder Date: Thu, 24 Oct 2024 01:26:04 +0530 Subject: [PATCH] feat: Added session tab, action buttons, clubbed similar code from session list and file list --- src/App.vue | 9 ++ src/components/global/ListPlaceholder.vue | 59 ++++++++++ src/components/session/Delete.vue | 66 +++++++++++ src/components/session/index.js | 1 + .../sessions-view/check-status-method.js | 2 +- src/views/SessionView.vue | 104 +++++++++++++----- src/views/SessionsView.vue | 84 ++------------ 7 files changed, 221 insertions(+), 104 deletions(-) create mode 100644 src/components/global/ListPlaceholder.vue create mode 100644 src/components/session/Delete.vue create mode 100644 src/components/session/index.js diff --git a/src/App.vue b/src/App.vue index 76b1e55..904cf17 100644 --- a/src/App.vue +++ b/src/App.vue @@ -14,9 +14,11 @@ const navPaginationItems = ref([ to: { path: "/" }, }, ]); +const snackbar = ref(false); const isOctokitInitialised = ref(false); provide("set-nav-button-config", navButtonConfig); provide("set-nav-pagination-items", navPaginationItems); +provide("set-snackbar", snackbar); onMounted(async () => { const loader = useLoader().show(); @@ -36,6 +38,13 @@ onMounted(async () => { + + diff --git a/src/components/global/ListPlaceholder.vue b/src/components/global/ListPlaceholder.vue new file mode 100644 index 0000000..3b45cfb --- /dev/null +++ b/src/components/global/ListPlaceholder.vue @@ -0,0 +1,59 @@ + + + diff --git a/src/components/session/Delete.vue b/src/components/session/Delete.vue new file mode 100644 index 0000000..0853943 --- /dev/null +++ b/src/components/session/Delete.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/components/session/index.js b/src/components/session/index.js new file mode 100644 index 0000000..525e541 --- /dev/null +++ b/src/components/session/index.js @@ -0,0 +1 @@ +export { default as DeleteSession } from "./Delete.vue"; diff --git a/src/methods/sessions-view/check-status-method.js b/src/methods/sessions-view/check-status-method.js index c1a59aa..538be8f 100644 --- a/src/methods/sessions-view/check-status-method.js +++ b/src/methods/sessions-view/check-status-method.js @@ -10,7 +10,7 @@ export default async function checkStatusMethod( const check = await getCheckStatus(session.number); const requestedChanges = await getSessionReviewStatus(session.number); - if (currPage === updatedPage.value) { + if (currPage === updatedPage.value && sessions.value) { sessions.value[index] = { ...session, requested_changes: requestedChanges, diff --git a/src/views/SessionView.vue b/src/views/SessionView.vue index fcd603a..9df7bb3 100644 --- a/src/views/SessionView.vue +++ b/src/views/SessionView.vue @@ -13,6 +13,8 @@ import { import OctIcon from "@/components/global/OctIcon.vue"; import Tooltip from "@/components/global/Tooltip.vue"; import { useLoader } from "@/helpers/index.js"; +import ListPlaceholder from "@/components/global/ListPlaceholder.vue"; +import { DeleteSession } from "@/components/session/index.js"; const route = useRoute(); const router = useRouter(); @@ -20,11 +22,12 @@ const sessionNumber = route.params.sessionNumber; const session = ref(null); const fileChangesList = ref(null); -const snackbar = ref(false); const loader = ref({}); const totalPage = ref(0); const deleteFile = ref(false); const page = ref(route.query.page ? parseInt(route.query.page, 10) : 1); + +const snackbar = inject("set-snackbar"); const navButtonConfig = inject("set-nav-button-config"); const navPaginationItems = inject("set-nav-pagination-items"); @@ -89,6 +92,61 @@ const deleteFileHandle = async () => { - + diff --git a/src/views/SessionsView.vue b/src/views/SessionsView.vue index d0aa4e0..08bdd6d 100644 --- a/src/views/SessionsView.vue +++ b/src/views/SessionsView.vue @@ -14,6 +14,8 @@ import { import { useRoute, useRouter } from "vue-router"; import Tooltip from "@/components/global/Tooltip.vue"; import { useLoader } from "@/helpers/index.js"; +import { DeleteSession } from "@/components/session"; +import ListPlaceholder from "@/components/global/ListPlaceholder.vue"; const route = useRoute(); const router = useRouter(); @@ -23,10 +25,11 @@ const totalPage = ref(0); const page = ref(route.query.page ? parseInt(route.query.page, 10) : 1); const deleteSession = ref(false); const reviewSession = ref(false); -const snackbar = ref(false); const createNewSession = ref(false); const newSessionName = ref(""); const loader = ref({}); + +const snackbar = inject("set-snackbar"); const navButtonConfig = inject("set-nav-button-config"); const navPaginationItems = inject("set-nav-pagination-items"); @@ -90,16 +93,6 @@ const onPageChange = async (newPage) => { await updateSessionsList(true); }; -const deleteSessionHandle = async () => { - if (deleteSession.value) { - loader.value = useLoader().show(); - snackbar.value = await deleteBySessionNumber(deleteSession.value.number); - deleteSession.value = false; - loader.value.hide(); - await updateSessionsList(); - } -}; - const reviewSessionHandle = async () => { if (reviewSession.value) { loader.value = useLoader().show(); @@ -199,16 +192,11 @@ const reviewSessionHandle = async () => { variant="text" > - - - + { - - - - + + { > - - - - - - - { - - -