2022-04-13 19:19:32 +00:00
|
|
|
import { defineStore } from 'pinia';
|
|
|
|
|
|
|
|
import { setTimezone } from '@/shared/formatters';
|
2022-04-19 18:07:59 +00:00
|
|
|
import { getCurrentTheme, getTheme } from '@/shared/themes';
|
2022-04-19 18:20:46 +00:00
|
|
|
import axios from 'axios';
|
|
|
|
import { UiVersion } from '@/types';
|
2022-04-13 19:19:32 +00:00
|
|
|
|
|
|
|
const STORE_UI_SETTINGS = 'ftUISettings';
|
|
|
|
|
|
|
|
export enum OpenTradeVizOptions {
|
|
|
|
showPill = 'showPill',
|
|
|
|
asTitle = 'asTitle',
|
|
|
|
noOpenTrades = 'noOpenTrades',
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface SettingsType {
|
|
|
|
openTradesInTitle?: string;
|
|
|
|
timezone?: string;
|
|
|
|
backgroundSync?: boolean;
|
|
|
|
}
|
|
|
|
|
|
|
|
export const useSettingsStore = defineStore('uiSettings', {
|
|
|
|
// other options...
|
|
|
|
state: () => {
|
|
|
|
return {
|
|
|
|
openTradesInTitle: OpenTradeVizOptions.showPill as string,
|
|
|
|
timezone: 'UTC',
|
|
|
|
backgroundSync: true,
|
2022-04-19 18:07:59 +00:00
|
|
|
currentTheme: getCurrentTheme(),
|
2022-04-19 18:20:46 +00:00
|
|
|
uiVersion: 'dev',
|
2022-07-11 14:33:47 +00:00
|
|
|
useHeikinAshiCandles: false,
|
2022-04-13 19:19:32 +00:00
|
|
|
};
|
|
|
|
},
|
2022-04-19 18:07:59 +00:00
|
|
|
getters: {
|
|
|
|
isDarkTheme(state) {
|
|
|
|
const theme = getTheme(state.currentTheme);
|
|
|
|
if (theme) {
|
|
|
|
return theme.dark;
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
},
|
|
|
|
chartTheme(): string {
|
|
|
|
return this.isDarkTheme ? 'dark' : 'light';
|
|
|
|
},
|
|
|
|
},
|
2022-04-13 19:19:32 +00:00
|
|
|
actions: {
|
2022-04-19 18:20:46 +00:00
|
|
|
async loadUIVersion() {
|
|
|
|
if (import.meta.env.PROD) {
|
|
|
|
try {
|
|
|
|
const result = await axios.get<UiVersion>('/ui_version');
|
|
|
|
const { version } = result.data;
|
|
|
|
this.uiVersion = version;
|
|
|
|
} catch (error) {
|
|
|
|
//
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
2022-04-13 19:19:32 +00:00
|
|
|
},
|
|
|
|
persist: {
|
|
|
|
key: STORE_UI_SETTINGS,
|
|
|
|
},
|
|
|
|
});
|