From e337e54fe4534dd6d7b6dc9d4e8c97c475c42aef Mon Sep 17 00:00:00 2001 From: Johan Ohly Date: Sat, 5 Oct 2024 00:42:05 +0200 Subject: [PATCH] feat: new version announcement (#53) * fix: handle no data when importing visited country data (wrong branch) * feat: new version announcement --- bun.lockb | Bin 335536 -> 337030 bytes package.json | 3 + src/app.css | 143 +++++++++++------- src/lib/components/modals/index.ts | 1 + .../NewTabLink.svelte | 19 +++ .../NewVersionAnnouncement.svelte | 71 +++++++++ .../SetupVisitedCountries.svelte | 3 + src/lib/components/ui/badge/badge.svelte | 18 +++ src/lib/server/routes/visited-countries.ts | 4 + src/routes/+layout.svelte | 11 +- svelte.config.js | 1 + 11 files changed, 218 insertions(+), 56 deletions(-) create mode 100644 src/lib/components/modals/new-version-announcement/NewTabLink.svelte create mode 100644 src/lib/components/modals/new-version-announcement/NewVersionAnnouncement.svelte create mode 100644 src/lib/components/ui/badge/badge.svelte diff --git a/bun.lockb b/bun.lockb index 30885550413cf1fd5dd0f31c126f1c0c75ada360..8435516e168fc101aaf0352ca9945b14f0aa2cd8 100755 GIT binary patch delta 60250 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 RpMOQM=otUKopFoO{{^*RhMfQa diff --git a/package.json b/package.json index bbba2bd..9d9a2fd 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,9 @@ "mode-watcher": "^0.4.1", "openid-client": "^5.7.0", "pg": "^8.12.0", + "semver": "^7.6.3", "svelte-maplibre": "^0.9.11", + "svelte-markdown": "^0.4.1", "svelte-motion": "^0.12.2", "svelte-sonner": "^0.3.27", "sveltekit-superforms": "^2.16.1", @@ -63,6 +65,7 @@ "@types/d3-shape": "^3.1.6", "@types/lru-cache": "^7.10.10", "@types/pg": "^8.11.8", + "@types/semver": "^7.5.8", "@types/topojson-client": "^3.1.5", "@types/topojson-specification": "^1.0.5", "autoprefixer": "^10.4.19", diff --git a/src/app.css b/src/app.css index 6c205f5..6654304 100644 --- a/src/app.css +++ b/src/app.css @@ -5,96 +5,129 @@ @tailwind utilities; @layer base { - :root { - --background: 0 0% 100%; - --foreground: 240 10% 3.9%; + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; - --muted: 240 4.8% 95.9%; - --muted-foreground: 240 3.8% 46.1%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; - --popover: 0 0% 100%; - --popover-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; - --card: 0 0% 100%; - --card-hover: 0 0% 95%; - --card-foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-hover: 0 0% 95%; + --card-foreground: 240 10% 3.9%; - --border: 240 5.9% 90%; - --input: 240 5.9% 90%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; - --primary: 217 91% 60%; - --primary-foreground: 0 0% 98%; + --primary: 217 91% 60%; + --primary-foreground: 0 0% 98%; - --secondary: 240 4.8% 95.9%; - --secondary-foreground: 240 5.9% 10%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; - --accent: 240 4.8% 95.9%; - --accent-foreground: 240 5.9% 10%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; - --destructive: 0 72.2% 50.6%; - --destructive-foreground: 0 0% 98%; + --destructive: 0 72.2% 50.6%; + --destructive-foreground: 0 0% 98%; - --ring: 240 10% 3.9%; + --ring: 240 10% 3.9%; - --radius: 0.5rem; - } + --radius: 0.5rem; + } - .dark { - --background: 240 10% 3.9%; - --foreground: 0 0% 98%; + .dark { + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; - --muted: 240 3.7% 15.9%; - --muted-foreground: 240 5% 64.9%; + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; - --popover: 240 10% 3.9%; - --popover-foreground: 0 0% 98%; + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; - --card: 240 10% 3.9%; - --card-hover: 240 10% 12%; - --card-foreground: 0 0% 98%; + --card: 240 10% 3.9%; + --card-hover: 240 10% 12%; + --card-foreground: 0 0% 98%; - --border: 240 3.7% 15.9%; - --input: 240 3.7% 15.9%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; - --primary: 217 91% 60%; - --primary-foreground: 240 5.9% 10%; + --primary: 217 91% 60%; + --primary-foreground: 240 5.9% 10%; - --secondary: 240 3.7% 15.9%; - --secondary-foreground: 0 0% 98%; + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; - --accent: 240 3.7% 15.9%; - --accent-foreground: 0 0% 98%; + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; - --destructive: 0 68% 45%; - --destructive-foreground: 0 0% 98%; + --destructive: 0 68% 45%; + --destructive-foreground: 0 0% 98%; - --ring: 240 4.9% 83.9%; - } + --ring: 240 4.9% 83.9%; + } } @layer base { - * { - @apply border-border; - } + * { + @apply border-border; + } - body { - @apply bg-background text-foreground; - } + body { + @apply bg-background text-foreground; + } } html, body { - @apply h-full; + @apply h-full; } .page-container { - @apply container mx-auto px-4 md:px-10 py-10 space-y-10; + @apply container mx-auto px-4 md:px-10 py-10 space-y-10; } .maplibregl-popup-content { - @apply !p-0 !bg-popover dark:!bg-dark-2 !text-popover-foreground !drop-shadow-2xl !rounded-lg; + @apply !p-0 !bg-popover dark:!bg-dark-2 !text-popover-foreground !drop-shadow-2xl !rounded-lg; } .maplibregl-popup-tip { - @apply !border-none; + @apply !border-none; +} + +/* Basic prose styles */ +.prose h1 { + @apply text-4xl leading-[1.11] font-bold; +} + +.prose h2 { + @apply text-2xl leading-[1.33] font-bold mt-[1em]; +} + +.prose h3 { + @apply text-xl leading-[1.6] font-semibold mb-2 mt-5; +} + +:where(.prose > :first-child) { + @apply !mt-0; +} + +.prose :where(h3 + *) { + @apply !mt-0; +} + +.prose ul { + @apply list-disc pl-6; +} + +.prose a { + @apply font-medium border-b border-b-primary; +} + +.prose a:hover { + @apply border-b-2 } diff --git a/src/lib/components/modals/index.ts b/src/lib/components/modals/index.ts index c9130b9..2e02e30 100644 --- a/src/lib/components/modals/index.ts +++ b/src/lib/components/modals/index.ts @@ -5,3 +5,4 @@ export { default as StatisticsModal } from './statistics/StatisticsModal.svelte' export { default as EditFlightModal } from './edit-flight/EditFlightModal.svelte'; export { default as SetupVisitedCountries } from './visited-countries/SetupVisitedCountries.svelte'; export { default as EditVisitedCountry } from './visited-countries/EditVisitedCountry.svelte'; +export { default as NewVersionAnnouncement } from './new-version-announcement/NewVersionAnnouncement.svelte'; diff --git a/src/lib/components/modals/new-version-announcement/NewTabLink.svelte b/src/lib/components/modals/new-version-announcement/NewTabLink.svelte new file mode 100644 index 0000000..47aac2f --- /dev/null +++ b/src/lib/components/modals/new-version-announcement/NewTabLink.svelte @@ -0,0 +1,19 @@ + + + + {#if prNum} + #{prNum} + {:else} + {@render children()} + {/if} + diff --git a/src/lib/components/modals/new-version-announcement/NewVersionAnnouncement.svelte b/src/lib/components/modals/new-version-announcement/NewVersionAnnouncement.svelte new file mode 100644 index 0000000..8c8124e --- /dev/null +++ b/src/lib/components/modals/new-version-announcement/NewVersionAnnouncement.svelte @@ -0,0 +1,71 @@ + + +{#if changelog} + + + + + New version available! + {changelog.name} + + +
+ +
+ + + Got it + +
+
+{/if} diff --git a/src/lib/components/modals/visited-countries/SetupVisitedCountries.svelte b/src/lib/components/modals/visited-countries/SetupVisitedCountries.svelte index 228eb37..635a337 100644 --- a/src/lib/components/modals/visited-countries/SetupVisitedCountries.svelte +++ b/src/lib/components/modals/visited-countries/SetupVisitedCountries.svelte @@ -2,6 +2,7 @@ import { Modal } from '$lib/components/ui/modal'; import { Button } from '$lib/components/ui/button'; import { api, trpc } from '$lib/trpc'; + import { toast } from 'svelte-sonner'; let { visitedCountries }: { visitedCountries: any[] } = $props(); @@ -16,6 +17,8 @@ const success = await api.visitedCountries.importFlights.mutate(); if (success) { await trpc.visitedCountries.list.utils.invalidate(); + } else { + toast.error('Failed to import flights (possibly due to no past flights)'); } loading = false; }; diff --git a/src/lib/components/ui/badge/badge.svelte b/src/lib/components/ui/badge/badge.svelte new file mode 100644 index 0000000..70d9f6e --- /dev/null +++ b/src/lib/components/ui/badge/badge.svelte @@ -0,0 +1,18 @@ + + + + + diff --git a/src/lib/server/routes/visited-countries.ts b/src/lib/server/routes/visited-countries.ts index ae7e06d..2734b0a 100644 --- a/src/lib/server/routes/visited-countries.ts +++ b/src/lib/server/routes/visited-countries.ts @@ -69,6 +69,10 @@ export const visitedCountriesRouter = router({ countries.push(originCountry.numeric); } + if (countries.length === 0) { + return false; + } + const result = await db .insertInto('visitedCountry') .values( diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 3981c42..89cf860 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -24,7 +24,11 @@ import { openModalsState } from '$lib/stores.svelte'; import { page } from '$app/stores'; import { flyAndScale } from '$lib/utils/other'; - import { AddFlightModal, SettingsModal } from '$lib/components/modals'; + import { + AddFlightModal, + NewVersionAnnouncement, + SettingsModal, + } from '$lib/components/modals'; const { data, children } = $props(); @@ -77,6 +81,11 @@ + +{#if data.user?.role !== 'user'} + +{/if} + diff --git a/svelte.config.js b/svelte.config.js index 2bcc870..48833fb 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -7,6 +7,7 @@ const config = { preprocess: sequence([vitePreprocess(), preprocessMeltUI()]), kit: { adapter: adapter(), + version: { name: process.env.npm_package_version }, }, }; export default config;