Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions web/src/footer-templates-app/config/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"fields": {
"email": "Email",
"fullName": "Full name",
"imageEnable": "I want to add image.",
"jobPosition": "Job position",
"phoneNumber": "Phone number",
"phoneNumberEnable": "I want to add phone number."
Expand All @@ -17,13 +18,6 @@
"instruction": "Instruction"
},
"scenes": {
"TemplateFooter": {
"copyFooterButton": "Copy footer template",
"downloadButton": "Download avatar",
"mainTitle": "Footer Template",
"form": "Form",
"previewTitle": "Preview"
},
"InstructionPage": {
"instruction": {
"1": "1. Go to Gmail settings",
Expand All @@ -33,6 +27,13 @@
"5": "5. Paste copied footer into Gmail settings and set signature defaults",
"6": "6. Remember to save changes at the bottom of settings"
}
},
"TemplateFooter": {
"copyFooterButton": "Copy footer template",
"downloadButton": "Download avatar",
"form": "Form",
"mainTitle": "Footer Template",
"previewTitle": "Preview"
}
},
"uploadButton": "Upload file",
Expand Down
15 changes: 8 additions & 7 deletions web/src/footer-templates-app/config/locales/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"fields": {
"email": "Email",
"fullName": "Imię i nazwisko",
"imageEnable": "Chcę dodać zdjęcie",
"jobPosition": "Stanowisko",
"phoneNumber": "Numer telefonu",
"phoneNumberEnable": "Chcę dodać numer telefonu"
Expand All @@ -17,13 +18,6 @@
"instruction": "Instrukcja"
},
"scenes": {
"TemplateFooter": {
"copyFooterButton": "Skopiuj do schowka",
"downloadButton": "Pobierz awatar",
"mainTitle": "Footer Template",
"form": "Formularz",
"previewTitle": "Podgląd"
},
"InstructionPage": {
"instruction": {
"1": "1. Przejdź do ustawień Gmail",
Expand All @@ -33,6 +27,13 @@
"5": "5. Wklej skopiowaną stopkę do ustawień Gmail i zmień ustawienia domyślne",
"6": "6. Pamiętaj o zapisie zmian na dole strony ustawień"
}
},
"TemplateFooter": {
"copyFooterButton": "Skopiuj do schowka",
"downloadButton": "Pobierz awatar",
"form": "Formularz",
"mainTitle": "Footer Template",
"previewTitle": "Podgląd"
}
},
"uploadButton": "Prześlij plik",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ const initialValues: TemplateFormValues = {
email: "",
isPhoneEnabled: false,
phoneNumber: "",
isImageEnabled: false,
uploadedImageUrl: null,
previewImage: {
cropped: "",
Expand Down Expand Up @@ -47,13 +48,23 @@ export const TemplateFooterPage: FunctionComponent = () => {
is: true,
then: yup.string().required(t("validation.required"))
}),
previewImage: yup.object({
file: yup
.mixed()
.nullable()
.test("filePresent", t("validation.required"), (file: File | null) => {
return file && file.name ? true : false;
})
isImageEnabled: yup.boolean(),
previewImage: yup.object().when("isImageEnabled", {
is: true,
then: yup.object({
file: yup
.mixed()
.test(
"filePresent",
t("validation.required"),
(file: File | null) => {
return file && file.name ? true : false;
}
)
}),
otherwise: yup.object({
file: yup.mixed().nullable()
})
})
});

Expand All @@ -68,19 +79,21 @@ export const TemplateFooterPage: FunctionComponent = () => {
setSubmitting(true);

try {
const { data } = await lambda.uploadImage(
values.previewImage.cropped
);
if (values.isImageEnabled) {
const { data } = await lambda.uploadImage(
values.previewImage.cropped
);

if (!data) {
return;
}
if (!data) {
return;
}

await new Promise<void>((resolve) =>
setTimeout(() => resolve(), 4000)
);
await new Promise<void>((resolve) =>
setTimeout(() => resolve(), 4000)
);

await setFieldValue("uploadedImageUrl", data.imageUrl);
await setFieldValue("uploadedImageUrl", data.imageUrl);
}
copyToClipboard();
} catch (error) {
// eslint-disable-next-line no-console
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,27 +75,45 @@ export const TemplateForm: FunctionComponent<TemplateFormProps> = ({
</Grid>
)}
<Grid item xs={12}>
<UploadFileButton
name="previewImage.file"
errorText={(errors.previewImage && errors.previewImage.file) || ""}
onChange={handleUploadFile(formikProps)}
<FormControlLabel
control={
<Checkbox
name="isImageEnabled"
value={values.isImageEnabled}
onChange={handleChange}
/>
}
label={t("fields.imageEnable")}
/>
</Grid>
<Grid item xs={12}>
{formikProps.values.previewImage.url && (
<>
<ImageCropper
url={formikProps.values.previewImage.url}
setCroppedImage={(croppedImage: string) =>
formikProps.setFieldValue("previewImage", {
...formikProps.values.previewImage,
cropped: croppedImage
})
{values.isImageEnabled && (
<>
<Grid item xs={12}>
<UploadFileButton
name="previewImage.file"
errorText={
(errors.previewImage && errors.previewImage.file) || ""
}
onChange={handleUploadFile(formikProps)}
/>
</>
)}
</Grid>
</Grid>
<Grid item xs={12}>
{formikProps.values.previewImage.url && (
<>
<ImageCropper
url={formikProps.values.previewImage.url}
setCroppedImage={(croppedImage: string) =>
formikProps.setFieldValue("previewImage", {
...formikProps.values.previewImage,
cropped: croppedImage
})
}
/>
</>
)}
</Grid>
</>
)}
</>
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ export const composeTemplate = (options: ComposeTemplate) => {
const jobPosition = options.jobPosition || "Software Engineer";
const phoneNumber = options.phoneNumber || "+48 777 777 777";
const isPhoneEnabled = options.isPhoneEnabled;
const imageUrl = uploadedImageUrl || cropped || "/portrait-placeholder.png";
const isImageEnabled = options.isImageEnabled;
const imageUrl = uploadedImageUrl || cropped;

return `<!DOCTYPE html>
<html lang="en">
Expand All @@ -25,14 +26,8 @@ export const composeTemplate = (options: ComposeTemplate) => {

<table cellpadding="0" cellspacing="0" border="0" style="font-family: 'Lato', 'Roboto', Helvetica, Tahoma, sans-serif;">
<tr>
<td style="padding-right: 30px; width: 130px;">
<img
src="${imageUrl}"
alt="${fullName}"
style="height: auto;
margin-top: 5px;
width: 130px;">
</td>
<!-- Image -->
${createImageSection(isImageEnabled, imageUrl, fullName)}
<td>
<!-- Person -->
<div style="color: #ff5252; font-size: 20px; font-stretch: normal; font-style: normal; font-weight: bold; letter-spacing: normal; line-height: normal;">${fullName}</div>
Expand Down Expand Up @@ -92,6 +87,25 @@ export const composeTemplate = (options: ComposeTemplate) => {
</html>`;
};

const createImageSection = (
isImageEnabled: boolean,
imageUrl: string | null,
fullName: string
) => {
if (!isImageEnabled) {
return "";
}

const finalImageUrl = imageUrl || "/portrait-placeholder.png";

return `<td style="padding-right: 30px; width: 130px;">
<img
src="${finalImageUrl}"
alt="${fullName}"
style="height: auto; margin-top: 5px; width: 130px;">
</td>`;
};

const createPhoneSection = (isPhoneEnabled: boolean, phoneNumber: string) => {
if (!isPhoneEnabled) {
return "";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ export interface TemplateFormValues {
email: string;
isPhoneEnabled: boolean;
phoneNumber: string;
isImageEnabled: boolean;
uploadedImageUrl: string | null;
previewImage: {
url: string;
Expand Down