Files
bobu/bobu/app/pages/wadiz/manage.vue
2025-07-15 11:23:20 +09:00

102 lines
2.9 KiB
Vue

<template>
<div>
<section>
<app-boards-header
:h2data="compdata.title"
v-model="selectedSort"
:sortOptions="sortOptions"
/>
</section>
<div class="text-center">
<p v-if="!userLoggedIn">You are not logged in</p>
<p v-else>You are logged in for {{ userStore.userRole }}</p>
<button @click="verifySession">verifySession</button>
</div>
<app-board-list
v-model="selectedSort"
:title="compdata.title"
:sortOptions="sortOptions"
:userRole="userRole"
:current-page="currentPage"
:total-pages="totalPages"
:page-numbers="pageNumbers"
:show-select-boxes="showSelectBoxes"
:uploadRoute="currentUploadRoute"
@toggle-select-boxes="showSelectBoxes = !showSelectBoxes"
@delete-selected="onDeleteSelected"
@go-to-page="onGoToPage"
@prev-page="onPrevPage"
@next-page="onNextPage"
:isLoading="isLoading"
:loadingMessage="loadingMessage"
>
<template #list>
<app-board-list-single
v-for="item in currentItems"
:key="item.docId"
:userId="item.userId"
:item="item"
:showSelectBox="showSelectBoxes"
@select="onToggleSelect(item)"
:iconName="['fas', 'bell']"
:routeName="currentBoardRouteName"
/>
</template>
</app-board-list>
</div>
</template>
<script setup lang="ts">
import AppBoardsHeader from '@/components/boards/BoardHeader.vue';
import AppBoardList from '@/components/boards/BoardList.vue';
import AppBoardListSingle from '@/components/boards/wadiz/WadizListSingle.vue';
import type { OrderByDirection, BoardAccessMode, WadizBoard } from '@/types';
import { useUserStore } from '@/stores/user';
import { verifySession } from '@/utils/api/verifyFromFunction';
const userStore = useUserStore();
const userLoggedIn = computed(() => userStore.userLoggedIn);
//customize
const access: BoardAccessMode = 'public';
const currentCollection = 'wadizes';
const currentUploadRoute = '/wadiz/upload';
const currentBoardRouteName = '/wadiz';
const compData = {
title: '와디즈 관리',
itemsPerPage: 20,
defaultSort: 'desc' as OrderByDirection,
};
const loading = '게시물을 불러오는 중입니다...';
import { useBoardList } from '@/composables/useBoardList';
// destructure only the things you actually need
const {
isLoading,
loadingMessage,
compdata,
currentItems,
currentPage,
pageNumbers,
selectedSort,
sortOptions,
userRole,
totalPages,
selectedItems,
showSelectBoxes,
onToggleSelect,
onDeleteSelected,
onGoToPage,
onPrevPage,
onNextPage,
} = useBoardList<WadizBoard>(currentCollection, {
title: compData.title,
itemsPerPage: compData.itemsPerPage,
defaultSort: compData.defaultSort,
access: access,
loadingMessage: loading,
});
// no more fetchBoardsAndUpdateItems or onBeforeMount
</script>