UNPKG

feeds-fun

Version:

Frontend for the Feeds Fun — web-based news reader

76 lines (60 loc) 1.69 kB
import {ref, computed} from "vue"; import {defineStore} from "pinia"; import {computedAsync} from "@vueuse/core"; import {useGlobalState} from "@/stores/globalState"; import * as e from "@/logic/enums"; import * as api from "@/logic/api"; export const useGlobalSettingsStore = defineStore("globalSettings", () => { const globalState = useGlobalState(); // General const mainPanelMode = ref(e.MainPanelMode.Entries); const dataVersion = ref(0); // Entries const lastEntriesPeriod = ref(e.LastEntriesPeriod.Day3); const entriesOrder = ref(e.EntriesOrder.Score); const showRead = ref(true); const entriesOrderProperties = computed(() => { return e.EntriesOrderProperties.get(entriesOrder.value); }); // Feeds const showFeedsDescriptions = ref(true); const feedsOrder = ref(e.FeedsOrder.Title); const failedFeedsFirst = ref(false); // Rules const rulesOrder = ref(e.RulesOrder.Tags); function updateDataVersion() { dataVersion.value++; } // backend side settings const userSettings = computedAsync(async () => { if (!globalState.isLoggedIn) { return null; } // force refresh dataVersion.value; return await api.getUserSettings(); }, null); const info = computedAsync(async () => { if (!globalState.isLoggedIn) { return null; } // force refresh dataVersion.value; return await api.getInfo(); }, null); return { mainPanelMode, lastEntriesPeriod, entriesOrder, showRead, entriesOrderProperties, dataVersion, updateDataVersion, showFeedsDescriptions, userSettings, info, feedsOrder, failedFeedsFirst, rulesOrder }; });