refactor: organize frontend project structure

- feat: add toggle for conversation sidebar
- save sidebar state in localstorage.
This commit is contained in:
Abhinav Raut
2025-02-06 03:33:13 +05:30
parent c5cf62573e
commit ceb076bbba
162 changed files with 608 additions and 1040 deletions

View File

@@ -0,0 +1,59 @@
<template>
<div>
<div class="flex justify-between mb-5">
<div></div>
<div>
<Button @click="navigateToNewOIDC">New OIDC</Button>
</div>
</div>
<div>
<Spinner v-if="isLoading"></Spinner>
<DataTable :columns="columns" :data="oidc" v-else />
</div>
</div>
</template>
<script setup>
import { ref, onMounted, onUnmounted } from 'vue'
import DataTable from '@/components/datatable/DataTable.vue'
import { columns } from '@/features/admin/oidc/dataTableColumns.js'
import { Button } from '@/components/ui/button'
import { useRouter } from 'vue-router'
import { useEmitter } from '@/composables/useEmitter'
import { Spinner } from '@/components/ui/spinner'
import { EMITTER_EVENTS } from '@/constants/emitterEvents.js'
import api from '@/api'
const oidc = ref([])
const isLoading = ref(false)
const router = useRouter()
const emit = useEmitter()
onMounted(() => {
fetchAll()
emit.on(EMITTER_EVENTS.REFRESH_LIST, refreshList)
})
onUnmounted(() => {
emit.off(EMITTER_EVENTS.REFRESH_LIST, refreshList)
})
const refreshList = (data) => {
if (data?.model === 'oidc') fetchAll()
}
const fetchAll = async () => {
try {
isLoading.value = true
const resp = await api.getAllOIDC()
oidc.value = resp.data.data
} finally {
isLoading.value = false
}
}
const navigateToNewOIDC = () => {
router.push('/admin/oidc/new')
}
</script>