chore: Update project metadata and dependencies

- Change project title from "Atitlán Directory" to "Ariège Hub" in index.html
- Update app title in meta tags for PWA support
- Add @tanstack/vue-table dependency for enhanced table management
- Refactor ConnectionStatus component to improve status variant logic
- Enhance useEvents composable for better error handling and sorting
- Add 'events' translation to Spanish and French locales
- Create a new Pinia store for Nostr state management
This commit is contained in:
padreug 2025-03-19 23:02:30 +01:00
parent de73230525
commit 3c05ddde51
9 changed files with 72 additions and 13 deletions

View file

@ -9,10 +9,10 @@
<link rel="icon" href="/favicon.ico" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180">
<link rel="mask-icon" href="/mask-icon.svg" color="#FFFFFF">
<title>Atitlán Directory</title>
<title>Ariège Hub</title>
<link rel="apple-touch-icon" href="/pwa-192x192.png">
<link rel="apple-touch-startup-image" href="/splash.png">
<meta name="apple-mobile-web-app-title" content="Atitlán">
<meta name="apple-mobile-web-app-title" content="Ariège">
</head>
<body>
<div id="app"></div>

33
package-lock.json generated
View file

@ -8,6 +8,7 @@
"name": "aio-shadcn-vite",
"version": "0.0.0",
"dependencies": {
"@tanstack/vue-table": "^8.21.2",
"@types/qrcode": "^1.5.5",
"@vueuse/components": "^12.5.0",
"@vueuse/core": "^12.5.0",
@ -3301,6 +3302,19 @@
"vite": "^5.2.0 || ^6"
}
},
"node_modules/@tanstack/table-core": {
"version": "8.21.2",
"resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.21.2.tgz",
"integrity": "sha512-uvXk/U4cBiFMxt+p9/G7yUWI/UbHYbyghLCjlpWZ3mLeIZiUBSKcUnw9UnKkdRz7Z/N4UBuFLWQdJCjUe7HjvA==",
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
}
},
"node_modules/@tanstack/virtual-core": {
"version": "3.13.2",
"resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.2.tgz",
@ -3311,6 +3325,25 @@
"url": "https://github.com/sponsors/tannerlinsley"
}
},
"node_modules/@tanstack/vue-table": {
"version": "8.21.2",
"resolved": "https://registry.npmjs.org/@tanstack/vue-table/-/vue-table-8.21.2.tgz",
"integrity": "sha512-KBgOWxha/x4m1EdhVWxOpqHb661UjqAxzPcmXR3QiA7aShZ547x19Gw0UJX9we+m+tVcPuLRZ61JsYW47QZFfQ==",
"license": "MIT",
"dependencies": {
"@tanstack/table-core": "8.21.2"
},
"engines": {
"node": ">=12"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
},
"peerDependencies": {
"vue": ">=3.2"
}
},
"node_modules/@tanstack/vue-virtual": {
"version": "3.13.2",
"resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.13.2.tgz",

View file

@ -10,6 +10,7 @@
"analyze": "vite build --mode analyze"
},
"dependencies": {
"@tanstack/vue-table": "^8.21.2",
"@types/qrcode": "^1.5.5",
"@vueuse/components": "^12.5.0",
"@vueuse/core": "^12.5.0",

View file

@ -1,5 +1,5 @@
<script setup lang="ts">
import { onMounted, onUnmounted, ref } from 'vue'
import { onMounted, onUnmounted } from 'vue'
import Navbar from '@/components/layout/Navbar.vue'
import Footer from '@/components/layout/Footer.vue'
import ConnectionStatus from '@/components/nostr/ConnectionStatus.vue'

View file

@ -8,9 +8,10 @@ const props = defineProps<{
error?: Error | null
}>()
function getStatusVariant() {
if (props.isConnecting) return 'warning'
return props.isConnected ? 'success' : 'destructive'
function getStatusVariant(): 'default' | 'destructive' | 'outline' | 'secondary' {
if (!props.isConnected) return 'destructive'
if (props.isConnecting) return 'secondary'
return 'outline'
}
function getStatusText() {

View file

@ -1,4 +1,4 @@
import { ref, computed } from 'vue'
import { computed } from 'vue'
import { useAsyncState } from '@vueuse/core'
import type { Event } from '@/lib/types/event'
import { fetchEvents } from '@/lib/api/events'

View file

@ -7,6 +7,7 @@ const messages: LocaleMessages = {
directory: 'Directorio',
faq: 'Preguntas Frecuentes',
support: 'Soporte',
events: 'Eventos',
login: 'Iniciar Sesión',
logout: 'Cerrar Sesión'
},

View file

@ -7,6 +7,7 @@ const messages: LocaleMessages = {
directory: 'Répertoire',
faq: 'FAQ',
support: 'Support',
events: 'Événements',
login: 'Connexion',
logout: 'Déconnexion'
},

22
src/stores/nostr.ts Normal file
View file

@ -0,0 +1,22 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
export const useNostrStore = defineStore('nostr', () => {
const isConnected = ref(false)
const relayUrls = ref<string[]>([])
function setConnected(value: boolean) {
isConnected.value = value
}
function setRelayUrls(urls: string[]) {
relayUrls.value = urls
}
return {
isConnected,
relayUrls,
setConnected,
setRelayUrls,
}
})