feat: darker dark theme

This commit is contained in:
Mythie
2023-09-24 14:45:50 +10:00
parent cee147bc9a
commit 99481b6144
39 changed files with 494 additions and 433 deletions

View File

@ -13,6 +13,9 @@ export const getFieldsForDocument = async ({ documentId, userId }: GetFieldsForD
userId,
},
},
orderBy: {
id: 'asc',
},
});
return fields;

View File

@ -1,11 +1,12 @@
import { prisma } from '@documenso/prisma';
import { SendStatus, SigningStatus } from '@documenso/prisma/client';
import { FieldType, SendStatus, SigningStatus } from '@documenso/prisma/client';
export interface SetFieldsForDocumentOptions {
userId: number;
documentId: number;
fields: {
id?: number | null;
type: FieldType;
signerEmail: string;
pageNumber: number;
pageX: number;
@ -54,62 +55,56 @@ export const setFieldsForDocument = async ({
return {
...field,
...existing,
_persisted: existing,
};
})
.filter((field) => {
return (
field.Recipient?.sendStatus !== SendStatus.SENT &&
field.Recipient?.signingStatus !== SigningStatus.SIGNED
field._persisted?.Recipient?.sendStatus !== SendStatus.SENT &&
field._persisted?.Recipient?.signingStatus !== SigningStatus.SIGNED
);
});
const persistedFields = await prisma.$transaction(
// Disabling as wrapping promises here causes type issues
// eslint-disable-next-line @typescript-eslint/promise-function-async
linkedFields.map((field) =>
field.id
? prisma.field.update({
where: {
id: field.id,
recipientId: field.recipientId,
documentId,
prisma.field.upsert({
where: {
id: field._persisted?.id ?? -1,
documentId,
},
update: {
page: field.pageNumber,
positionX: field.pageX,
positionY: field.pageY,
width: field.pageWidth,
height: field.pageHeight,
},
create: {
type: field.type,
page: field.pageNumber,
positionX: field.pageX,
positionY: field.pageY,
width: field.pageWidth,
height: field.pageHeight,
customText: '',
inserted: false,
Document: {
connect: {
id: documentId,
},
data: {
type: field.type,
page: field.pageNumber,
positionX: field.pageX,
positionY: field.pageY,
width: field.pageWidth,
height: field.pageHeight,
},
})
: prisma.field.create({
data: {
// TODO: Rewrite this entire transaction because this is a mess
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
type: field.type!,
page: field.pageNumber,
positionX: field.pageX,
positionY: field.pageY,
width: field.pageWidth,
height: field.pageHeight,
customText: '',
inserted: false,
Document: {
connect: {
id: document.id,
},
},
Recipient: {
connect: {
documentId_email: {
documentId: document.id,
email: field.signerEmail,
},
},
},
Recipient: {
connect: {
documentId_email: {
documentId,
email: field.signerEmail.toLowerCase(),
},
},
}),
},
},
}),
),
);

View File

@ -16,6 +16,9 @@ export const getRecipientsForDocument = async ({
userId,
},
},
orderBy: {
id: 'asc',
},
});
return recipients;

View File

@ -67,27 +67,26 @@ export const setRecipientsForDocument = async ({
});
const persistedRecipients = await prisma.$transaction(
// Disabling as wrapping promises here causes type issues
// eslint-disable-next-line @typescript-eslint/promise-function-async
linkedRecipients.map((recipient) =>
recipient.id
? prisma.recipient.update({
where: {
id: recipient.id,
documentId,
},
data: {
name: recipient.name,
email: recipient.email,
documentId,
},
})
: prisma.recipient.create({
data: {
name: recipient.name,
email: recipient.email,
token: nanoid(),
documentId,
},
}),
prisma.recipient.upsert({
where: {
id: recipient.id ?? -1,
documentId,
},
update: {
name: recipient.name,
email: recipient.email,
documentId,
},
create: {
name: recipient.name,
email: recipient.email,
token: nanoid(),
documentId,
},
}),
),
);

View File

@ -6,7 +6,7 @@ export type GetSubscriptionByUserIdOptions = {
userId: number;
};
export const getSubscriptionByUserId = ({ userId }: GetSubscriptionByUserIdOptions) => {
export const getSubscriptionByUserId = async ({ userId }: GetSubscriptionByUserIdOptions) => {
return prisma.subscription.findFirst({
where: {
userId,

View File

@ -281,7 +281,7 @@ export const AddFieldsFormPartial = ({
{selectedField && (
<Card
className={cn(
'pointer-events-none fixed z-50 cursor-pointer bg-white transition-opacity',
'bg-background pointer-events-none fixed z-50 cursor-pointer transition-opacity',
{
'border-primary': isFieldWithinBounds,
'opacity-50': !isFieldWithinBounds,

View File

@ -118,7 +118,7 @@ export const FieldItem = ({
>
{!disabled && (
<button
className="text-muted-foreground/50 hover:text-muted-foreground/80 absolute -right-2 -top-2 z-20 flex h-8 w-8 items-center justify-center rounded-full border bg-white shadow-[0_0_0_2px_theme(colors.gray.100/70%)]"
className="text-muted-foreground/50 hover:text-muted-foreground/80 bg-background absolute -right-2 -top-2 z-20 flex h-8 w-8 items-center justify-center rounded-full border"
onClick={() => onRemove?.()}
>
<Trash className="h-4 w-4" />
@ -126,7 +126,7 @@ export const FieldItem = ({
)}
<Card
className={cn('h-full w-full bg-white', {
className={cn('bg-background h-full w-full', {
'border-primary': !disabled,
'border-primary/80': active,
})}

View File

@ -41,34 +41,34 @@
}
.dark {
--background: 224 71% 4%;
--foreground: 213 31% 91%;
--background: 0 0% 14.9%;
--foreground: 0 0% 97%;
--muted: 223 47% 11%;
--muted-foreground: 215.4 16.3% 56.9%;
--muted: 0 0% 23.4%;
--muted-foreground: 0 0% 85%;
--popover: 224 71% 4%;
--popover-foreground: 215 20.2% 65.1%;
--popover: 0 0% 14.9%;
--popover-foreground: 0 0% 90%;
--card: 224 71% 4%;
--card-border: 216 34% 17%;
--card: 0 0% 14.9%;
--card-border: 0 0% 27.9%;
--card-border-tint: 112 205 159;
--card-foreground: 213 31% 91%;
--card-foreground: 0 0% 95%;
--border: 216 34% 17%;
--input: 216 34% 17%;
--border: 0 0% 27.9%;
--input: 0 0% 27.9%;
--primary: 210 40% 98%;
--primary-foreground: 222.2 47.4% 1.2%;
--primary: 95.08 71.08% 67.45%;
--primary-foreground: 95.08 71.08% 10%;
--secondary: 222.2 47.4% 11.2%;
--secondary-foreground: 210 40% 98%;
--secondary: 0 0% 23.4%;
--secondary-foreground: 95.08 71.08% 67.45%;
--accent: 216 34% 17%;
--accent-foreground: 210 40% 98%;
--accent: 0 0% 27.9%;
--accent-foreground: 95.08 71.08% 67.45%;
--destructive: 0 63% 31%;
--destructive-foreground: 210 40% 98%;
--destructive: 0 87% 62%;
--destructive-foreground: 0 87% 19%;
--ring: 95.08 71.08% 67.45%;