import {Button, Card, CardContent, Grid, styled, TextField, Typography } from "@mui/material" import { Box } from "@mui/system" import { SubmitHandler, useFieldArray, useForm } from "react-hook-form"; import DocumentTitle from "./DocumentTitle"; import { usePlayerData } from "../../../hooks/usePlayerData"; import moment from "moment" import { useJob } from "../../../hooks/useJob"; import city_logo from "../../../assets/city_logo.png" import { useState } from "react"; import SignButton from "./SignButton"; import { DATE_FORMAT_SHORT } from "../../../utils/consts"; import { availableJobs, texts } from "../../../AppConfig"; type Props = { template: DocumentTemplate handleCreate: (data: K5Document) => void handleClose: () => void } const CreateDocument = ({ template, handleCreate, handleClose }: Props) => { const { playerData } = usePlayerData() const { job } = useJob() const [isSigned, setSigned] = useState(false) const { register, handleSubmit, formState: { errors }, control } = useForm({ defaultValues: { name: template.documentName, createdAt: "", description: template.documentDescription, fields: template.fields, isCopy: false, infoName: template.infoName, infoValue: template.infoTemplate, issuer: { firstname: playerData?.firstname, lastname: playerData?.lastname, birthDate: moment(new Date(playerData?.dateofbirth || "")).format(DATE_FORMAT_SHORT), jobName: job?.label } } }); const { fields: formFields } = useFieldArray({ control, name: "fields", rules: { required: texts.requiredError } }) const handleCreateDocument: SubmitHandler = (data: K5Document) => { let result = { name: data.name, createdAt: (new Date()).toString(), customName: data.customName?.length ? data.customName : undefined, job: job?.name, description: data.description, fields: data.fields, isCopy: false, infoName: data.infoName, infoValue: data.infoValue, issuer: { firstname: playerData?.firstname, lastname: playerData?.lastname, birthDate: moment(new Date(playerData?.dateofbirth || "")).format(DATE_FORMAT_SHORT), jobName: job?.label } } as K5Document handleCreate(result) } return (
{template.documentName}
j.job === job?.name)?.logo ?? city_logo} alt="Los Santos City" />
{template.documentDescription} {texts.issuerFirstname} {texts.issuerLastname} {playerData?.firstname} {playerData?.lastname} {texts.issuerDOB} {texts.issuerJob} {moment(new Date(playerData?.dateofbirth || "")).format(DATE_FORMAT_SHORT)} { job?.label }
{formFields.map((f, i) => { return ( ) })} {template.infoName}
{texts.termsAndSigning} {texts.terms1} {texts.terms2} {texts.terms3} {texts.terms4} {texts.terms5}
) } export default CreateDocument const StyledDocument = styled("div")` width: 60vh; height: 90vh; display: flex; align-content: center; justify-content: center; ` const DocTextField = styled(TextField)` width: 100%; `