You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
842 B
37 lines
842 B
/**
|
|
* This file provides the paths to the pages
|
|
*/
|
|
import { NextRouter } from 'next/router';
|
|
import { getWindowUrl, displayRef, getLocaleShort } from './utils';
|
|
|
|
export enum RouteTypes {
|
|
ADMIN = 'admin',
|
|
BALLOT = 'ballot',
|
|
CREATE_ELECTION = 'admin/new',
|
|
ENDED_VOTE = 'end',
|
|
FAQ = 'faq',
|
|
HOME = '',
|
|
RESULTS = 'results',
|
|
VOTE = 'votes',
|
|
}
|
|
|
|
export const getUrl = (
|
|
type: RouteTypes,
|
|
router: NextRouter,
|
|
ref?: string,
|
|
token?: string
|
|
): URL => {
|
|
const locale = getLocaleShort(router);
|
|
|
|
if (ref) {
|
|
if (token) {
|
|
const path = `/${locale}/${type}/${displayRef(ref)}/${token}`;
|
|
return new URL(path, getWindowUrl());
|
|
}
|
|
const path = `/${locale}/${type}/${displayRef(ref)}`;
|
|
return new URL(path, getWindowUrl());
|
|
}
|
|
const path = `/${locale}/${type}`;
|
|
return new URL(path, getWindowUrl());
|
|
};
|