mirror of
https://github.com/versia-pub/frontend.git
synced 2025-12-06 08:28:20 +01:00
106 lines
5.3 KiB
Vue
106 lines
5.3 KiB
Vue
<template>
|
|
<div class="relative min-h-dvh flex flex-row justify-center lg:justify-between">
|
|
<div class="max-w-md w-full hidden lg:block">
|
|
|
|
</div>
|
|
<div class="flex flex-col justify-center max-w-lg w-full py-32 sm:py-48 px-6 lg:px-8">
|
|
<div class="hidden sm:mb-8 sm:flex sm:justify-center">
|
|
<div
|
|
class="relative rounded px-3 py-1 text-sm leading-6 text-gray-300 ring-1 ring-white/10 hover:ring-white/20">
|
|
You are using <span class="font-semibold text-pink-400">Lysand 0.5-dev</span>
|
|
</div>
|
|
</div>
|
|
<div class="text-center">
|
|
<h1
|
|
class="text-4xl font-bold tracking-tight bg-gradient-to-r from-pink-300 via-purple-300 to-indigo-400 text-transparent bg-clip-text sm:text-5xl">
|
|
Welcome to Lysand</h1>
|
|
<p class="mt-6 text-lg leading-8 text-gray-300">You can login to this server by pointing any
|
|
Mastodon
|
|
client at <strong class="font-bold">{{ baseUrl }}</strong></p>
|
|
<div class="mt-10 flex items-center justify-center gap-6 md:flex-row flex-col">
|
|
<NuxtLink href="/public">
|
|
<ButtonsPrimary>
|
|
Public timeline
|
|
</ButtonsPrimary>
|
|
</NuxtLink>
|
|
<a href="https://github.com/lysand-org/lysand" target="_blank">
|
|
<ButtonsSecondary>
|
|
Create your own instance
|
|
</ButtonsSecondary>
|
|
</a>
|
|
</div>
|
|
|
|
<p class="mt-6 text-lg leading-8 text-gray-300">Here are some recommended clients:</p>
|
|
<ul class="w-full mx-auto max-w-md flex flex-col gap-3 mt-4">
|
|
<li v-for="client of useConfig().RECOMMENDED_CLIENTS" :key="client.name" class="w-full">
|
|
<a :href="client.link" target="_blank"
|
|
class="rounded-sm ring-2 ring-white/10 px-4 py-2 w-full flex flex-row gap-3 items-center">
|
|
<img :src="client.icon" :alt="client.name" class="h-10 w-10" />
|
|
<div class="flex flex-col justify-between items-start">
|
|
<h2 class="font-bold text-gray-100">{{ client.name }}</h2>
|
|
<span class="underline text-pink-700">{{ client.link }}</span>
|
|
</div>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
<p class="mt-6 text-lg leading-8 text-gray-300">
|
|
Many other clients exist, but <strong class="font-bold">they may have not been tested for
|
|
compatibility</strong>. Bug reports are nevertheless welcome.
|
|
</p>
|
|
|
|
<p class="mt-6 text-lg leading-8 text-gray-300">
|
|
Found a problem? Report it on <a href="https://github.com/lysand-org/lysand/issues/new/choose"
|
|
target="_blank" class="underline text-pink-800">the issue tracker</a>.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<aside
|
|
class="max-w-md max-h-dvh overflow-y-scroll w-full bg-dark-700 ring-1 ring-white/10 hidden lg:flex p-10 flex-col gap-4">
|
|
<div
|
|
class="aspect-video shrink-0 w-full rounded ring-white/5 bg-dark-900 shadow overflow-hidden ring-1 hover:ring-2 duration-100">
|
|
<img class="object-cover w-full h-full duration-150 hover:scale-[102%] ease-in-out"
|
|
v-if="instance?.banner" :src="instance.banner" />
|
|
</div>
|
|
|
|
<div class="prose prose-invert prose-sm">
|
|
<h2 class="text-center mb-10">{{ instance?.title }}</h2>
|
|
<div v-html="description?.content"></div>
|
|
</div>
|
|
|
|
<div v-if="contact" class="flex flex-col gap-2 mt-auto">
|
|
<h2 class="text-gray-200 font-semibold uppercase text-xs">Administrator</h2>
|
|
<div class="flex flex-row">
|
|
<NuxtLink :href="''">
|
|
<img class="h-12 w-12 rounded ring-1 ring-white/5" :src="contact.avatar" alt="" />
|
|
</NuxtLink>
|
|
<div class="flex flex-col items-start justify-around ml-4 grow overflow-hidden">
|
|
<div class="flex flex-row items-center justify-between w-full">
|
|
<NuxtLink :href="''" class="font-semibold text-gray-200 line-clamp-1 break-all">
|
|
{{
|
|
contact.display_name }}
|
|
</NuxtLink>
|
|
</div>
|
|
<span class="text-gray-400 text-sm line-clamp-1 break-all w-full">
|
|
@{{
|
|
contact.acct
|
|
}}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</aside>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
const baseUrl = useBaseUrl();
|
|
const client = await useMegalodon();
|
|
// TODO: Add banner to the instance
|
|
const instance = await useInstance(client);
|
|
const description = await useExtendedDescription(client);
|
|
const contact = instance?.contact_account;
|
|
|
|
useServerSeoMeta({
|
|
title: "Welcome to Lysand!",
|
|
});
|
|
</script> |