drop/server/components/UserFooter.vue

162 lines
5.4 KiB
Vue
Raw Permalink Normal View History

2024-10-04 14:43:02 +10:00
<template>
2025-04-07 16:11:56 -04:00
<footer class="bg-zinc-950" aria-labelledby="footer-heading">
<h2 id="footer-heading" class="sr-only">{{ $t("footer.footer") }}</h2>
2025-04-07 16:11:56 -04:00
<div class="mx-auto max-w-7xl px-6 py-16 sm:py-24 lg:px-8">
<!-- Drop Info -->
2025-04-07 16:11:56 -04:00
<div class="xl:grid xl:grid-cols-3 xl:gap-8">
<div class="space-y-8">
2025-04-16 12:03:42 -04:00
<DropWordmark class="h-10" />
2025-04-07 16:11:56 -04:00
<p class="text-sm leading-6 text-zinc-300">
{{ $t("drop.desc") }}
2025-04-07 16:11:56 -04:00
</p>
Depot API & v4 (#298) * feat: nginx + torrential basics & services system * fix: lint + i18n * fix: update torrential to remove openssl * feat: add torrential to Docker build * feat: move to self hosted runner * fix: move off self-hosted runner * fix: update nginx.conf * feat: torrential cache invalidation * fix: update torrential for cache invalidation * feat: integrity check task * fix: lint * feat: move to version ids * fix: client fixes and client-side checks * feat: new depot apis and version id fixes * feat: update torrential * feat: droplet bump and remove unsafe update functions * fix: lint * feat: v4 featureset: emulators, multi-launch commands * fix: lint * fix: mobile ui for game editor * feat: launch options * fix: lint * fix: remove axios, use $fetch * feat: metadata and task api improvements * feat: task actions * fix: slight styling issue * feat: fix style and lints * feat: totp backend routes * feat: oidc groups * fix: update drop-base * feat: creation of passkeys & totp * feat: totp signin * feat: webauthn mfa/signin * feat: launch selecting ui * fix: manually running tasks * feat: update add company game modal to use new SelectorGame * feat: executor selector * fix(docker): update rust to rust nightly for torrential build (#305) * feat: new version ui * feat: move package lookup to build time to allow for deno dev * fix: lint * feat: localisation cleanup * feat: apply localisation cleanup * feat: potential i18n refactor logic * feat: remove args from commands * fix: lint * fix: lockfile --------- Co-authored-by: Aden Lindsay <140392385+AdenMGB@users.noreply.github.com>
2026-01-13 15:32:39 +11:00
<SelectorLanguage />
2025-04-07 16:11:56 -04:00
<div class="flex space-x-6">
<NuxtLink
v-for="item in navigation.social"
:key="item.name"
:to="item.href"
target="_blank"
class="text-zinc-400 hover:text-zinc-400"
>
<span class="sr-only">{{ item.name }}</span>
<component :is="item.icon" class="h-6 w-6" aria-hidden="true" />
</NuxtLink>
</div>
</div>
<!-- Foot links -->
2025-04-07 16:11:56 -04:00
<div class="mt-16 grid grid-cols-2 gap-8 xl:col-span-2 xl:mt-0">
<div class="md:grid md:grid-cols-2 md:gap-8">
<div>
<h3 class="text-sm font-semibold leading-6 text-white">
{{ $t("footer.games") }}
</h3>
2025-04-07 16:11:56 -04:00
<ul role="list" class="mt-6 space-y-4">
<li v-for="item in navigation.games" :key="item.name">
<NuxtLink
:to="item.href"
class="text-sm leading-6 text-zinc-300 hover:text-white"
>{{ item.name }}</NuxtLink
>
</li>
</ul>
</div>
<div class="mt-10 md:mt-0">
<h3 class="text-sm font-semibold leading-6 text-white">
{{ $t("userHeader.links.community") }}
2025-04-07 16:11:56 -04:00
</h3>
<ul role="list" class="mt-6 space-y-4">
<li v-for="item in navigation.community" :key="item.name">
<NuxtLink
:to="item.href"
class="text-sm leading-6 text-zinc-300 hover:text-white"
>{{ item.name }}</NuxtLink
>
</li>
</ul>
</div>
</div>
<div class="md:grid md:grid-cols-2 md:gap-8">
<div>
<h3 class="text-sm font-semibold leading-6 text-white">
{{ $t("footer.documentation") }}
2025-04-07 16:11:56 -04:00
</h3>
<ul role="list" class="mt-6 space-y-4">
<li v-for="item in navigation.documentation" :key="item.name">
<NuxtLink
:to="item.href"
class="text-sm leading-6 text-zinc-300 hover:text-white"
>{{ item.name }}</NuxtLink
>
</li>
</ul>
</div>
<div class="mt-10 md:mt-0">
<h3 class="text-sm font-semibold leading-6 text-white">
{{ $t("footer.about") }}
</h3>
2025-04-07 16:11:56 -04:00
<ul role="list" class="mt-6 space-y-4">
<li v-for="item in navigation.about" :key="item.name">
<NuxtLink
:to="item.href"
class="text-sm leading-6 text-zinc-300 hover:text-white"
>{{ item.name }}</NuxtLink
>
</li>
</ul>
2024-10-04 14:43:02 +10:00
</div>
2025-04-07 16:11:56 -04:00
</div>
2024-10-04 14:43:02 +10:00
</div>
<div class="flex items-center justify-center xl:col-span-3 mt-8">
<NuxtLink
:to="`https://github.com/Drop-OSS/drop/releases/tag/${versionInfo.version}`"
class="text-xs text-zinc-700 hover:text-zinc-400 transition-colors duration-200 cursor-default select-none"
>
<i18n-t keypath="footer.version" tag="span" scope="global">
<template #version>
<span>{{ versionInfo.version }}</span>
</template>
<template #gitRef>
<span>{{ versionInfo.gitRef }}</span>
</template>
</i18n-t>
</NuxtLink>
</div>
2025-04-07 16:11:56 -04:00
</div>
</div>
</footer>
2024-10-04 14:43:02 +10:00
</template>
<script setup lang="ts">
2025-04-07 16:11:56 -04:00
import { IconsDiscordLogo, IconsGithubLogo } from "#components";
const { t } = useI18n();
2024-10-04 14:43:02 +10:00
const versionInfo = await $dropFetch("/api/v1");
const navigation = computed(() => ({
2025-04-07 16:11:56 -04:00
games: [
{ name: t("store.recentlyAdded"), href: "#" },
{ name: t("store.recentlyReleased"), href: "#" },
{ name: t("footer.topSellers"), href: "#" },
{ name: t("footer.findGame"), href: "#" },
2025-04-07 16:11:56 -04:00
],
community: [
{ name: t("common.friends"), href: "#" },
{ name: t("common.groups"), href: "#" },
{ name: t("common.servers"), href: "#" },
2025-04-07 16:11:56 -04:00
],
documentation: [
// TODO: public API docs
// { name: t("footer.api"), href: "https://api.droposs.org/" },
2025-04-07 16:11:56 -04:00
{
name: t("footer.docs.server"),
href: "https://droposs.org/docs/admin/quickstart",
2025-04-07 16:11:56 -04:00
},
{
name: t("footer.docs.client"),
href: "https://droposs.org/docs/user",
2025-04-07 16:11:56 -04:00
},
],
about: [
{ name: t("footer.aboutDrop"), href: "https://droposs.org/" },
{ name: t("footer.comparison"), href: "https://droposs.org/comparison" },
2025-04-07 16:11:56 -04:00
],
social: [
{
name: t("footer.social.github"),
2025-04-07 16:11:56 -04:00
href: "https://github.com/Drop-OSS",
icon: IconsGithubLogo,
},
{
name: t("footer.social.discord"),
2025-04-07 16:11:56 -04:00
href: "https://discord.gg/NHx46XKJWA",
icon: IconsDiscordLogo,
},
],
}));
2025-04-07 16:11:56 -04:00
</script>