From 5b5c027ea6762217aec79ae8a4d89f174ddf52f3 Mon Sep 17 00:00:00 2001 From: Sebin Nyshkim Date: Fri, 20 Jan 2023 00:25:49 +0100 Subject: [PATCH] refactor: migrate helper functions mixin --- src/helpers.ts | 61 ++++++++++++++++++++++++++++++++++++++++++++ src/mixins/Helper.js | 57 ----------------------------------------- 2 files changed, 61 insertions(+), 57 deletions(-) create mode 100644 src/helpers.ts delete mode 100644 src/mixins/Helper.js diff --git a/src/helpers.ts b/src/helpers.ts new file mode 100644 index 0000000..f5b35be --- /dev/null +++ b/src/helpers.ts @@ -0,0 +1,61 @@ +const getClientLocale = (): string => { + return navigator.languages.length > 0 ? navigator.languages[0] : "en-US"; +}; + +const getAge = (dateOfBirth: Date): number => { + const today = new Date(); + + const thisYear = today.getFullYear(); + const thisMonth = today.getMonth(); + const thisDay = today.getDate(); + + const dobYear = dateOfBirth.getFullYear(); + const dobMonth = dateOfBirth.getMonth(); + const dobDay = dateOfBirth.getDate(); + + let age = thisYear - dobYear; + + if (thisMonth < dobMonth) age--; + if (thisMonth === dobMonth && thisDay < dobDay) age--; + + return age; +}; + +const toImperial = (cm: number): string => { + const realFeet = (cm * 0.3937) / 12; + const feet = Math.floor(realFeet); + const inches = Math.round((realFeet - feet) * 12); + + return `${feet}'${inches}"`; +}; + +const toInch = (cm: number): string => { + return `${Math.round(cm / 2.45)} in`; +}; + +const toLbs = (kg: number): number => { + const nearExact = kg / 0.45359237; + const lbs = Math.floor(nearExact); + + return lbs; +}; + +const toFahrenheit = (celsius: number): number => { + return celsius * 1.8 + 32; +}; + +const dateFormat = new Intl.DateTimeFormat(getClientLocale(), { + year: "numeric", + month: "long", + day: "2-digit", +}); + +export { + getClientLocale, + getAge, + toImperial, + toInch, + toLbs, + toFahrenheit, + dateFormat, +}; diff --git a/src/mixins/Helper.js b/src/mixins/Helper.js deleted file mode 100644 index 8e06374..0000000 --- a/src/mixins/Helper.js +++ /dev/null @@ -1,57 +0,0 @@ -export default { - methods: { - getClientLocale() { - if (navigator.language) { - return navigator.languages[0]; - } else if (navigator.userLanguage) { - return navigator.userLanguage; // IE < 11 - } else if (navigator.browserLanguage) { - return navigator.userLanguage; - } else if (navigator.systemLanguage) { - return navigator.systemLanguage; - } - }, - - getAge(dateOfBirth) { - const today = new Date(); - - const thisYear = today.getFullYear(); - const thisMonth = today.getMonth(); - const thisDay = today.getDate(); - - const dobYear = dateOfBirth.getFullYear(); - const dobMonth = dateOfBirth.getMonth(); - const dobDay = dateOfBirth.getDate(); - - let age = thisYear - dobYear; - - if (thisMonth < dobMonth) age--; - if (thisMonth === dobMonth && thisDay < dobDay) age--; - - return age; - }, - - toImperial(cm) { - const realFeet = (cm * 0.3937) / 12; - const feet = Math.floor(realFeet); - const inches = Math.round((realFeet - feet) * 12); - - return `${feet}'${inches}"`; - }, - - toInch(cm) { - return `${Math.round(cm / 2.45)} in`; - }, - - toLbs(kg) { - const nearExact = kg / 0.45359237; - const lbs = Math.floor(nearExact); - - return lbs; - }, - - toFahrenheit(celsius) { - return celsius * 1.8 + 32; - }, - }, -};