diff --git a/frontend/app/components/shared/SessionSettings/components/DefaultTimezone.tsx b/frontend/app/components/shared/SessionSettings/components/DefaultTimezone.tsx
index 891cc2206..fee1b7e58 100644
--- a/frontend/app/components/shared/SessionSettings/components/DefaultTimezone.tsx
+++ b/frontend/app/components/shared/SessionSettings/components/DefaultTimezone.tsx
@@ -1,12 +1,11 @@
import { Radio } from 'antd';
-import { toJS } from 'mobx';
import { useObserver } from 'mobx-react-lite';
import React, { useEffect } from 'react';
import { toast } from 'react-toastify';
import { useStore } from 'App/mstore';
import { Timezone } from 'App/mstore/types/sessionSettings';
-import { Button } from 'UI';
+import { Button, Icon } from 'UI';
import Select from 'Shared/Select';
@@ -24,6 +23,7 @@ function DefaultTimezone() {
const [timezone, setTimezone] = React.useState(
settingsStore.sessionSettings.timezone
);
+ const [isLocal, setIsLocal] = React.useState(settingsStore.sessionSettings.usingLocal);
useEffect(() => {
if (!timezone) setTimezone({ label: 'Local Timezone', value: 'system' });
@@ -48,7 +48,8 @@ function DefaultTimezone() {
const selectedTimezone = getCurrentTimezone();
if (selectedTimezone) {
setTimezone(selectedTimezone);
- sessionSettings.updateTimezone(selectedTimezone);
+ setIsLocal(true);
+ sessionSettings.updateTimezone(selectedTimezone, true);
toast.success('Default timezone saved successfully');
}
};
@@ -110,8 +111,13 @@ function DefaultTimezone() {
-
- Apply my current timezone
+
+
+ Apply my current timezone
+
+ {isLocal ? (
+
+ ) : null}
>
) : null}
diff --git a/frontend/app/constants/storageKeys.ts b/frontend/app/constants/storageKeys.ts
index 335dbed64..ec10a2963 100644
--- a/frontend/app/constants/storageKeys.ts
+++ b/frontend/app/constants/storageKeys.ts
@@ -1,5 +1,6 @@
export const SKIP_TO_ISSUE = "__$session-skipToIssue$__"
export const TIMEZONE = "__$session-timezone$__"
+export const TIMEZONE_LOCAL = "__$session-timezone$_local__"
export const SHOWN_TIMEZONE = "__$session-shownTimezone$__"
export const DURATION_FILTER = "__$session-durationFilter$__"
export const SESSION_FILTER = "__$session-filter$__"
diff --git a/frontend/app/mstore/types/sessionSettings.ts b/frontend/app/mstore/types/sessionSettings.ts
index 506453818..b3c5254f1 100644
--- a/frontend/app/mstore/types/sessionSettings.ts
+++ b/frontend/app/mstore/types/sessionSettings.ts
@@ -1,5 +1,5 @@
import { makeAutoObservable, runInAction } from 'mobx';
-import { SKIP_TO_ISSUE, TIMEZONE, SHOWN_TIMEZONE, DURATION_FILTER, MOUSE_TRAIL } from 'App/constants/storageKeys';
+import { SKIP_TO_ISSUE, TIMEZONE, TIMEZONE_LOCAL, SHOWN_TIMEZONE, DURATION_FILTER, MOUSE_TRAIL } from 'App/constants/storageKeys';
import { DateTime, Settings } from 'luxon'
export type Timezone = {
@@ -74,6 +74,7 @@ export default class SessionSettings {
captureConditions: { name: string; captureRate: number; filters: any[] }[] = [];
mouseTrail: boolean = localStorage.getItem(MOUSE_TRAIL) !== 'false';
shownTimezone: 'user' | 'local';
+ usingLocal: boolean = false;
constructor() {
const userTimezoneOffset = DateTime.local().toFormat('ZZ')
@@ -82,7 +83,13 @@ export default class SessionSettings {
) || { label: 'Local', value: `UTC${userTimezoneOffset}` };
const savedTz = localStorage.getItem(TIMEZONE)
- this.timezone = savedTz ? JSON.parse(savedTz) : defaultTimezone;
+ const isLocal = localStorage.getItem(TIMEZONE_LOCAL) === 'true';
+ if (isLocal) {
+ this.timezone = defaultTimezone;
+ this.usingLocal = true;
+ } else {
+ this.timezone = savedTz ? JSON.parse(savedTz) : defaultTimezone;
+ }
Settings.defaultZone = this.timezone.value;
if (localStorage.getItem(MOUSE_TRAIL) === null) {
localStorage.setItem(MOUSE_TRAIL, 'true');
@@ -110,10 +117,11 @@ export default class SessionSettings {
this.conditionalCapture = all;
};
- updateTimezone = (value: Timezone) => {
+ updateTimezone = (value: Timezone, local?: boolean) => {
this.timezone = value;
Settings.defaultZone = value.value;
- localStorage.setItem(`__$session-timezone$__`, JSON.stringify(value));
+ localStorage.setItem(TIMEZONE, JSON.stringify(value));
+ localStorage.setItem(TIMEZONE_LOCAL, local ? 'true' : 'false');
}
updateKey = (key: string, value: any) => {