Files
classroomio/apps/dashboard/src/lib/utils/functions/org.ts
T

42 lines
1.2 KiB
TypeScript
Raw Normal View History

2024-04-07 06:08:34 +01:00
import { goto } from '$app/navigation';
import { resolve } from '$app/paths';
2024-04-07 06:08:34 +01:00
2023-09-11 11:47:30 +01:00
export function genQuizPin(): number {
2025-11-01 15:49:29 +01:00
const minm = 100000;
const maxm = 999999;
2023-09-11 11:47:30 +01:00
return Math.floor(Math.random() * (maxm - minm + 1)) + minm;
}
export function generateSitename(orgName: string): string {
return orgName
.toLowerCase()
.replace(/\s+/g, '-')
.replace(/[^a-zA-Z0-9-]/g, '');
}
2024-04-07 06:08:34 +01:00
function navigateToUpgradeModal(removeParams: string[]) {
2024-04-07 06:08:34 +01:00
const url = new URL(window.location.href);
for (const param of removeParams) {
url.searchParams.delete(param);
}
2024-04-07 06:08:34 +01:00
url.searchParams.set('upgrade', 'true');
goto(resolve(url.pathname + `?${url.searchParams.toString()}`, {}));
}
2024-04-07 06:08:34 +01:00
/** Opens the in-app upgrade modal by setting `?upgrade=true`. Safe to use directly as an event handler. */
export function openUpgradeModal() {
navigateToUpgradeModal([]);
}
/**
* Opens the upgrade modal while dropping query params that keep another modal
* open (e.g. `['add']` for the invite modal), so the upgrade modal isn't
* stacked behind it — done in a single navigation to avoid a read-after-goto race.
*/
export function openUpgradeModalOver(removeParams: string[]) {
navigateToUpgradeModal(removeParams);
}