Remove varianle NEXT_PUBLIC_BASE_URL

This commit is contained in:
Sebastien Castiel
2024-01-19 12:03:16 -05:00
parent 23524cb943
commit 4d86c8c727
8 changed files with 36 additions and 27 deletions

View File

@@ -1,3 +1,4 @@
'use client'
import { CopyButton } from '@/components/copy-button'
import { ShareUrlButton } from '@/components/share-url-button'
import { Button } from '@/components/ui/button'
@@ -7,7 +8,7 @@ import {
PopoverContent,
PopoverTrigger,
} from '@/components/ui/popover'
import { env } from '@/lib/env'
import { useBaseUrl } from '@/lib/hooks'
import { Group } from '@prisma/client'
import { Share } from 'lucide-react'
@@ -16,7 +17,8 @@ type Props = {
}
export function ShareButton({ group }: Props) {
const url = `${env.NEXT_PUBLIC_BASE_URL}/groups/${group.id}/expenses?ref=share`
const baseUrl = useBaseUrl()
const url = baseUrl && `${baseUrl}/groups/${group.id}/expenses?ref=share`
return (
<Popover>
@@ -30,14 +32,16 @@ export function ShareButton({ group }: Props) {
For other participants to see the group and add expenses, share its
URL with them.
</p>
<div className="flex gap-2">
<Input className="flex-1" defaultValue={url} readOnly />
<CopyButton text={url} />
<ShareUrlButton
text={`Join my group ${group.name} on Spliit`}
url={url}
/>
</div>
{url && (
<div className="flex gap-2">
<Input className="flex-1" defaultValue={url} readOnly />
<CopyButton text={url} />
<ShareUrlButton
text={`Join my group ${group.name} on Spliit`}
url={url}
/>
</div>
)}
<p>
<strong>Warning!</strong> Every person with the group URL will be able
to see and edit expenses. Share with caution!

View File

@@ -3,14 +3,12 @@ import { ThemeProvider } from '@/components/theme-provider'
import { ThemeToggle } from '@/components/theme-toggle'
import { Button } from '@/components/ui/button'
import { Toaster } from '@/components/ui/toaster'
import { env } from '@/lib/env'
import type { Metadata, Viewport } from 'next'
import Image from 'next/image'
import Link from 'next/link'
import './globals.css'
export const metadata: Metadata = {
metadataBase: new URL(env.NEXT_PUBLIC_BASE_URL),
title: {
default: 'Spliit · Share Expenses with Friends & Family',
template: '%s · Spliit',

View File

@@ -1,4 +1,3 @@
import { env } from '@/lib/env'
import { MetadataRoute } from 'next'
export default function robots(): MetadataRoute.Robots {
@@ -8,6 +7,8 @@ export default function robots(): MetadataRoute.Robots {
allow: '/',
disallow: '/groups/',
},
sitemap: `${env.NEXT_PUBLIC_BASE_URL}/sitemap.xml`,
sitemap: process.env.VERCEL_URL
? `${process.env.VERCEL_URL}/sitemap.xml`
: undefined,
}
}

View File

@@ -1,13 +1,14 @@
import { env } from '@/lib/env'
import { MetadataRoute } from 'next'
export default function sitemap(): MetadataRoute.Sitemap {
return [
{
url: env.NEXT_PUBLIC_BASE_URL,
lastModified: new Date(),
changeFrequency: 'yearly',
priority: 1,
},
]
return process.env.VERCEL_URL
? [
{
url: process.env.VERCEL_URL,
lastModified: new Date(),
changeFrequency: 'yearly',
priority: 1,
},
]
: []
}

View File

@@ -1,7 +1,6 @@
import { z } from 'zod'
const envSchema = z.object({
NEXT_PUBLIC_BASE_URL: z.string().url(),
POSTGRES_URL_NON_POOLING: z.string().url(),
POSTGRES_PRISMA_URL: z.string().url(),
})

View File

@@ -40,3 +40,11 @@ export function useMediaQuery(query: string): boolean {
return matches
}
export function useBaseUrl() {
const [baseUrl, setBaseUrl] = useState<string | null>(null)
useEffect(() => {
setBaseUrl(window.location.origin)
}, [])
return baseUrl
}