Merge branch 'main' into doc-162

This commit is contained in:
Timur Ercan
2023-03-21 14:16:47 +01:00
17 changed files with 178 additions and 64 deletions

View File

@ -173,7 +173,11 @@ export default function PDFSigner(props: any) {
FieldType.FREE_SIGNATURE
);
createOrUpdateField(props.document, freeSignatureField).then((res) => {
createOrUpdateField(
props.document,
freeSignatureField,
recipient.token
).then((res) => {
setFields((prevState) => [...prevState, res]);
setDialogField(res);
setOpen(true);

View File

@ -3,6 +3,7 @@ import { Document, Page } from "react-pdf/dist/esm/entry.webpack5";
import EditableField from "./editable-field";
import SignableField from "./signable-field";
import short from "short-uuid";
import { FieldType } from "@prisma/client";
export default function PDFViewer(props) {
const [numPages, setNumPages] = useState(null);
@ -71,21 +72,25 @@ export default function PDFViewer(props) {
onRenderError={() => setLoading(false)}
></Page>
{props?.fields
.filter((item) => item.page === index)
.map((item) =>
.filter((field) => field.page === index)
.map((field) =>
props.readonly ? (
<SignableField
onClick={props.onClick}
key={item.id}
field={item}
key={field.id}
field={field}
className="absolute"
onDelete={onDeleteHandler}
></SignableField>
) : (
<EditableField
hidden={item.Signature || item.inserted}
key={item.id}
field={item}
hidden={
field.Signature ||
field.inserted ||
field.type === FieldType.FREE_SIGNATURE
}
key={field.id}
field={field}
className="absolute"
onPositionChanged={onPositionChangedHandler}
onDelete={onDeleteHandler}

View File

@ -2,6 +2,7 @@ import React, { useState } from "react";
import Draggable from "react-draggable";
import { IconButton } from "@documenso/ui";
import { XCircleIcon } from "@heroicons/react/20/solid";
import { classNames } from "@documenso/lib";
const stc = require("string-to-color");
type FieldPropsType = {
@ -43,13 +44,19 @@ export default function SignableField(props: FieldPropsType) {
if (!field?.signature) props.onClick(props.field);
}}
ref={nodeRef}
className="cursor-pointer opacity-80 m-auto w-48 h-16 flex-row-reverse text-lg font-bold text-center absolute top-0 left-0 select-none hover:brightness-50"
className={classNames(
"opacity-80 m-auto w-48 h-16 flex-row-reverse text-lg font-bold text-center absolute top-0 left-0 select-none",
field.type === "SIGNATURE"
? "cursor-pointer hover:brightness-50"
: "cursor-not-allowed"
)}
style={{
background: stc(props.field.Recipient.email),
}}
>
<div hidden={field?.signature} className="font-medium my-4">
{field.type === "SIGNATURE" ? "SIGN HERE" : ""}
{field.type === "DATE" ? <small>Date (filled on sign)</small> : ""}
</div>
<div
hidden={!field?.signature}

View File

@ -17,12 +17,11 @@ interface LoginValues {
csrfToken: string;
}
export default function Login() {
export default function Login(props: any) {
const router = useRouter();
const methods = useForm<LoginValues>();
const { register, formState } = methods;
const [errorMessage, setErrorMessage] = useState<string | null>(null);
let callbackUrl =
typeof router.query?.callbackUrl === "string"
? router.query.callbackUrl
@ -117,7 +116,6 @@ export default function Login() {
/>
</div>
</div>
<div className="flex items-center justify-between">
<div className="text-sm">
<a href="#" className="font-medium text-neon hover:text-neon">
@ -125,7 +123,6 @@ export default function Login() {
</a>
</div>
</div>
<div>
<Button
type="submit"
@ -152,15 +149,27 @@ export default function Login() {
<div className="relative flex justify-center"></div>
</div>
</div>
<p className="mt-2 text-center text-sm text-gray-600">
Are you new here?{" "}
<Link
href="/signup"
className="font-medium text-neon hover:text-neon"
>
Create a new Account
</Link>
</p>
{props.allowSignup ? (
<p className="mt-2 text-center text-sm text-gray-600">
Are you new here?{" "}
<Link
href="/signup"
className="font-medium text-neon hover:text-neon"
>
Create a new Account
</Link>
</p>
) : (
<p className="mt-2 text-center text-sm text-gray-600">
Like Documenso{" "}
<Link
href="https://documenso.com"
className="font-medium text-neon hover:text-neon"
>
Hosted Documenso will be availible soon
</Link>
</p>
)}
</form>
</FormProvider>
</div>

View File

@ -115,9 +115,13 @@ export default function Setttings() {
</aside>
<form
className="divide-y divide-gray-200 lg:col-span-9"
className="divide-y divide-gray-200 lg:col-span-9 min-h-[251px]"
action="#"
method="POST"
hidden={
subNavigation.filter((e) => e.current)[0]?.name !==
subNavigation[0].name
}
>
{/* Profile section */}
<div className="py-6 px-4 sm:p-6 lg:pb-8">
@ -170,6 +174,26 @@ export default function Setttings() {
<Button onClick={() => updateUser(user)}>Save</Button>
</div>
</form>
<div
hidden={
subNavigation.filter((e) => e.current)[0]?.name !==
subNavigation[1].name
}
className="divide-y divide-gray-200 lg:col-span-9 min-h-[251px]"
>
{/* Passwords section */}
<div className="py-6 px-4 sm:p-6 lg:pb-8">
<div>
<h2 className="text-lg font-medium leading-6 text-gray-900">
Password
</h2>
<p className="mt-1 text-sm text-gray-500">
Forgot your passwort? Email <b>hi@documenso.com</b> to reset
it.
</p>
</div>
</div>
</div>
</div>
</div>
</div>