fix: Stores Not Populating Sometimes (#6266)

This commit is contained in:
Michael Genson
2025-09-27 19:17:08 -05:00
committed by GitHub
parent e3f120c680
commit 824603a578
13 changed files with 31 additions and 27 deletions

View File

@@ -1,10 +1,10 @@
import { useAsyncKey } from "../use-utils";
import type { AsyncData, NuxtError } from "#app";
import type { BoundT } from "./types";
import type { BaseCRUDAPI, BaseCRUDAPIReadOnly } from "~/lib/api/base/base-clients";
import type { QueryValue } from "~/lib/api/base/route";
interface ReadOnlyStoreActions<T extends BoundT> {
getAll(page?: number, perPage?: number, params?: any): Ref<T[] | null>;
getAll(page?: number, perPage?: number, params?: any): AsyncData<T[] | null, NuxtError<unknown> | null>;
refresh(page?: number, perPage?: number, params?: any): Promise<void>;
}
@@ -21,6 +21,7 @@ interface StoreActions<T extends BoundT> extends ReadOnlyStoreActions<T> {
* a lot of refreshing hooks to be called on operations
*/
export function useReadOnlyActions<T extends BoundT>(
storeKey: string,
api: BaseCRUDAPIReadOnly<T>,
allRef: Ref<T[] | null> | null,
loading: Ref<boolean>,
@@ -29,7 +30,7 @@ export function useReadOnlyActions<T extends BoundT>(
params.orderBy ??= "name";
params.orderDirection ??= "asc";
const allItems = useAsyncData(useAsyncKey(), async () => {
const allItems = useAsyncData(storeKey, async () => {
loading.value = true;
try {
const { data } = await api.getAll(page, perPage, params);
@@ -80,6 +81,7 @@ export function useReadOnlyActions<T extends BoundT>(
* a lot of refreshing hooks to be called on operations
*/
export function useStoreActions<T extends BoundT>(
storeKey: string,
api: BaseCRUDAPI<unknown, T, unknown>,
allRef: Ref<T[] | null> | null,
loading: Ref<boolean>,
@@ -88,7 +90,7 @@ export function useStoreActions<T extends BoundT>(
params.orderBy ??= "name";
params.orderDirection ??= "asc";
const allItems = useAsyncData(useAsyncKey(), async () => {
const allItems = useAsyncData(storeKey, async () => {
loading.value = true;
try {
const { data } = await api.getAll(page, perPage, params);