feat: autofill client timezone based on user timezone
This commit is contained in:
@@ -95,8 +95,8 @@ import {
|
|||||||
FormControl,
|
FormControl,
|
||||||
Autocomplete,
|
Autocomplete,
|
||||||
} from 'frappe-ui'
|
} from 'frappe-ui'
|
||||||
import { reactive, inject } from 'vue'
|
import { reactive, inject, onMounted } from 'vue'
|
||||||
import { getTimezones, createToast } from '@/utils/'
|
import { getTimezones, createToast, getUserTimezone } from '@/utils/'
|
||||||
|
|
||||||
const liveClasses = defineModel('reloadLiveClasses')
|
const liveClasses = defineModel('reloadLiveClasses')
|
||||||
const show = defineModel()
|
const show = defineModel()
|
||||||
@@ -122,6 +122,10 @@ let liveClass = reactive({
|
|||||||
host: user.data.name,
|
host: user.data.name,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
liveClass.timezone = getUserTimezone()
|
||||||
|
})
|
||||||
|
|
||||||
const getTimezoneOptions = () => {
|
const getTimezoneOptions = () => {
|
||||||
return getTimezones().map((timezone) => {
|
return getTimezones().map((timezone) => {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -441,6 +441,22 @@ export function getTimezones() {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getUserTimezone() {
|
||||||
|
try {
|
||||||
|
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone
|
||||||
|
const supportedTimezones = getTimezones()
|
||||||
|
|
||||||
|
if (supportedTimezones.includes(timezone)) {
|
||||||
|
return timezone // e.g., 'Asia/Calcutta', 'America/New_York', etc.
|
||||||
|
} else {
|
||||||
|
throw Error('unsupported timezone')
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error getting timezone:', error)
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export function getSidebarLinks() {
|
export function getSidebarLinks() {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user