21 lines
621 B
TypeScript
21 lines
621 B
TypeScript
import { nanoid } from 'nanoid';
|
|
|
|
export function generateShareToken(): string {
|
|
return nanoid(10);
|
|
}
|
|
|
|
export function buildShareUrl(token: string): string {
|
|
const baseUrl = process.env.NEXT_PUBLIC_APP_URL || 'http://localhost:3000';
|
|
return `${baseUrl}/s/${token}`;
|
|
}
|
|
|
|
export function buildSocialShareUrls(url: string, title: string) {
|
|
const encodedUrl = encodeURIComponent(url);
|
|
const encodedTitle = encodeURIComponent(title);
|
|
|
|
return {
|
|
twitter: `https://twitter.com/intent/tweet?text=${encodedTitle}&url=${encodedUrl}`,
|
|
facebook: `https://www.facebook.com/sharer/sharer.php?u=${encodedUrl}`,
|
|
};
|
|
}
|