(refactor) Move generateShareId to locationActions and apply to LocationCard

- Moved generateShareId from shareChecksum.ts to locationActions.ts as a server action
- Updated LocationCard to use shareID with checksum for proof of payment download link
- Replaced Link with AsyncLink to handle async shareID generation
- Commented out debug console.log in Pdf417Barcode

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-09 18:18:17 +01:00
parent e318523887
commit a3ec20544c
4 changed files with 36 additions and 20 deletions

View File

@@ -10,7 +10,7 @@ import { gotoHomeWithMessage } from './navigationActions';
import { unstable_noStore, revalidatePath } from 'next/cache';
import { IntlTemplateFn } from '@/app/i18n';
import { getTranslations, getLocale } from "next-intl/server";
import { generateShareId, extractShareId, validateShareChecksum } from '../shareChecksum';
import { extractShareId, validateShareChecksum, generateShareChecksum } from '../shareChecksum';
import { validatePdfFile } from '../validators/pdfValidator';
import { checkUploadRateLimit } from '../uploadRateLimiter';
@@ -765,6 +765,18 @@ export const uploadUtilBillsProofOfPayment = async (
}
}
/**
* Generate combined location ID with checksum appended
* @param locationId - The MongoDB location ID (24 chars)
* @returns Combined ID: locationId + checksum (40 chars total)
*/
export async function generateShareId(locationId: string): Promise<string> {
const checksum = generateShareChecksum(locationId);
return locationId + checksum;
}
/**
* Generate/activate share link for location
* Called when owner clicks "Share" button
@@ -800,7 +812,7 @@ export const generateShareLink = withUser(
);
// Generate combined share ID (locationId + checksum)
const shareId = generateShareId(locationId);
const shareId = await generateShareId(locationId);
// Build share URL
const baseUrl = process.env.NEXTAUTH_URL || 'http://localhost:3000';

View File

@@ -56,16 +56,6 @@ export function validateShareChecksum(
}
}
/**
* Generate combined location ID with checksum appended
* @param locationId - The MongoDB location ID (24 chars)
* @returns Combined ID: locationId + checksum (40 chars total)
*/
export function generateShareId(locationId: string): string {
const checksum = generateShareChecksum(locationId);
return locationId + checksum;
}
/**
* Extract location ID and checksum from combined share ID
* @param shareId - Combined ID (locationId + checksum)