diff --git a/app/javascript/shared/helpers/DateHelper.js b/app/javascript/shared/helpers/DateHelper.js index c137cee76..2cd178896 100644 --- a/app/javascript/shared/helpers/DateHelper.js +++ b/app/javascript/shared/helpers/DateHelper.js @@ -2,6 +2,7 @@ import fromUnixTime from 'date-fns/fromUnixTime'; import format from 'date-fns/format'; import isToday from 'date-fns/isToday'; import isYesterday from 'date-fns/isYesterday'; +import parseISO from 'date-fns/parseISO'; export const formatUnixDate = (date, dateFormat = 'MMM dd, yyyy') => { const unixDate = fromUnixTime(date); @@ -14,3 +15,13 @@ export const formatDate = ({ date, todayText, yesterdayText }) => { if (isYesterday(dateValue)) return yesterdayText; return date; }; + +export const buildDateFromTime = (hr, min, utcOffset, date = new Date()) => { + const today = format(date, 'yyyy-MM-dd'); + const timeString = `${today}T${hr}:${min}:00${utcOffset}`; + return parseISO(timeString); +}; + +export const formatDigitToString = val => { + return val > 9 ? `${val}` : `0${val}`; +}; diff --git a/app/javascript/shared/helpers/specs/DateHelper.spec.js b/app/javascript/shared/helpers/specs/DateHelper.spec.js index c89bb3ef1..283950ed1 100644 --- a/app/javascript/shared/helpers/specs/DateHelper.spec.js +++ b/app/javascript/shared/helpers/specs/DateHelper.spec.js @@ -1,4 +1,9 @@ -import { formatDate, formatUnixDate } from '../DateHelper'; +import { + formatDate, + formatUnixDate, + buildDateFromTime, + formatDigitToString, +} from '../DateHelper'; describe('#DateHelper', () => { it('should format unix date correctly without dateFormat', () => { @@ -39,4 +44,27 @@ describe('#DateHelper', () => { }) ).toEqual('Yesterday'); }); + + describe('#buildDate', () => { + it('returns correctly parsed date', () => { + const date = new Date(); + date.setFullYear(2021); + date.setMonth(2); + date.setDate(5); + + const result = buildDateFromTime(12, 15, '.465Z', date); + expect(result + '').toEqual( + 'Fri Mar 05 2021 12:15:00 GMT+0000 (Coordinated Universal Time)' + ); + }); + }); + + describe('#formatDigitToString', () => { + it('returns date compatabile string from number is less than 9', () => { + expect(formatDigitToString(8)).toEqual('08'); + }); + it('returns date compatabile string from number is greater than 9', () => { + expect(formatDigitToString(11)).toEqual('11'); + }); + }); }); diff --git a/app/javascript/widget/components/ChatHeader.vue b/app/javascript/widget/components/ChatHeader.vue index 9bc830edc..fa5890cdf 100644 --- a/app/javascript/widget/components/ChatHeader.vue +++ b/app/javascript/widget/components/ChatHeader.vue @@ -31,14 +31,13 @@ import { mapGetters } from 'vuex'; import HeaderActions from './HeaderActions'; import configMixin from 'widget/mixins/configMixin'; -import teamAvailabilityMixin from 'widget/mixins/teamAvailabilityMixin'; export default { name: 'ChatHeader', components: { HeaderActions, }, - mixins: [configMixin, teamAvailabilityMixin], + mixins: [configMixin], props: { avatarUrl: { type: String, diff --git a/app/javascript/widget/components/TeamAvailability.vue b/app/javascript/widget/components/TeamAvailability.vue index 3124cc963..4484336cf 100644 --- a/app/javascript/widget/components/TeamAvailability.vue +++ b/app/javascript/widget/components/TeamAvailability.vue @@ -1,15 +1,27 @@