diff --git a/src/assets/images/icon/copy-to-clipboard.svg b/src/assets/images/icon/copy-to-clipboard.svg new file mode 100644 index 0000000..949b34f --- /dev/null +++ b/src/assets/images/icon/copy-to-clipboard.svg @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/src/core/components/profile/stepCard.component.tsx b/src/core/components/profile/stepCard.component.tsx index cd78425..a686dbb 100644 --- a/src/core/components/profile/stepCard.component.tsx +++ b/src/core/components/profile/stepCard.component.tsx @@ -7,6 +7,7 @@ import { useApplicationStateContext } from "../../providers/applicationState.pro import { dateToLocaleString, resolveRegistraionTime } from "../../../utils/conversion" import { useAuthContext } from "../../providers/auth.provider" import MyProfileModel from "../../models/myprofile.models" +import copyToClipBoard from "../../assets/images/icon/copy-to-clipboard.svg" const useStyles = makeStyles(theme => ({ card: { @@ -150,10 +151,10 @@ const StepCard: React.FC = ({ step, status, isApproved }) => { const { openPaymentDialog, openShirtSizeDialog } = useDialogContext() const { me } = useAuthContext() const { application } = useApplicationStateContext() - const { documentState } = me.data as MyProfileModel const text = stepCardConstant[step][status][isApproved]! + const zoomName = application.lgNumber.trim().substring(3) + "_" + application.firstName.trim() const setStepIndicatorStyles = (status: String) => { switch (status) { @@ -180,6 +181,14 @@ const StepCard: React.FC = ({ step, status, isApproved }) => { ) } + const copyTextToClipboard = async () => { + if ("clipboard" in navigator) { + return await navigator.clipboard.writeText(zoomName) + } else { + return document.execCommand("copy", true, zoomName) + } + } + const renderButton = (opensDialog: boolean, dialogType: string | undefined, isPrimary: boolean, isExternalPath: boolean | undefined) => { if (opensDialog) { if (dialogType === "payment") return resolveButton(isPrimary, openPaymentDialog) @@ -231,7 +240,9 @@ const StepCard: React.FC = ({ step, status, isApproved }) => { {text.contents} + ตั้งชื่อ LG {zoomName} +
{text.primaryButton && renderButton(text.primaryButton.opensDialog, text.primaryButton.dialogType, true, text.primaryButton.isExternalPath)} @@ -268,6 +279,14 @@ const StepCard: React.FC = ({ step, status, isApproved }) => { style={{ color: "#941014" }}> แผนที่การเดินทางไปคณะวิศวกรรมศาสตร์ + + แบบฟอร์มยินยอมให้เก็บรวบรวม ใช้ และเปิดเผยข้อมูลส่วนบุคคล +
{text.secondaryButton && renderButton(text.secondaryButton.opensDialog, text.secondaryButton.dialogType, false, text.secondaryButton.isExternalPath)} diff --git a/src/utils/conversion.tsx b/src/utils/conversion.tsx index 091e0d3..cea5872 100644 --- a/src/utils/conversion.tsx +++ b/src/utils/conversion.tsx @@ -9,15 +9,13 @@ export const dateToLocaleString = (isoString: string) => { export const resolveRegistraionTime = (isoString: string) => { const date = new Date(isoString) - let startTime : string = (date.getHours()-1).toString() + ":" + (date.getMinutes()+15).toString() - for (let i = 0; i < 5-startTime.length; i++) { + let startTime: string = (date.getHours() - 1).toString() + ":" + (date.getMinutes() + 15).toString() + for (let i = 0; i < 5 - startTime.length; i++) { startTime = "0" + startTime } - let endTime : string = (date.getHours()-1).toString() + ":" + (date.getMinutes()+45).toString() - for (let i = 0; i < 5-endTime.length; i++) { + let endTime: string = (date.getHours() - 1).toString() + ":" + (date.getMinutes() + 45).toString() + for (let i = 0; i < 5 - endTime.length; i++) { endTime = "0" + endTime } - return ( - startTime + " ถึง " + endTime + " น." - ) -} \ No newline at end of file + return startTime + " ถึง " + endTime + " น." +}