fix: regex when adding domains

This commit is contained in:
diced
2025-08-13 16:30:14 -07:00
parent 01b5fc8930
commit 152876657d
3 changed files with 17 additions and 5 deletions

View File

@@ -6,6 +6,9 @@ import { useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import { settingsOnSubmit } from '../settingsOnSubmit';
const DOMAIN_REGEX =
/^[a-zA-Z0-9][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9]{0,1}\.([a-zA-Z]{1,6}|[a-zA-Z0-9-]{1,30}\.[a-zA-Z]{2,3})$/gim;
export default function Domains({
swr: { data, isLoading },
}: {
@@ -34,6 +37,10 @@ export default function Domains({
const { newDomain } = form.values;
if (!newDomain) return;
if (!DOMAIN_REGEX.test(newDomain)) {
return form.setFieldError('newDomain', 'Invalid Domain');
}
const updatedDomains = [...domains, newDomain.trim()];
setDomains(updatedDomains);
form.setValues({ newDomain: '' });

View File

@@ -21,7 +21,6 @@ import { fastifyStatic } from '@fastify/static';
import fastify from 'fastify';
import { mkdir, readFile } from 'fs/promises';
import ms, { StringValue } from 'ms';
import { createServer as createViteServer } from 'vite';
import { version } from '../../package.json';
import { checkRateLimit } from './plugins/checkRateLimit';
import oauthPlugin from './plugins/oauth';
@@ -272,7 +271,6 @@ main();
declare module 'fastify' {
interface FastifyInstance {
tasks: Tasks;
vite?: Awaited<ReturnType<typeof createViteServer>>;
}
}

View File

@@ -308,11 +308,18 @@ export default fastifyPlugin(
pwaTitle: z.string(),
pwaShortName: z.string(),
pwaDescription: z.string(),
pwaThemeColor: z.string().regex(/^#?([a-f0-9]{6}|[a-f0-9]{3})$/),
pwaBackgroundColor: z.string().regex(/^#?([a-f0-9]{6}|[a-f0-9]{3})/),
pwaThemeColor: z.string().regex(/^#?([a-f0-9]{6}|[a-f0-9]{3})$/, 'Invalid Color'),
pwaBackgroundColor: z.string().regex(/^#?([a-f0-9]{6}|[a-f0-9]{3})/, 'Invalid Color'),
domains: z.union([
z.array(z.string()),
z.array(
z
.string()
.regex(
/^[a-zA-Z0-9][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9]{0,1}\.([a-zA-Z]{1,6}|[a-zA-Z0-9-]{1,30}\.[a-zA-Z]{2,3})$/gi,
'Invalid Domain',
),
),
z.string().transform((value) => value.split(',').map((s) => s.trim())),
]),
})