diff --git a/src/tools/qr-contact-info-generator/contact-info-qr-code-generator.ts b/src/tools/qr-contact-info-generator/contact-info-qr-code-generator.ts new file mode 100644 index 00000000..1b17d371 --- /dev/null +++ b/src/tools/qr-contact-info-generator/contact-info-qr-code-generator.ts @@ -0,0 +1,49 @@ +import QRCode from 'qrcode'; + +interface ContactInfo { + firstName: string; + lastName: string; + role: string; + phoneNumber: string; + email: string; + companyName: string; + companyWebsite: string; + companyAddress: string; +} + +const generateContactInfoQRCode = (contactInfo: ContactInfo): void => { + const vCard = ` +BEGIN:VCARD +VERSION:3.0 +N:${contactInfo.lastName};${contactInfo.firstName} +FN:${contactInfo.firstName} ${contactInfo.lastName} +ORG:${contactInfo.companyName} +TITLE:${contactInfo.role} +TEL;TYPE=WORK,VOICE:${contactInfo.phoneNumber} +EMAIL;TYPE=PREF,INTERNET:${contactInfo.email} +URL:${contactInfo.companyWebsite} +ADR;TYPE=WORK,PREF:;;${contactInfo.companyAddress} +END:VCARD + `; + + QRCode.toDataURL(vCard, { errorCorrectionLevel: 'H' }, (err: Error | null, url: string) => { + if (err) { + console.error(err); + return; + } + console.log(url); + }); +}; + +const contactInfo: ContactInfo = { + firstName: 'John', + lastName: 'Doe', + role: 'Software Engineer', + phoneNumber: '+1234567890', + email: 'john.doe@example.com', + companyName: 'Example Inc.', + companyWebsite: 'https://www.example.com', + companyAddress: '123 Example Street, City, Country' +}; + +generateContactInfoQRCode(contactInfo); \ No newline at end of file diff --git a/src/tools/qr-contact-info-generator/contact-info-qr-code-generator.vue b/src/tools/qr-contact-info-generator/contact-info-qr-code-generator.vue new file mode 100644 index 00000000..46eb10d9 --- /dev/null +++ b/src/tools/qr-contact-info-generator/contact-info-qr-code-generator.vue @@ -0,0 +1,160 @@ + + + + + \ No newline at end of file diff --git a/src/tools/qr-contact-info-generator/index.ts b/src/tools/qr-contact-info-generator/index.ts new file mode 100644 index 00000000..fd467b19 --- /dev/null +++ b/src/tools/qr-contact-info-generator/index.ts @@ -0,0 +1,5 @@ +import ContactInfoQRCodeGenerator from './contact-info-qr-code-generator.vue'; + +export { + ContactInfoQRCodeGenerator, +}; \ No newline at end of file