🔗 Add support for shorter urls (#750)

This commit is contained in:
Luke Vella 2023-07-14 14:27:11 +01:00 committed by GitHub
parent 30a1136529
commit 2e5468ed65
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 16 additions and 5 deletions

View file

@ -12,6 +12,8 @@ const PORT = process.env.PORT || 3000;
// Set webServer.url and use.baseURL with the location of the WebServer respecting the correct set port
const baseURL = `http://localhost:${PORT}`;
process.env.NEXT_PUBLIC_BASE_URL = baseURL;
// Reference: https://playwright.dev/docs/test-configuration
const config: PlaywrightTestConfig = {
// Artifacts folder where screenshots, videos, and traces are stored.

View file

@ -8,6 +8,7 @@ import {
DialogTitle,
DialogTrigger,
} from "@rallly/ui/dialog";
import { shortUrl } from "@rallly/utils";
import Link from "next/link";
import React from "react";
import { useCopyToClipboard } from "react-use";
@ -29,7 +30,7 @@ export const InviteDialog = () => {
}
}, [state]);
const inviteLink = `${window.location.origin}/invite/${poll?.id}`;
const inviteLink = shortUrl(`/invite/${poll?.id}`);
const [didCopy, setDidCopy] = React.useState(false);
return (

View file

@ -1,6 +1,6 @@
import { prisma } from "@rallly/database";
import { sendEmail } from "@rallly/emails";
import { absoluteUrl } from "@rallly/utils";
import { absoluteUrl, shortUrl } from "@rallly/utils";
import { TRPCError } from "@trpc/server";
import dayjs from "dayjs";
import timezone from "dayjs/plugin/timezone";
@ -140,7 +140,7 @@ export const polls = router({
? absoluteUrl(`/admin/${adminToken}`)
: absoluteUrl(`/poll/${pollId}`);
const participantLink = absoluteUrl(`/invite/${pollId}`);
const participantLink = shortUrl(`/invite/${pollId}`);
if (email && name) {
await sendEmail("NewPollEmail", {

View file

@ -6,10 +6,17 @@ const getVercelUrl = () => {
: null;
};
export function absoluteUrl(path = "") {
export function absoluteUrl(subpath = "") {
const baseUrl =
process.env.NEXT_PUBLIC_BASE_URL ??
getVercelUrl() ??
`http://localhost:${port}`;
return `${baseUrl}${path}`;
const url = new URL(subpath, baseUrl);
return url.href;
}
export function shortUrl(subpath = "") {
const baseUrl = process.env.NEXT_PUBLIC_SHORT_BASE_URL ?? absoluteUrl();
const url = new URL(subpath, baseUrl);
return url.href;
}

View file

@ -59,6 +59,7 @@
"EMAIL_PROVIDER",
"MAINTENANCE_MODE",
"NEXT_PUBLIC_APP_BASE_URL",
"NEXT_PUBLIC_SHORT_BASE_URL",
"NEXT_PUBLIC_APP_VERSION",
"NEXT_PUBLIC_BASE_URL",
"NEXT_PUBLIC_BETA",