🗑️ Clean up layouts
This commit is contained in:
		| @@ -5,13 +5,11 @@ | ||||
|     </v-alert> | ||||
|   </v-expand-transition> | ||||
|  | ||||
|   <v-data-table-server | ||||
|   <v-data-table | ||||
|     density="compact" | ||||
|     :headers="dataDefinitions.stickers" | ||||
|     :items="stickers" | ||||
|     :items-length="pagination.stickers.total" | ||||
|     :loading="reverting.stickers" | ||||
|     v-model:items-per-page="pagination.stickers.pageSize" | ||||
|     @update:options="readStickers" | ||||
|     item-value="id" | ||||
|   > | ||||
| @@ -74,23 +72,24 @@ | ||||
|             <template v-slot:default="{ isActive }"> | ||||
|               <v-card :title="`Delete sticker #${item.id}?`"> | ||||
|                 <v-card-text> | ||||
|                   This action will delete this sticker, all content used it will no longer show your sticker. | ||||
|                   But the attachment will still exists. | ||||
|                   This action will delete this sticker, all content used it will no longer show your sticker. But the | ||||
|                   attachment will still exists. | ||||
|                 </v-card-text> | ||||
|  | ||||
|                 <v-card-actions> | ||||
|                   <v-spacer></v-spacer> | ||||
|  | ||||
|                   <v-btn | ||||
|                     text="Cancel" | ||||
|                     color="grey" | ||||
|                     @click="isActive.value = false" | ||||
|                   ></v-btn> | ||||
|                   <v-btn text="Cancel" color="grey" @click="isActive.value = false"></v-btn> | ||||
|  | ||||
|                   <v-btn | ||||
|                     text="Delete" | ||||
|                     color="error" | ||||
|                     @click="() => { deleteSticker(item); isActive.value = false }" | ||||
|                     @click=" | ||||
|                       () => { | ||||
|                         deleteSticker(item) | ||||
|                         isActive.value = false | ||||
|                       } | ||||
|                     " | ||||
|                   /> | ||||
|                 </v-card-actions> | ||||
|               </v-card> | ||||
| @@ -99,7 +98,7 @@ | ||||
|         </td> | ||||
|       </tr> | ||||
|     </template> | ||||
|   </v-data-table-server> | ||||
|   </v-data-table> | ||||
| </template> | ||||
|  | ||||
| <script setup lang="ts"> | ||||
| @@ -108,7 +107,7 @@ import { solarFetch } from "~/utils/request" | ||||
| const config = useRuntimeConfig() | ||||
| const { t } = useI18n() | ||||
|  | ||||
| const props = defineProps<{ packId: number, packPrefix?: string }>() | ||||
| const props = defineProps<{ packId: number; packPrefix?: string }>() | ||||
|  | ||||
| const error = ref<null | string>(null) | ||||
|  | ||||
| @@ -125,34 +124,20 @@ const dataDefinitions: { [id: string]: any[] } = { | ||||
| const stickers = ref<any>([]) | ||||
|  | ||||
| const reverting = reactive({ stickers: false }) | ||||
| const pagination = reactive({ | ||||
|   stickers: { page: 1, pageSize: 5, total: 0 }, | ||||
| }) | ||||
|  | ||||
| async function readStickers({ page, itemsPerPage }: { page?: number; itemsPerPage?: number }) { | ||||
|   if (itemsPerPage) pagination.stickers.pageSize = itemsPerPage | ||||
|   if (page) pagination.stickers.page = page | ||||
|  | ||||
| async function readStickers() { | ||||
|   reverting.stickers = true | ||||
|   const res = await solarFetch( | ||||
|     "/cgi/uc/stickers?" + | ||||
|     new URLSearchParams({ | ||||
|       pack: props.packId.toString(), | ||||
|       take: pagination.stickers.pageSize.toString(), | ||||
|       offset: ((pagination.stickers.page - 1) * pagination.stickers.pageSize).toString(), | ||||
|     }), | ||||
|   ) | ||||
|   const res = await solarFetch("/cgi/uc/stickers/packs/" + props.packId) | ||||
|   if (res.status !== 200) { | ||||
|     error.value = await res.text() | ||||
|   } else { | ||||
|     const data = await res.json() | ||||
|     stickers.value = data["data"] | ||||
|     pagination.stickers.total = data["count"] | ||||
|     stickers.value = data["stickers"] | ||||
|   } | ||||
|   reverting.stickers = false | ||||
| } | ||||
|  | ||||
| onMounted(() => readStickers({})) | ||||
| onMounted(() => readStickers()) | ||||
|  | ||||
| const submitting = ref(false) | ||||
|  | ||||
| @@ -165,7 +150,7 @@ async function deleteSticker(item: any) { | ||||
|   if (res.status !== 200) { | ||||
|     error.value = await res.text() | ||||
|   } else { | ||||
|     await readStickers({}) | ||||
|     await readStickers() | ||||
|   } | ||||
|  | ||||
|   submitting.value = false | ||||
|   | ||||
| @@ -1,17 +1,10 @@ | ||||
| <template> | ||||
|   <v-app-bar flat color="primary" scroll-behavior="hide" scroll-threshold="800"> | ||||
|     <v-container fluid class="mx-auto d-flex align-center justify-center px-8"> | ||||
|       <v-tooltip> | ||||
|         <template #activator="{ props }"> | ||||
|           <div @click="openDrawer = !openDrawer" v-bind="props" class="cursor-pointer"> | ||||
|             <v-img class="me-4 ms-1" width="32" height="32" alt="Logo" :src="Logo" /> | ||||
|           </div> | ||||
|         </template> | ||||
|         Open / close drawer | ||||
|       </v-tooltip> | ||||
|       <v-app-bar-nav-icon @click="openDrawer = !openDrawer" /> | ||||
|  | ||||
|       <nuxt-link to="/dev" exact> | ||||
|         <h2 class="mt-1">Creator Hub</h2> | ||||
|       <nuxt-link to="/creator" exact> | ||||
|         <h2>Creator Hub</h2> | ||||
|       </nuxt-link> | ||||
|  | ||||
|       <v-spacer></v-spacer> | ||||
| @@ -45,12 +38,10 @@ | ||||
| </template> | ||||
|  | ||||
| <script setup lang="ts"> | ||||
| import Logo from "../assets/logo-w-shadow.png" | ||||
|  | ||||
| const { t } = useI18n() | ||||
| const openDrawer = ref(false) | ||||
|  | ||||
| useHead({ | ||||
|   titleTemplate: "%s | Solsynth Creator Hub" | ||||
|   titleTemplate: "%s | Solsynth Creator Hub", | ||||
| }) | ||||
| </script> | ||||
|   | ||||
| @@ -1,17 +1,10 @@ | ||||
| <template> | ||||
|   <v-app-bar flat color="primary" scroll-behavior="hide" scroll-threshold="800"> | ||||
|     <v-container fluid class="mx-auto d-flex align-center justify-center px-8"> | ||||
|       <v-tooltip> | ||||
|         <template #activator="{ props }"> | ||||
|           <div @click="openDrawer = !openDrawer" v-bind="props" class="cursor-pointer"> | ||||
|             <v-img class="me-4 ms-1" width="32" height="32" alt="Logo" :src="Logo" /> | ||||
|           </div> | ||||
|         </template> | ||||
|         Open / close drawer | ||||
|       </v-tooltip> | ||||
|     <v-container fluid class="mx-auto d-flex align-center justify-center pr-8"> | ||||
|       <v-app-bar-nav-icon @click="openDrawer = !openDrawer" /> | ||||
|  | ||||
|       <nuxt-link to="/dev" exact> | ||||
|         <h2 class="mt-1">Developer Portal</h2> | ||||
|         <h2>Developer Portal</h2> | ||||
|       </nuxt-link> | ||||
|  | ||||
|       <v-spacer></v-spacer> | ||||
| @@ -51,6 +44,6 @@ const { t } = useI18n() | ||||
| const openDrawer = ref(false) | ||||
|  | ||||
| useHead({ | ||||
|   titleTemplate: "%s | Solsynth Dev Portal" | ||||
|   titleTemplate: "%s | Solsynth Dev Portal", | ||||
| }) | ||||
| </script> | ||||
|   | ||||
| @@ -6,13 +6,7 @@ | ||||
|       </div> | ||||
|  | ||||
|       <div class="flex gap-2"> | ||||
|         <v-btn | ||||
|           color="primary" | ||||
|           text="New" | ||||
|           append-icon="mdi-plus" | ||||
|           variant="tonal" | ||||
|           to="/creator/stickers/new" | ||||
|         /> | ||||
|         <v-btn color="primary" text="New" append-icon="mdi-plus" variant="tonal" to="/creator/stickers/new" /> | ||||
|       </div> | ||||
|     </div> | ||||
|  | ||||
| @@ -24,10 +18,7 @@ | ||||
|  | ||||
|     <div class="mt-5"> | ||||
|       <v-expansion-panels> | ||||
|         <v-expansion-panel | ||||
|           v-for="item in data" | ||||
|           :key="'sticker-pack#'+item.id" | ||||
|         > | ||||
|         <v-expansion-panel v-for="item in data" :key="'sticker-pack#' + item.id"> | ||||
|           <template #title> | ||||
|             <div class="flex items-center gap-2"> | ||||
|               <p>{{ item.name }}</p> | ||||
| @@ -87,16 +78,17 @@ | ||||
|                         <v-card-actions> | ||||
|                           <v-spacer></v-spacer> | ||||
|  | ||||
|                           <v-btn | ||||
|                             text="Cancel" | ||||
|                             color="grey" | ||||
|                             @click="isActive.value = false" | ||||
|                           ></v-btn> | ||||
|                           <v-btn text="Cancel" color="grey" @click="isActive.value = false"></v-btn> | ||||
|  | ||||
|                           <v-btn | ||||
|                             text="Delete" | ||||
|                             color="error" | ||||
|                             @click="() => { deletePack(item); isActive.value = false }" | ||||
|                             @click=" | ||||
|                               () => { | ||||
|                                 deletePack(item) | ||||
|                                 isActive.value = false | ||||
|                               } | ||||
|                             " | ||||
|                           /> | ||||
|                         </v-card-actions> | ||||
|                       </v-card> | ||||
| @@ -131,6 +123,7 @@ useHead({ | ||||
| }) | ||||
|  | ||||
| const { t } = useI18n() | ||||
| const ua = useUserinfo() | ||||
|  | ||||
| const loading = ref(false) | ||||
| const error = ref<null | string>(null) | ||||
| @@ -140,7 +133,7 @@ const data = ref<any[]>([]) | ||||
| async function readPacks() { | ||||
|   loading.value = true | ||||
|  | ||||
|   const res = await solarFetch(`/cgi/uc/stickers/packs?take=10&offset=${data.value.length}`) | ||||
|   const res = await solarFetch(`/cgi/uc/stickers/packs?take=10&author=${ua.userinfo?.id}&offset=${data.value.length}`) | ||||
|   if (res.status != 200) { | ||||
|     error.value = await res.text() | ||||
|   } else { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user