Compare commits

..

No commits in common. "8763923f33a918063cb5f796586dd7e7e71f5a63" and "e89161df53059021c1f243c0246e0f1132fe8acc" have entirely different histories.

6 changed files with 66 additions and 55 deletions

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="text-xs text-grey" :class="props.noCentered ? 'text-left' : 'text-center'"> <div class="text-xs text-grey" :class="props.noCentered ? 'text-left' : 'text-center'">
<p>{{ t("copyright") }} © {{ new Date().getFullYear() }} {{ t("brandNameFormal") }}</p> <p>{{ t("copyright") }} © {{ new Date().getFullYear() }} {{ t("brandNameFormal") }}</p>
<p v-if="services" class="flex" :class="props.noCentered ? 'justify-start' : 'justify-center'"> <p v-if="services" class="flex justify-center">
<span>Powered by</span> <span>Powered by</span>
<span class="flex services-list ms-1"> <span class="flex services-list ms-1">
<a class="service underline" v-for="item in services" :href="projects[item][1]"> <a class="service underline" v-for="item in services" :href="projects[item][1]">

View File

@ -1,20 +1,16 @@
<template> <template>
<v-app-bar flat color="primary"> <v-app-bar flat color="primary" scroll-behavior="hide" scroll-threshold="800">
<v-container fluid class="mx-auto d-flex align-center justify-center px-8"> <v-container fluid class="mx-auto d-flex align-center justify-center px-8">
<v-tooltip>
<template #activator="{ props }">
<div @click="openDrawer = !openDrawer" v-bind="props" class="cursor-pointer">
<v-img class="me-4 ms-1" width="32" height="32" alt="Logo" :src="Logo" />
</div>
</template>
Open / close drawer
</v-tooltip>
<nuxt-link to="/" exact> <nuxt-link to="/" exact>
<h2 class="mt-1">Solsynth LLC</h2> <v-img class="me-4 ms-1" width="32" height="32" alt="Logo" :src="Logo" />
</nuxt-link> </nuxt-link>
<div class="nav-links overflow-y-auto flex">
<v-btn variant="text" :text="t('navProducts')" to="/products" exact />
<v-btn variant="text" :text="t('navActivity')" to="/activity" exact />
<v-btn variant="text" :text="t('navGallery')" to="/gallery" exact />
</div>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-menu> <v-menu>
@ -44,25 +40,6 @@
</v-container> </v-container>
</v-app-bar> </v-app-bar>
<v-navigation-drawer v-model="openDrawer" location="left" width="300" floating>
<v-list density="compact" nav color="primary">
<v-list-item :title="t('navProducts')" prepend-icon="mdi-shape" to="/products" exact />
<v-list-item :title="t('navActivity')" prepend-icon="mdi-newspaper" to="/activity" exact />
<v-list-item :title="t('navGallery')" prepend-icon="mdi-album" to="/gallery" exact />
</v-list>
<v-divider class="border-opacity-50 mb-4" />
<copyright no-centered service="capital" class="px-5" />
<div class="px-5 mt-3 text-xs text-grey sidebar-footer transition-opacity duration-500">
<div class="flex footer-links flex-wrap">
<nuxt-link to="/terms/privacy-policy" class="hover:underline">Privacy Policy</nuxt-link>
<nuxt-link to="/terms/user-agreement" class="hover:underline">Term of Service</nuxt-link>
</div>
</div>
</v-navigation-drawer>
<v-main> <v-main>
<slot /> <slot />
</v-main> </v-main>
@ -72,27 +49,15 @@
import Logo from "../assets/logo-w-shadow.png" import Logo from "../assets/logo-w-shadow.png"
const { locale, locales, setLocale, t } = useI18n() const { locale, locales, setLocale, t } = useI18n()
const openDrawer = ref(false)
</script> </script>
<style scoped> <style scoped>
.sidebar-footer { .nav-links::-webkit-scrollbar {
opacity: 0.3; display: none;
} }
.sidebar-footer:hover { .nav-links {
opacity: 1; -ms-overflow-style: none;
} scrollbar-width: none;
.footer-links *:not(:last-child):after {
content: "·";
font-family: monospace;
font-weight: bold;
text-align: center;
margin-left: 4px;
margin-right: 4px;
text-decoration: none !important;
display: inline-block;
} }
</style> </style>

46
layouts/embed.vue Normal file
View File

@ -0,0 +1,46 @@
<template>
<v-system-bar color="primary">
<span>© {{ new Date().getFullYear() }} {{ t("brandName") }}</span>
<v-spacer />
<span>{{ t("embedWidget") }}</span>
</v-system-bar>
<v-container fluid class="mx-auto justify-center px-8">
<v-main>
<slot />
</v-main>
<div class="text-center flex flex-col justify-center gap-1.5 text-grey text-xs">
<copyright :service="['capital', 'solar-network']" />
<div class="flex gap-2 justify-center">
<v-menu location="top center">
<template v-slot:activator="{ props }">
<span v-bind="props">{{ t("language") }}</span>
</template>
<v-list class="w-fit">
<v-list-item
class="w-48"
density="compact"
v-for="item in locales"
:key="item.code"
:value="item.code"
:active="locale == item.code"
@click.prevent.stop="setLocale(item.code)"
>
<v-list-item-title>{{ item.name }}</v-list-item-title>
</v-list-item>
</v-list>
</v-menu>
<v-divider vertical />
<nuxt-link target="_blank" :to="route.fullPath.replace('/embed', '')">
{{ t("openInSite") }}
</nuxt-link>
</div>
</div>
</v-container>
</template>
<script setup lang="ts">
const route = useRoute()
const { locale, locales, setLocale, t } = useI18n()
</script>

View File

@ -1,6 +1,6 @@
<template> <template>
<v-container class="content-container mx-auto"> <v-container class="content-container mx-auto">
<div class="my-3 mx-[1.5ch]"> <div class="my-3 mx-[3.5ch]">
<div class="flex gap-1"> <div class="flex gap-1">
<h1 class="text-2xl">{{ t("navActivity") }}</h1> <h1 class="text-2xl">{{ t("navActivity") }}</h1>
<v-btn size="x-small" variant="text" icon="mdi-rss" slim to="/activity/feed" /> <v-btn size="x-small" variant="text" icon="mdi-rss" slim to="/activity/feed" />
@ -8,7 +8,7 @@
<span>{{ t("navActivityCaption") }}</span> <span>{{ t("navActivityCaption") }}</span>
</div> </div>
<post-list class="mx-[-2.5ch]" :realm="config.public.solarRealm" /> <post-list :realm="config.public.solarRealm" />
</v-container> </v-container>
</template> </template>

View File

@ -1,5 +1,5 @@
<template> <template>
<v-container class="flex flex-col my-2 px-12 gap-[4rem]"> <v-container class="flex flex-col my-2 gap-[4rem]">
<v-row class="content-section"> <v-row class="content-section">
<v-col cols="12" md="4" class="flex justify-start"> <v-col cols="12" md="4" class="flex justify-start">
<div class="flex flex-col items-start"> <div class="flex flex-col items-start">

View File

@ -106,8 +106,8 @@ if (!post.value) {
navigateTo(`/posts/${post.value.area_alias}/${post.value.alias}`) navigateTo(`/posts/${post.value.area_alias}/${post.value.alias}`)
} }
const title = computed(() => post.value.body?.title ? `${post.value.body?.title} by @${post.value.author.name}` : `Post by @${post.value.author.name}`) const title = computed(() => post.value.body?.title ? `${post.value.body?.title} from ${post.value.author.nick}` : `Post from ${post.value.author.nick}`)
const description = computed(() => post.value.body?.description ?? post.value.body?.content.substring(0, 280).trim()) const description = computed(() => post.value.body?.description ?? post.value.body?.content.substring(0, 160).trim())
watch(attachments, (value) => { watch(attachments, (value) => {
if (post.value.body?.thumbnail) { if (post.value.body?.thumbnail) {
@ -124,7 +124,7 @@ watch(attachments, (value) => {
useHead({ useHead({
title: title.value, title: title.value,
titleTemplate: "%s", titleTemplate: "%s on Solar Network",
link: [ link: [
{ rel: "icon", type: "image/png", href: "/icon-solar-network.png" }, { rel: "icon", type: "image/png", href: "/icon-solar-network.png" },
{ rel: "apple-touch-icon", type: "image/png", href: "/icon-solar-network.png" }, { rel: "apple-touch-icon", type: "image/png", href: "/icon-solar-network.png" },