* some fixes for diced/zipline-docs#50

* appropriately changed items

* tight fit for a selector
This commit is contained in:
Jayvin Hernandez 2023-04-06 20:02:07 -07:00 committed by GitHub
parent 89a28bf50b
commit 61b2eff6a4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 27 deletions

View file

@ -30,18 +30,18 @@ import {
import MutedText from 'components/MutedText'; import MutedText from 'components/MutedText';
import useFetch from 'hooks/useFetch'; import useFetch from 'hooks/useFetch';
import { listViewInvitesSelector } from 'lib/recoil/settings'; import { listViewInvitesSelector } from 'lib/recoil/settings';
import { expireText, relativeTime } from 'lib/utils/client'; import { expireReadToDate, expireText, relativeTime } from 'lib/utils/client';
import { DataTable, DataTableSortStatus } from 'mantine-datatable'; import { DataTable, DataTableSortStatus } from 'mantine-datatable';
import { useRouter } from 'next/router'; import { useRouter } from 'next/router';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { useRecoilState } from 'recoil'; import { useRecoilState } from 'recoil';
const expires = ['30m', '1h', '6h', '12h', '1d', '3d', '5d', '7d', 'never']; const expires = ['30min', '1h', '6h', '12h', '1d', '3d', '5d', '7d', 'never'];
function CreateInviteModal({ open, setOpen, updateInvites }) { function CreateInviteModal({ open, setOpen, updateInvites }) {
const form = useForm({ const form = useForm({
initialValues: { initialValues: {
expires: '30m', expires: '30min',
count: 1, count: 1,
}, },
}); });
@ -50,26 +50,12 @@ function CreateInviteModal({ open, setOpen, updateInvites }) {
if (!expires.includes(values.expires)) return form.setFieldError('expires', 'Invalid expiration'); if (!expires.includes(values.expires)) return form.setFieldError('expires', 'Invalid expiration');
if (values.count < 1 || values.count > 100) if (values.count < 1 || values.count > 100)
return form.setFieldError('count', 'Must be between 1 and 100'); return form.setFieldError('count', 'Must be between 1 and 100');
const expiresAt = const expiresAt = values.expires === 'never' ? null : expireReadToDate(values.expires);
values.expires === 'never'
? null
: new Date(
{
'30m': Date.now() + 30 * 60 * 1000,
'1h': Date.now() + 60 * 60 * 1000,
'6h': Date.now() + 6 * 60 * 60 * 1000,
'12h': Date.now() + 12 * 60 * 60 * 1000,
'1d': Date.now() + 24 * 60 * 60 * 1000,
'3d': Date.now() + 3 * 24 * 60 * 60 * 1000,
'5d': Date.now() + 5 * 24 * 60 * 60 * 1000,
'7d': Date.now() + 7 * 24 * 60 * 60 * 1000,
}[values.expires]
);
setOpen(false); setOpen(false);
const res = await useFetch('/api/auth/invite', 'POST', { const res = await useFetch('/api/auth/invite', 'POST', {
expiresAt, expiresAt: expiresAt === null ? null : `date=${expiresAt.toISOString()}`,
count: values.count, count: values.count,
}); });
@ -99,8 +85,9 @@ function CreateInviteModal({ open, setOpen, updateInvites }) {
label='Expires' label='Expires'
id='expires' id='expires'
{...form.getInputProps('expires')} {...form.getInputProps('expires')}
maxDropdownHeight={100}
data={[ data={[
{ value: '30m', label: '30 minutes' }, { value: '30min', label: '30 minutes' },
{ value: '1h', label: '1 hour' }, { value: '1h', label: '1 hour' },
{ value: '6h', label: '6 hours' }, { value: '6h', label: '6 hours' },
{ value: '12h', label: '12 hours' }, { value: '12h', label: '12 hours' },

View file

@ -3,6 +3,7 @@ import Logger from 'lib/logger';
import { NextApiReq, NextApiRes, UserExtended, withZipline } from 'lib/middleware/withZipline'; import { NextApiReq, NextApiRes, UserExtended, withZipline } from 'lib/middleware/withZipline';
import prisma from 'lib/prisma'; import prisma from 'lib/prisma';
import { randomChars } from 'lib/util'; import { randomChars } from 'lib/util';
import { parseExpiry } from 'lib/utils/client';
const logger = Logger.get('invite'); const logger = Logger.get('invite');
@ -15,11 +16,8 @@ async function handler(req: NextApiReq, res: NextApiRes, user: UserExtended) {
count: number; count: number;
}; };
const expiry = expiresAt ? new Date(expiresAt) : null; const expiry = parseExpiry(expiresAt);
if (expiry) { if (!expiry) return res.badRequest('invalid date');
if (!expiry.getTime()) return res.badRequest('invalid date');
if (expiry.getTime() < Date.now()) return res.badRequest('date is in the past');
}
const counts = count ? count : 1; const counts = count ? count : 1;
if (counts > 1) { if (counts > 1) {

View file

@ -83,6 +83,7 @@ async function handler(req: NextApiReq, res: NextApiRes, user: UserExtended) {
maxViews: number; maxViews: number;
views: number; views: number;
size: number; size: number;
originalName: string;
}[] = await prisma.file.findMany({ }[] = await prisma.file.findMany({
where: { where: {
userId: user.id, userId: user.id,
@ -102,6 +103,7 @@ async function handler(req: NextApiReq, res: NextApiRes, user: UserExtended) {
folderId: true, folderId: true,
maxViews: true, maxViews: true,
size: true, size: true,
originalName: true,
}, },
}); });

View file

@ -58,12 +58,13 @@ async function handler(req: NextApiReq, res: NextApiRes, user: UserExtended) {
return res.json(folder); return res.json(folder);
} else { } else {
if (req.query.files instanceof Array) req.query.files = req.query.files[0];
const folders = await prisma.folder.findMany({ const folders = await prisma.folder.findMany({
where: { where: {
userId: user.id, userId: user.id,
}, },
select: { select: {
files: !!req.query.files, files: ((req.query.files as string) ?? 'false').toLowerCase() === 'true',
id: true, id: true,
name: true, name: true,
userId: true, userId: true,
@ -76,7 +77,7 @@ async function handler(req: NextApiReq, res: NextApiRes, user: UserExtended) {
}, },
}); });
if (req.query.files) { if (((req.query.files as string) ?? 'false').toLowerCase() === 'true') {
for (let i = 0; i !== folders.length; ++i) { for (let i = 0; i !== folders.length; ++i) {
const folder = folders[i]; const folder = folders[i];
for (let j = 0; j !== folders[i].files.length; ++j) { for (let j = 0; j !== folders[i].files.length; ++j) {