Improves the brandingStore usages
This commit is contained in:
@@ -1,41 +1,21 @@
|
||||
<template>
|
||||
<h1>Content Browser</h1>
|
||||
<div class="px-4" :style="{ color: brandingStore.value.colors.onBackground}">
|
||||
<h1>Content Browser</h1>
|
||||
<p>Get me the content i need the money!</p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script async setup>
|
||||
import {watch, ref, onBeforeMount} from 'vue';
|
||||
import {useRoute} from 'vue-router';
|
||||
import {useClient} from "@/plugins/api.js";
|
||||
import { ref} from 'vue';
|
||||
import {useBrandingStore} from "@/stores/brandingStore.js";
|
||||
|
||||
const brandingStore = useBrandingStore()
|
||||
|
||||
const creator = ref(null)
|
||||
const loading = ref(true)
|
||||
const contents = ref([])
|
||||
|
||||
const client = useClient()
|
||||
const route = useRoute()
|
||||
|
||||
function contentPosted(content) {
|
||||
contents.value.unshift(content)
|
||||
}
|
||||
|
||||
onBeforeMount(async () => await fetchCreatorData(route.params.creator))
|
||||
|
||||
watch(
|
||||
() => route.params.creator,
|
||||
async () => await fetchCreatorData(route.params.creator)
|
||||
)
|
||||
|
||||
const fetchCreatorData = async (creatorAlias) => {
|
||||
try {
|
||||
loading.value = true
|
||||
const response = await client.get(`/api/creators/@${creatorAlias}`)
|
||||
creator.value = response.data
|
||||
} catch (error) {
|
||||
console.error(`Error fetching content: ${error}`)
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -1,63 +1,29 @@
|
||||
<template>
|
||||
|
||||
<div v-if="creator && creator.id">
|
||||
<div class="w-full h-full pr-4">
|
||||
<content-list :creator-id="creator.id"
|
||||
:contents="contents"
|
||||
></content-list>
|
||||
</div>
|
||||
|
||||
<div v-if="brandingStore.value.loading">
|
||||
<v-progress-linear indeterminate></v-progress-linear>
|
||||
</div>
|
||||
|
||||
|
||||
<div v-else>
|
||||
<div v-if="loading">
|
||||
<v-progress-linear indeterminate></v-progress-linear>
|
||||
</div>
|
||||
<div v-else>
|
||||
<v-card>
|
||||
<v-card-text style="text-align: center;">
|
||||
Aucun créateur au nom de {{ route.params.creator }}
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
<div class="w-full h-full pr-4">
|
||||
<content-list :creator-id="brandingStore.value.id"
|
||||
:contents="news"
|
||||
></content-list>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
<script async setup>
|
||||
import {watch, ref, onBeforeMount} from 'vue';
|
||||
import {useRoute} from 'vue-router';
|
||||
import {useClient} from "@/plugins/api.js";
|
||||
import CreatorBanner from "@/views/creators/CreatorBanner.vue";
|
||||
import {ref} from 'vue';
|
||||
import ContentList from "@/views/contents/ContentList.vue";
|
||||
import {useBrandingStore} from "@/stores/brandingStore.js";
|
||||
|
||||
const creator = ref(null)
|
||||
const loading = ref(true)
|
||||
const contents = ref([])
|
||||
|
||||
const client = useClient()
|
||||
const route = useRoute()
|
||||
const brandingStore = useBrandingStore()
|
||||
|
||||
const news = ref([])
|
||||
function contentPosted(content) {
|
||||
contents.value.unshift(content)
|
||||
}
|
||||
|
||||
onBeforeMount(async () => await fetchCreatorData(route.params.creator))
|
||||
|
||||
watch(
|
||||
() => route.params.creator,
|
||||
async () => await fetchCreatorData(route.params.creator)
|
||||
)
|
||||
|
||||
const fetchCreatorData = async (creatorAlias) => {
|
||||
try {
|
||||
loading.value = true
|
||||
const response = await client.get(`/api/creators/@${creatorAlias}`)
|
||||
creator.value = response.data
|
||||
} catch (error) {
|
||||
console.error(`Error fetching content: ${error}`)
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
news.value.unshift(content)
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user