e348db1e37
* Add option to choose 24 hour working slot * fix spec * add check to update open hour and close hour for open all day * update 24 hour working slot change in widget side * add validation to check open_all_day and closed_all_day true at the same time
70 lines
2.1 KiB
JavaScript
70 lines
2.1 KiB
JavaScript
import compareAsc from 'date-fns/compareAsc';
|
|
import { buildDateFromTime } from 'shared/helpers/DateHelper';
|
|
|
|
export default {
|
|
computed: {
|
|
channelConfig() {
|
|
return window.chatwootWebChannel;
|
|
},
|
|
replyTime() {
|
|
return window.chatwootWebChannel.replyTime;
|
|
},
|
|
replyTimeStatus() {
|
|
switch (this.replyTime) {
|
|
case 'in_a_few_minutes':
|
|
return this.$t('REPLY_TIME.IN_A_FEW_MINUTES');
|
|
case 'in_a_few_hours':
|
|
return this.$t('REPLY_TIME.IN_A_FEW_HOURS');
|
|
case 'in_a_day':
|
|
return this.$t('REPLY_TIME.IN_A_DAY');
|
|
default:
|
|
return this.$t('REPLY_TIME.IN_A_FEW_HOURS');
|
|
}
|
|
},
|
|
outOfOfficeMessage() {
|
|
return this.channelConfig.outOfOfficeMessage;
|
|
},
|
|
isInBetweenTheWorkingHours() {
|
|
const {
|
|
openHour,
|
|
openMinute,
|
|
closeHour,
|
|
closeMinute,
|
|
closedAllDay,
|
|
openAllDay,
|
|
} = this.currentDayAvailability;
|
|
const { utcOffset } = this.channelConfig;
|
|
|
|
if (openAllDay) return true;
|
|
|
|
if (closedAllDay) return false;
|
|
|
|
const startTime = buildDateFromTime(openHour, openMinute, utcOffset);
|
|
const endTime = buildDateFromTime(closeHour, closeMinute, utcOffset);
|
|
const isBetween =
|
|
compareAsc(new Date(), startTime) === 1 &&
|
|
compareAsc(endTime, new Date()) === 1;
|
|
|
|
if (isBetween) return true;
|
|
return false;
|
|
},
|
|
currentDayAvailability() {
|
|
const dayOfTheWeek = new Date().getDay();
|
|
const [workingHourConfig = {}] = this.channelConfig.workingHours.filter(
|
|
workingHour => workingHour.day_of_week === dayOfTheWeek
|
|
);
|
|
return {
|
|
closedAllDay: workingHourConfig.closed_all_day,
|
|
openHour: workingHourConfig.open_hour,
|
|
openMinute: workingHourConfig.open_minutes,
|
|
closeHour: workingHourConfig.close_hour,
|
|
closeMinute: workingHourConfig.close_minutes,
|
|
openAllDay: workingHourConfig.open_all_day,
|
|
};
|
|
},
|
|
isInBusinessHours() {
|
|
const { workingHoursEnabled } = window.chatwootWebChannel;
|
|
return workingHoursEnabled ? this.isInBetweenTheWorkingHours : true;
|
|
},
|
|
},
|
|
};
|