add NEXT_PUBLIC_URL

This commit is contained in:
keyan 2024-04-08 17:54:39 -05:00
parent 5be6df0266
commit 81d3212ffb
12 changed files with 14 additions and 15 deletions

View File

@ -42,6 +42,7 @@ LNWITH_URL=
NEXTAUTH_URL=http://localhost:3000/api/auth NEXTAUTH_URL=http://localhost:3000/api/auth
SELF_URL=http://app:3000 SELF_URL=http://app:3000
PUBLIC_URL=http://localhost:3000 PUBLIC_URL=http://localhost:3000
NEXT_PUBLIC_URL=http://localhost:3000
LND_CONNECT_ADDRESS=03cc1d0932bb99b0697f5b5e5961b83ab7fd66f1efc4c9f5c7bad66c1bcbe78f02@xhlmkj7mfrl6ejnczfwl2vqik3xim6wzmurc2vlyfoqw2sasaocgpuad.onion:9735 LND_CONNECT_ADDRESS=03cc1d0932bb99b0697f5b5e5961b83ab7fd66f1efc4c9f5c7bad66c1bcbe78f02@xhlmkj7mfrl6ejnczfwl2vqik3xim6wzmurc2vlyfoqw2sasaocgpuad.onion:9735
NEXTAUTH_SECRET=3_0W_PhDRZVanbeJsZZGIEljexkKoGbL6qGIqSwTjjI NEXTAUTH_SECRET=3_0W_PhDRZVanbeJsZZGIEljexkKoGbL6qGIqSwTjjI
JWT_SIGNING_PRIVATE_KEY={"kty":"oct","kid":"FvD__hmeKoKHu2fKjUrWbRKfhjimIM4IKshyrJG4KSM","alg":"HS512","k":"3_0W_PhDRZVanbeJsZZGIEljexkKoGbL6qGIqSwTjjI"} JWT_SIGNING_PRIVATE_KEY={"kty":"oct","kid":"FvD__hmeKoKHu2fKjUrWbRKfhjimIM4IKshyrJG4KSM","alg":"HS512","k":"3_0W_PhDRZVanbeJsZZGIEljexkKoGbL6qGIqSwTjjI"}

View File

@ -79,7 +79,7 @@ export function getGetServerSideProps (
const { data: { me } } = await client.query({ query: ME }) const { data: { me } } = await client.query({ query: ME })
if (authRequired && !me) { if (authRequired && !me) {
const callback = process.env.PUBLIC_URL + req.url const callback = process.env.NEXT_PUBLIC_URL + req.url
return { return {
redirect: { redirect: {
destination: `/signup?callbackUrl=${encodeURIComponent(callback)}` destination: `/signup?callbackUrl=${encodeURIComponent(callback)}`

View File

@ -21,7 +21,7 @@ export default function Invite ({ invite, active }) {
<CopyInput <CopyInput
groupClassName='mb-1' groupClassName='mb-1'
size='sm' type='text' size='sm' type='text'
placeholder={`${process.env.NODE_ENV === 'development' ? 'http://localhost:3000' : 'https://stacker.news'}/invites/${invite.id}`} readOnly noForm placeholder={`${process.env.NEXT_PUBLIC_URL}/invites/${invite.id}`} readOnly noForm
/> />
<div className={styles.other}> <div className={styles.other}>
<span>{invite.gift} sat gift</span> <span>{invite.gift} sat gift</span>

View File

@ -14,7 +14,7 @@ const referrurl = (ipath, me) => {
if (!SSR) { if (!SSR) {
return `${window.location.protocol}//${window.location.host}${path}` return `${window.location.protocol}//${window.location.host}${path}`
} }
return `https://stacker.news${path}` return `${process.env.NEXT_PUBLIC_URL}${path}`
} }
export default function Share ({ path, title, className = '' }) { export default function Share ({ path, title, className = '' }) {

View File

@ -19,7 +19,7 @@ import { rehypeInlineCodeProperty } from '@/lib/md'
import { Button } from 'react-bootstrap' import { Button } from 'react-bootstrap'
import { useRouter } from 'next/router' import { useRouter } from 'next/router'
import Link from 'next/link' import Link from 'next/link'
import { SSR, UNKNOWN_LINK_REL } from '@/lib/constants' import { UNKNOWN_LINK_REL } from '@/lib/constants'
import isEqual from 'lodash/isEqual' import isEqual from 'lodash/isEqual'
export function SearchText ({ text }) { export function SearchText ({ text }) {
@ -179,7 +179,7 @@ export default memo(function Text ({ rel, imgproxyUrls, children, tab, itemId, o
// we don't render it as an image since it was probably a conscious choice to include text. // we don't render it as an image since it was probably a conscious choice to include text.
const text = children[0] const text = children[0]
const url = !href.startsWith('/') && new URL(href) const url = !href.startsWith('/') && new URL(href)
const internalURL = SSR ? 'https://stacker.news' : window.location.origin const internalURL = process.env.NEXT_PUBLIC_URL
if (!!text && !/^https?:\/\//.test(text)) { if (!!text && !/^https?:\/\//.test(text)) {
if (props['data-footnote-ref'] || typeof props['data-footnote-backref'] !== 'undefined') { if (props['data-footnote-ref'] || typeof props['data-footnote-backref'] !== 'undefined') {
return ( return (

View File

@ -251,7 +251,7 @@ function HeaderHeader ({ user }) {
</div> </div>
) )
const lnurlp = encodeLNUrl(new URL(`https://stacker.news/.well-known/lnurlp/${user.name}`)) const lnurlp = encodeLNUrl(new URL(`${process.env.NEXT_PUBLIC_URL}/.well-known/lnurlp/${user.name}`))
return ( return (
<div className='d-flex mt-2 flex-wrap flex-column flex-sm-row'> <div className='d-flex mt-2 flex-wrap flex-column flex-sm-row'>
<HeaderPhoto user={user} isMe={isMe} /> <HeaderPhoto user={user} isMe={isMe} />

View File

@ -31,7 +31,7 @@ export async function lnAddrOptions (addr) {
let protocol = 'https' let protocol = 'https'
if (process.env.NODE_ENV === 'development') { if (process.env.NODE_ENV === 'development') {
// support HTTP and HTTPS during development // support HTTP and HTTPS during development
protocol = process.env.PUBLIC_URL.split('://')[0] protocol = process.env.NEXT_PUBLIC_URL.split('://')[0]
} }
const unexpectedErrorMessage = `An unexpected error occurred fetching the Lightning Address metadata for ${addr}. Check the address and try again.` const unexpectedErrorMessage = `An unexpected error occurred fetching the Lightning Address metadata for ${addr}. Check the address and try again.`
let res let res

View File

@ -1,5 +1,3 @@
import { SSR } from './constants'
export function ensureProtocol (value) { export function ensureProtocol (value) {
if (!value) return value if (!value) return value
value = value.trim() value = value.trim()
@ -10,7 +8,7 @@ export function ensureProtocol (value) {
} }
export function isExternal (url) { export function isExternal (url) {
return !url.startsWith(process.env.PUBLIC_URL + '/') && !url.startsWith('/') return !url.startsWith(process.env.NEXT_PUBLIC_URL + '/') && !url.startsWith('/')
} }
export function removeTracking (value) { export function removeTracking (value) {
@ -30,7 +28,7 @@ export function removeTracking (value) {
*/ */
export function parseInternalLinks (href) { export function parseInternalLinks (href) {
const url = new URL(href) const url = new URL(href)
const internalURL = SSR ? 'https://stacker.news' : window.location.origin const internalURL = process.env.NEXT_PUBLIC_URL
const { pathname, searchParams } = url const { pathname, searchParams } = url
// ignore empty parts which exist due to pathname starting with '/' // ignore empty parts which exist due to pathname starting with '/'
const emptyPart = part => !!part const emptyPart = part => !!part

View File

@ -10,7 +10,7 @@ export default async ({ query: { username } }, res) => {
} }
return res.status(200).json({ return res.status(200).json({
callback: `${process.env.PUBLIC_URL}/api/lnurlp/${username}/pay`, // The URL from LN SERVICE which will accept the pay request parameters callback: `${process.env.NEXT_PUBLIC_URL}/api/lnurlp/${username}/pay`, // The URL from LN SERVICE which will accept the pay request parameters
minSendable: 1000, // Min amount LN SERVICE is willing to receive, can not be less than 1 or more than `maxSendable` minSendable: 1000, // Min amount LN SERVICE is willing to receive, can not be less than 1 or more than `maxSendable`
maxSendable: 1000000000, maxSendable: 1000000000,
metadata: lnurlPayMetadataString(username), // Metadata json which must be presented as raw string here, this is required to pass signature verification at a later step metadata: lnurlPayMetadataString(username), // Metadata json which must be presented as raw string here, this is required to pass signature verification at a later step

View File

@ -53,7 +53,7 @@ export async function getServerSideProps ({ req, res, query: { id, error = null
return { return {
props: { props: {
providers: await getProviders(), providers: await getProviders(),
callbackUrl: process.env.PUBLIC_URL + req.url, callbackUrl: process.env.NEXT_PUBLIC_URL + req.url,
invite: data.invite, invite: data.invite,
error error
} }

View File

@ -26,7 +26,7 @@ export async function getServerSideProps ({ req, res, query: { callbackUrl, erro
// in the cause of auth linking we want to pass the error back to // in the cause of auth linking we want to pass the error back to
// settings // settings
if (error) { if (error) {
const url = new URL(callbackUrl, process.env.PUBLIC_URL) const url = new URL(callbackUrl, process.env.NEXT_PUBLIC_URL)
url.searchParams.set('error', error) url.searchParams.set('error', error)
callbackUrl = url.pathname + url.search callbackUrl = url.pathname + url.search
} }

View File

@ -102,7 +102,7 @@ export default function Referrals ({ ssrData }) {
groupClassName='mb-0 w-100' groupClassName='mb-0 w-100'
readOnly readOnly
noForm noForm
placeholder={`https://stacker.news/r/${me.name}`} placeholder={`${process.env.NEXT_PUBLIC_URL}/r/${me.name}`}
/> />
</div> </div>
<ul className='py-3 text-muted'> <ul className='py-3 text-muted'>