diff --git a/app/components/reader/readerHeader.vue b/app/components/reader/readerHeader.vue new file mode 100644 index 0000000..bc05480 --- /dev/null +++ b/app/components/reader/readerHeader.vue @@ -0,0 +1,27 @@ + + + \ No newline at end of file diff --git a/app/components/reader/readerStats.vue b/app/components/reader/readerStats.vue new file mode 100644 index 0000000..8d7a32d --- /dev/null +++ b/app/components/reader/readerStats.vue @@ -0,0 +1,64 @@ + + \ No newline at end of file diff --git a/app/pages/reader/home.vue b/app/pages/reader/home.vue index 6d61da1..52dc843 100644 --- a/app/pages/reader/home.vue +++ b/app/pages/reader/home.vue @@ -2,6 +2,7 @@ import { onMounted } from 'vue' import { authClient } from '~/utils/auth-client' import type { Student, Announcement} from '~~/prisma/generated/client' +import ReaderHeader from '../../components/reader/readerHeader.vue' definePageMeta({ ssr: false }) @@ -34,28 +35,6 @@ const themeClass = computed(() => { return `reader-app ${t} ${d}`.trim() }) -// ── Click-triggered badge animations ── -const xpClicked = ref(false) -const ticketClicked = ref(false) -const burstCoins = ref<{id:number; tx:number; ty:number}[]>([]) -const flyTickets = ref([]) - -function triggerXpClick() { - xpClicked.value = true - burstCoins.value = [ - { id: Date.now(), tx: -32, ty: -40 }, - { id: Date.now() + 1, tx: 0, ty: -48 }, - { id: Date.now() + 2, tx: 32, ty: -40 }, - ] - setTimeout(() => { xpClicked.value = false; burstCoins.value = [] }, 800) -} - -function triggerTicketClick() { - ticketClicked.value = true - flyTickets.value = [Date.now()] - setTimeout(() => { ticketClicked.value = false; flyTickets.value = [] }, 1000) -} - //TODO 3 //Announcement fetch all currently-active announcements const { data: announcements } = await useFetch('/api/announcement?active=true') @@ -94,57 +73,7 @@ const completionMessage = computed(() => {