UNPKG

@allurereport/web-awesome

Version:

The static files for Allure Awesome Report

46 lines (37 loc) 1.23 kB
import type { TestCategories } from "@allurereport/core-api"; import { fetchReportJsonData } from "@allurereport/web-commons"; import { computed, signal } from "@preact/signals"; import type { StoreSignalState } from "@/stores/types"; export const categoriesStore = signal<StoreSignalState<TestCategories>>({ loading: true, error: undefined, data: undefined, }); export const noCategories = computed(() => categoriesStore?.value?.data.roots.length); let lastCategoriesEnv: string | undefined; const resolveCategoriesPath = (env?: string) => (env ? `widgets/${env}/categories.json` : "widgets/categories.json"); export const fetchCategoriesData = async (env?: string) => { if (lastCategoriesEnv === env && categoriesStore.peek().data) { return; } lastCategoriesEnv = env; categoriesStore.value = { ...categoriesStore.value, loading: true, error: undefined, }; try { const res = await fetchReportJsonData<TestCategories>(resolveCategoriesPath(env)); categoriesStore.value = { data: res, error: undefined, loading: false, }; } catch (e) { categoriesStore.value = { ...categoriesStore.value, error: undefined, loading: false, }; } };