mirror of
https://github.com/ArthurDanjou/artsite.git
synced 2026-02-03 11:31:44 +01:00
feat: update environment variables and API endpoints for improved configuration
This commit is contained in:
@@ -1,2 +1,5 @@
|
|||||||
NUXT_PUBLIC_I18N_BASE_URL=
|
NUXT_PUBLIC_I18N_BASE_URL=
|
||||||
NUXT_ARTAPI=
|
NUXT_API_URL=
|
||||||
|
|
||||||
|
STUDIO_GITHUB_CLIENT_ID=
|
||||||
|
STUDIO_GITHUB_CLIENT_SECRET=
|
||||||
@@ -7,7 +7,7 @@ const { locale, locales, t } = useI18n({
|
|||||||
useScope: 'local',
|
useScope: 'local',
|
||||||
})
|
})
|
||||||
|
|
||||||
const { data: activity, refresh } = await useAsyncData<Activity>('activity', () => $fetch<Activity>('/api/activity'))
|
const { data: activity, refresh } = await useAsyncData<Activity>('activity', () => $fetch('/api/activity'))
|
||||||
|
|
||||||
useIntervalFn(async () => await refresh(), 5000)
|
useIntervalFn(async () => await refresh(), 5000)
|
||||||
const codingActivity = computed(() => {
|
const codingActivity = computed(() => {
|
||||||
@@ -75,7 +75,7 @@ const getActivity = computed(() => {
|
|||||||
<ClientOnly>
|
<ClientOnly>
|
||||||
<div
|
<div
|
||||||
v-if="getActivity"
|
v-if="getActivity"
|
||||||
class="flex items-start gap-2"
|
class="flex items-start gap-2 mt-4"
|
||||||
>
|
>
|
||||||
<UTooltip :text="isActive ? t('tooltip.online') : t('tooltip.idling')">
|
<UTooltip :text="isActive ? t('tooltip.online') : t('tooltip.idling')">
|
||||||
<div class="relative flex h-3 w-3 mt-2">
|
<div class="relative flex h-3 w-3 mt-2">
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ const { t } = useI18n({
|
|||||||
<ClientOnly>
|
<ClientOnly>
|
||||||
<div
|
<div
|
||||||
v-if="width > 1024"
|
v-if="width > 1024"
|
||||||
class="group text-[12px] italic flex items-center gap-1"
|
class="text-[12px] italic flex items-center gap-1 mt-4"
|
||||||
>
|
>
|
||||||
<UIcon
|
<UIcon
|
||||||
class="transform -rotate-12 duration-300 group-hover:animate-wave"
|
class="transform -rotate-12 duration-300 animate-wave"
|
||||||
name="i-ph-hand-pointing-duotone"
|
name="i-ph-hand-pointing-duotone"
|
||||||
/>
|
/>
|
||||||
<p>{{ t('quote') }}</p>
|
<p>{{ t('quote') }}</p>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ const { t } = useI18n({
|
|||||||
<UTooltip text="It's me 👋">
|
<UTooltip text="It's me 👋">
|
||||||
<UAvatar
|
<UAvatar
|
||||||
alt="Avatar"
|
alt="Avatar"
|
||||||
class="hover:rotate-[360deg] duration-500 transform-gpu rounded-full"
|
class="hover:rotate-360 duration-500 transform-gpu rounded-full"
|
||||||
size="xl"
|
size="xl"
|
||||||
src="/favicon.webp"
|
src="/favicon.webp"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ const { locale, locales, t } = useI18n({
|
|||||||
})
|
})
|
||||||
const currentLocale = computed(() => locales.value.find(l => l.code === locale.value))
|
const currentLocale = computed(() => locales.value.find(l => l.code === locale.value))
|
||||||
|
|
||||||
const { data: stats } = await useAsyncData<Stats>('stats', () => $fetch())
|
const { data: stats } = await useAsyncData<Stats>('stats', () => $fetch('/api/stats'))
|
||||||
|
|
||||||
const time = useTimeAgo(new Date(stats.value!.coding.data.range.start) ?? new Date()).value.split(' ')[0]
|
const time = useTimeAgo(new Date(stats.value!.coding.data.range.start)).value.split(' ')[0]
|
||||||
const date = useDateFormat(new Date(stats.value!.coding.data.range.start ?? new Date()), 'DD MMMM YYYY', { locales: currentLocale.value?.code ?? 'en' })
|
const date = useDateFormat(new Date(stats.value!.coding.data.range.start), 'DD MMMM YYYY', { locales: currentLocale.value?.code ?? 'en' })
|
||||||
const hours = usePrecision(stats.value!.coding.data.grand_total.total_seconds_including_other_language / 3600, 0)
|
const hours = usePrecision(stats.value!.coding.data.grand_total.total_seconds_including_other_language / 3600, 0)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ const { data: page } = await useAsyncData(`/home/${locale.value}`, () => {
|
|||||||
<template>
|
<template>
|
||||||
<main class="max-w-none! prose dark:prose-invert">
|
<main class="max-w-none! prose dark:prose-invert">
|
||||||
<ContentRenderer v-if="page" :value="page" class="mt-8 md:mt-16" />
|
<ContentRenderer v-if="page" :value="page" class="mt-8 md:mt-16" />
|
||||||
<!-- <HomeStats />
|
<HomeStats />
|
||||||
<HomeActivity />
|
<HomeActivity />
|
||||||
<HomeQuote />
|
<HomeQuote />
|
||||||
<HomeCatchPhrase /> -->
|
<HomeCatchPhrase />
|
||||||
</main>
|
</main>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -101,7 +101,9 @@ export default defineNuxtConfig({
|
|||||||
},
|
},
|
||||||
|
|
||||||
runtimeConfig: {
|
runtimeConfig: {
|
||||||
artapi: '',
|
api: {
|
||||||
|
url: ''
|
||||||
|
},
|
||||||
public: {
|
public: {
|
||||||
i18n: {
|
i18n: {
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
|
|||||||
4
server/api/activity.get.ts
Normal file
4
server/api/activity.get.ts
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
export default defineEventHandler(async (event) => {
|
||||||
|
const config = useRuntimeConfig(event)
|
||||||
|
return await $fetch(`${config.api.url}/api/activity`)
|
||||||
|
})
|
||||||
4
server/api/stats.get.ts
Normal file
4
server/api/stats.get.ts
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
export default defineEventHandler(async (event) => {
|
||||||
|
const config = useRuntimeConfig(event)
|
||||||
|
return await $fetch(`${config.api.url}/api/stats`)
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user